首先很幸运的能够参与到 NFC 开发大赛中来,和以往体验 NFC 不太一样。在本次大赛中也学习到了许多知识。下面我就以开发作品展开描述。NFC 其实已经渐渐的也是应用到了门锁中来,常见就是小区门禁,当然现在很多家庭的门锁上也是带有 NFC 解锁功能。车载如特斯拉汽车就是可以通过 NFC 解锁的。后像小米的 NFC 碰碰传,NFC 可以应用到更多的家庭设备中来。使用手机即可完成很多场景操作。当然 NFC 也是有弊端的,如是近场通信,目前我接触到的一般都是几厘米的距离,不够远,其次就是 NFC 读取方式也不方便,需要有特定芯片支持,因为要发射载波。不过我相信随着越来越多人的介入开发,NFC 后期应用在家庭生活中应该会很普遍了。


本次我选择的开发板是 ST25R3916,这款芯片是可读可写的芯片,满足我对读卡方面的需求。

 

 

这款开发板是采用了 Arduino 接口,通信方式可以选择 IIC 和 SPI,官方给的接口是 SPI 的,IIC 接口还需自己焊接。板上有许多提示的 LED 主要是读写提示,以及卡类型的灯提示。

 

 

本次开发底板使用了 F412ZG 自己移植了下,官方提供了一款 L476RG,两者性能差不多,因为都是采用 HAL 库开发,所以自己移植的工具上使用了 STM32CubeMX,可直接生成可执行代码,外设使用情况也可以很清楚的知道。

 

 

此次为了应对门锁的功能,特意使用了一块拓展板。

 

 

上面有我需要的环境光传感器,RGB 灯模块,dc 电机。同时这款板子上的开发板是 SPI 通信的,而 ST25R3916 同样是使用 SPI 通信,所以我选择了一款 IIC 接口的 OLED 显示。因为几个设备都是采用 IIC 通信,还是一个接口,所以感觉上还是有点干扰。

 

 

这个是最终叠加起来的效果。还是很紧凑的,拓展很方便。

 

接下来直接看功能演示吧!

 

 

可以看下上图的动图显示效果。两种不同的标签,对其进行操作,一张是可以开的,一张是无效的,当无效的放上去的时候会显示卡不正确吗,同时 RGB 灯会亮红色。当正确卡放上去时,我们的 OLED 会提示当前环境光度,当环境光度过低时我们就会开启照明。同时直流电机会转动,提示门已开。这里只是模拟了一下,实际使用我想步进电机或者舵机可能更加适合控制开锁动作。

 

下面在结合原理图讲解下,实现过程。

 

 

光照度检测是一款 IIC 接口的芯片。名称为 APDS-9930,这款芯片不仅可以测试环境光,同时可以测试距离。有了这个芯片,我门就可以根据当前光照度的值来实现开灯功能。

 

 

RGB 电路,是我用来提示用户的,是不是不正确卡功能。

 

 

电机是一个简单的直流电机,给高点平就能导通三极管使电机转动,这里主要是用来模拟开锁的。

 

 

最后就是这个 NFC 接口,主要是读取芯片获得到的卡片信息,来进行验证的。

 

最后画个流程图吧!

 

 

可以看到流程并不复杂,搞定读卡是关键。后续我会上传我的完整工程。

 

本次大赛使用官方开发板进行二次开发节约了时间。难度上也大大降低了一点。后续有机会继续分享我使用板子的一些经验。