现在很多公司都采用了指纹考勤,然而你自己也可以在家里制造一个指纹锁了!在指纹识别的情况下,螺线管栓塞就会弹出,门也就打开了。
我们需要的芯片是ARM Cortex M3,用于控制光学传感器和指纹识别系统。指纹存储在模块里,采用异步串口方式识别用户请求。而螺线管的程序,我们打算用Kinoma Create开发。
准备材料如下:
下载Kinoma Studio(Kinoma Studio是适用于Mac、Windows和Linux的集成开发平台)。
晶体管指纹扫描仪
5V大小的螺线管
电路板,用于控制螺线管
面包板
步骤一:接线
把螺线管和开发好的Kinoma电路板连接,将指纹扫描仪和背面的RX 接口连接。
前端的两个接口,一个设为+5V,一个接在51 pin上,作为数字输出。(如图所示)
步骤二:面包板组装
螺旋管是用于开关门的,所以需要额外的两个电子器件,分别是晶体管和二极管。前者接上5V电源,用于控制螺旋管的开关。后者用于保护电路。
步骤三:预览界面
打开KinomaJS的申请界面,会看到指纹授权的内容,分别有“登记”、“授权”以及“清除”的选项。
在指纹仪上登记了信息后,会存储在系统内并显示在屏幕上;授权键指的是确认用户的信息能够打开门锁,未经授权的指纹即使登记了,也无法成功开锁。“清除”就很简单了,指纹信息将从系统中抹去。
步骤四:代码
完整的代码可参考GitHub上的内容,具体包括代码,组件及BLL。
步骤五:指纹处理
扫描器模块捕获需要存储的指纹信息和图像;应用程序则通过调用函数控制GT511C3扫描仪。BLL则经由Kinoma Create发送命令。
手指需要在扫描仪上采集三次才能被存储,应用程序采用KinomaJS来记录三次指纹扫描,LED灯在存储一次指纹后就会启动,并等待下一次扫描。
当系统存储了指纹信息后,只要将手指放在扫描仪上就能开锁了。
步骤六:指纹图像
数据库里存储的是二进制的指纹数据,而get_rawimage BLL函数能够用于检索扫描仪扫描的原始指纹图像。函数会返回一个160*120的32字节/像素的图像。(为了节省存储空间,应用已经对图像作了压缩)图像支持png、jpeg、gif、bmp等格式。我们也可用JavaScript构建一个BMP文件夹,以存储上述的图像。
最后,我们可以用一个FingerprintPicture的指纹模板显示这些BMP格式的图像。而整个指纹列表也可以在首选项文件夹里存储为JSON。
这样一来,应用程序在启动时便会自动读取首选项,并且调用对应的数据。
最后一步:测试使用!
将这个设备安装在门上,运行Kinoma Studio的应用代码,这样就大功告成啦!如果还有什么不理解的地方,可以到这个讨论组里提问。
via instructables