将树莓派打造成RFID和NFC的识别装置

用华为和苹果的朋友,应该知道自己的手机上基本都带NFC支付功能。

实际上NFC相关的场景不只是支付,还涵盖我们生活中的方方面面。比如IoT前哨站之前发过的一篇:DIY带数据的NFC“袖扣”

NFC(近场通信)基于RFID(射频识别)标准,两者都允许设备从被动令牌或电子标签接收数据(这意味着它不需要外部电源即可工作)。

市场上有现成的RFID和NFC识别设备出售,但可定制化程度不高。不过熟悉树莓派的朋友,可以凭借WaveShare的RFID/NFC扩展板,DIY一个更极客的识别装置。

和树莓派适配后的成品

开始之前,你需要一个能跑Raspberry Pi OS Lite(Buster)的树莓派,还有一个WaveShare NFC扩展板(大约人民币几十块)。

登录系统后,先更新系统。

sudo apt -y update && sudo apt -y upgrade

启用串行接口

该扩展版能够通过三个不同的接口进行通信:I2C,SPI和UART。

我们这里使用UART,因为它演示起来最简单。首先运行sudo raspi-config,进入“接口选项”,然后选择“串行接口”。

当系统询问你是否要登录控制台时,请选择“否”。当询问你是否要启用串行接口时,请选择“是”。

你需要立即重启,这将允许WaveShare HAT通过串行接口与我们的Raspberry Pi对话。

Waveshare HAT包含许多设置。请务必阅读说明!

配置并安装扩展板

如上所述,我们可以通过更改扩展板本身的某些物理开关来选择不同的接口。默认情况下,我们可以将其配置为UART / Serial,但具体接法最好到以下网址核对:

https://www.waveshare.com/wiki/PN532_NFC_HAT#Raspberry_Pi_examples

一般I1和I0处的跳线均应短接“ L”,D16和D20应短接,在DIP开关上,除RX和TX外,所有其他器件均应关闭。

仔细检查,然后将板子插到树莓派GPIO口上,启动。

然后执行如下命令:

sudo apt install rpi.gpio p7zip-full python3-pip
pip3 install spidev pyserial

wget https://www.waveshare.com/w/upload/6/67/Pn532-nfc-hat-code.7z
7z x Pn532-nfc-hat-code.7z

在尝试任何操作之前,需要编辑示例文件,以便我们使用UART。请根据自身要求将其注释或启用。

cd ~/raspberrypi/python
nano example_get_uid.py

pn532 = PN532_UART(debug=False, reset=20)

拿RFID令牌来测试一下

试试看!

如下所示启动示例代码:
python3 example_get_uid.py

如果一切顺利,屏幕将会显示与扩展板连接的信息。

现在,你可以将RFID令牌放在标有“ NFC”的HAT区域上。十六进制数字会开始在屏幕上滚动。这意味着,你的令牌已被检测到!

每个RFID令牌都有唯一的编号,因此可以用来标识不同人员的身份。

但是,该扩展板的功能远不止于此,因为它还支持NFC,并且可以与MIFARE Classic等通用标准进行通信,该标准允许卡上存储1kB的存储空间。

对应的example_dump_mifare.py文件在同一目录中(请确保你已正确设置串行连接)。

更进一步

现在,你可以读取RFID和NFC令牌上的唯一标识符了。

如前所述,如果你用的是MIFARE或NTAG2标准,还可以将数据写到卡上。

examples文件夹包含一些C程序,你可以试一下。

在卡上读取和写入少量数据,可以产生一些有趣的项目。在2018年的电磁场节上,整个游戏都是基于查找物理位置并使用MIFARE卡注册玩家的存在来进行的。

智能手机还可以使用NFC交换任何形式的数据,以及更多可能。

来自:Raspberrypi.org

编译:王文文

用树莓派和Lobe-python做智能垃圾分类

国外一个名叫Jen Fox的创客分享了一个由Raspberry Pi驱动的垃圾分类设备,该设备能告诉我们,当前的垃圾是可回收的,可堆肥的,还是有害的。

这个项目对初学者很友好,因为你不需要任何代码来训练机器学习模型,只需要稍微花点时间就可以将其加载到Raspberry Pi上。

这也是一个相当经济的装置,包括Raspberry Pi 4在内,价格不到70美元。

硬件:

Raspberry Pi 4B
树莓派摄像头模块
Adafruit 按钮
Adafruit LED

软件:

免编码的机器学习模型是用Lobe创建的,这是一个免费的桌面应用程序,可根据显示的对象自动训练图像分类器。

图像分类器认出了瓶盖

训练图像分类器:

基本上,你要上传一大堆的图片,然后告诉Lobe(分类程序)每一张图片显示的是什么对象。

比如哪些图片是可堆肥垃圾,哪些是可回收利用的物品,哪些是对生物有害的垃圾。当然,正如Jen所说,“你拥有的图片越多,模型识别起来越准确。”

接好摄像头模块的树莓派4B

你只需要编写少量代码就可以将图像分类器加载到树莓派上。Raspberry Pi摄像头充当图像分类器的“眼睛”,因此树莓派可以认出你要区分的垃圾种类。

将按钮和LED连接到Raspberry Pi的GPIO引脚,让它们与摄像头一起工作,并根据图像分类器识别“看到”的内容,点亮相应的LED。

将按钮和LED连接到GPIO引脚的示意图

当然,你要先找个盒子,最好可以安在墙上。

然后在纸板箱上钻一个方形的孔,以确保摄像头可以“看到”垃圾。

再钻几个孔,以便用户能看到LED灯,并可以接触按钮。

记得为Raspberry Pi的电源留出空间,以便接线。

Jen把盒子装在墙上,开始识别一个塑料袋

该项目源码地址:

https://github.com/IoToutpost/TrashClassifier

来自:Raspberrypi.org

编译:王文文