首页 理论教育 ArduinoUNO编程实战—生物特征考勤系统

ArduinoUNO编程实战—生物特征考勤系统

时间:2023-10-23 理论教育 版权反馈
【摘要】:Arduino上的程序非常简单,正如我们从之前的接口教程中了解到的,当注册指纹时,将创建一个模板并为此人分配一个ID。然后,该名称将被发送到ThingsBoard设备。此外,笔者还启用了通过管理员注册指纹的选项,即如果管理员按下手指,Arduino将提示注册新指纹。笔者已经为包括管理员在内的5名员工使用了字符串数组。在Arduino IDE中安装以下两个附加库。GT511C3 FPS libraryOne pin capacitive touch sensor libraryGT511C3库可用于通过Arduino注册、检测FPS指纹。这可以通过使用readCapacitivePin选项读取电容性管脚来检查。

ArduinoUNO编程实战—生物特征考勤系统

Arduino上的程序非常简单,正如我们从之前的接口教程中了解到的,当注册指纹时,将创建一个模板并为此人分配一个ID。因此,我们所要做的就是查找ID并将其与名称关联,然后通过串行通信将此名称发送到ESP8266。然后,该名称将被发送到ThingsBoard设备。此外,笔者还启用了通过管理员注册指纹的选项,即如果管理员按下手指,Arduino将提示注册新指纹。系统编程涉及的代码解释如下。

第一步是将ID号与员工姓名关联起来。笔者已经为包括管理员在内的5名员工使用了字符串数组。因此,ID号为0的人是管理员,1是张三,依此类推。因此,对于5名员工,将使用0到4之间的ID号。如果管理员注册了一个新员工的指纹,他将拥有与他的姓名相关的ID号“5”。

char*Name_List[]={"Admin","shangsan","Lisi","Wangwu","Zhaoliu"};

接下来,我们可以通过添加所有必需的库来启动程序。在Arduino IDE中安装以下两个附加库。

GT511C3 FPS library

One pin capacitive touch sensor library

GT511C3库可用于通过Arduino注册、检测FPS指纹。电容式触摸传感器库允许我们检查是否有人触摸了FPS上的金属外壳。将库添加到Arduino后,将它们包括在程序中,如下所示:

#include"FPS_GT511C3.h"//Get library from https://github.com/sparkfun/Fingerprint_Scanner-TTL

#include"SoftwareSerial.h"//Software serial library

#include<LiquidCrystal.h>//Library for LCD

#include"OnePinCapSense.h"//Librarey to sensor capacitive touch https://github.com/MrYsLab/OnePinCapSense

我们已将ESP8266的Rx和Tx引脚连接到Arduino引脚12和13,并将FPS传感器串行引脚连接到引脚9和8。因此,我们可以为ESP8266和FPS创建传感器单独的串行通信实例,如下所示。我们还提到,引脚10用于电容式触摸传感器,LCD连接到引脚D2至D7。(www.xing528.com)

Softwareserial ESP(12,13);//RX,TX

FPS_GT511C3 fps(9,8);//FPS connected to D9 and D8

const int rs=7,en=6,d4=5,d5=4,d6=3,d7=2;//Mention the pin number for LCD connection

LiquidCrystal lcd(rs,en,d4,d5,d6,d7);//Initialize LCD method

int capSensePin10=10;//Pin to which casing of sensor is connected

在setup()函数中,串行通信波特率为9600,并在LCD上显示一条简短的介绍信息。我们还打开了与FPS的通信,如果先前一直打开,则已关闭其蓝色LED。

在loop()函数内部,我们必须检查是否有人触摸传感器以开始工作。这可以通过使用readCapacitivePin选项读取电容性管脚来检查。对于我们的设置,笔者发现,当外壳未被触摸时,读取值始终超过50;当有人触摸时,读取值会低于50。因此,我们可以使用它来检查传感器是否被触摸。如果触碰传感器,我们只需打开蓝色LED。

int capSense10=opcs.readCapacitivePin(capSensePin10);

if(capSense10<50)

{fps.SetLED(true);delay(500);}

一旦蓝色LED点亮,传感器将能够检测到触摸它的物体是否是手指。如果它是手指,那么我们捕获指纹的图像并对其进行识别以获得其ID号。如果ID号为200,则表示识别的指纹尚未登记。因此,我们将显示unknown,如果ID为0,则表示识别的指纹是管理员的指纹,因此我们继续注册新指纹。如果识别的号码在我们的姓名列表中,那么我们可以继续在LCD上显示他们的姓名,并将信息发送到ESP8266。在此过程之后,我们可以最终关闭蓝色LED,直到检测到新的手指触摸。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈