首先很幸运的能够参与到NFC开发大赛中来,和以往体验NFC不太一样。在本次大赛中也学习到了许多知识。下面我就以开发作品展开描述。NFC其实已经渐渐的也是应用到了门锁中来,常见就是小区门禁,当然现在很多家庭的门锁上也是带有NFC解锁功能。车载如特斯拉汽车就是可以通过NFC解锁的。后像小米的NFC碰碰传,NFC可以应用到更多的家庭设备中来。使用手机即可完成很多场景操作。当然NFC也是有弊端的,如是近场通信,目前我接触到的一般都是几厘米的距离,不够远,其次就是NFC读取方式也不方便,需要有特定芯片支持,因为要发射载波。不过我相信随着越来越多人的介入开发,NFC后期应用在家庭生活中应该会很普遍了。
       本次我选择的开发板是ST25R3916,这款芯片是可读可写的芯片,满足我对读卡方面的需求。
1.jpg
这款开发板是采用了Arduino接口,通信方式可以选择IIC和SPI,官方给的接口是SPI的,IIC接口还需自己焊接。板上有许多提示的LED主要是读写提示,以及卡类型的灯提示。
2.jpg
本次开发底板使用了F412ZG自己移植了下,官方提供了一款L476RG,两者性能差不多,因为都是采用HAL库开发,所以自己移植的工具上使用了STM32CubeMX,可直接生成可执行代码,外设使用情况也可以很清楚的知道。
3.png
此次为了应对门锁的功能,特意使用了一块拓展板。
4.jpg
上面有我需要的环境光传感器,RGB灯模块,dc电机。同时这款板子上的开发板是SPI通信的,而ST25R3916同样是使用SPI通信,所以我选择了一款IIC接口的OLED显示。因为几个设备都是采用IIC通信,还是一个接口,所以感觉上还是有点干扰。
5.jpg
这个是最终叠加起来的效果。还是很紧凑的,拓展很方便。
接下来直接看功能演示吧!
6.gif
可以看下上图的动图显示效果。两种不同的标签,对其进行操作,一张是可以开的,一张是无效的,当无效的放上去的时候会显示卡不正确吗,同时RGB灯会亮红色。当正确卡放上去时,我们的OLED会提示当前环境光度,当环境光度过低时我们就会开启照明。同时直流电机会转动,提示门已开。这里只是模拟了一下,实际使用我想步进电机或者舵机可能更加适合控制开锁动作。
下面在结合原理图讲解下,实现过程。
7.png
光照度检测是一款IIC接口的芯片。名称为APDS-9930,这款芯片不仅可以测试环境光,同时可以测试距离。有了这个芯片,我门就可以根据当前光照度的值来实现开灯功能。
8.png
RGB电路,是我用来提示用户的,是不是不正确卡功能。
9.png
电机是一个简单的直流电机,给高点平就能导通三极管使电机转动,这里主要是用来模拟开锁的。
10.png
最后就是这个NFC接口,主要是读取芯片获得到的卡片信息,来进行验证的。
最后画个流程图吧!
11.png
可以看到流程并不复杂,搞定读卡是关键。后续我会上传我的完整工程。
本次大赛使用官方开发板进行二次开发节约了时间。难度上也大大降低了一点。后续有机会继续分享我使用板子的一些经验。