TRICONEX 9661-610 模块
TRICONEX 9661-610按钮直接连接到Arduino相对于地的A0(登记)、A1(删除)、A2(上)、A3(下),黄色LED通过1k电阻连接到Arduino相对于地的数字引脚D7。指纹模块的Rx和Tx直接连接在Arduino的串行引脚D2和D3(软件串行)上。5v电源用于为取自Arduino板的指纹模块供电。蜂鸣器也连接在引脚A5上。在中配置了一个16×2的LCD4位模式其RS、EN、D4、D5、D6和D7直接连接在Arduino的数字引脚D13、D12、D11、D10、D9和D8上。
代码解释:
这TRICONEX 9661-610的指纹考勤系统代码在随后的章节中给出。虽然代码用注释解释得很好,但我们在这里讨论的是代码的几个重要部分。我们将指纹库用于指纹模块与Arduino板的接口。
首先,我们包括头文件,定义输入和输出引脚,定义宏和声明变量。之后,在设置功能中,我们给定义的pin指令,并启动LCD和指纹模块
之后我们还要写代码下载考勤数据。
void setup(){delay(1000);lcd.begin(16,2);serial.begin(9600);pinMode(enroll,INPUT _ pull up);pinMode(up,INPUT _ pull up);pinMode(down,INPUT _ pull up);pinMode(del,INPUT _ pull up);pinMode(match,INPUT _ pull up);pinMode(蜂鸣器,输出);pinMode(indFinger,OUTPUT);digitalWrite(蜂鸣器,低);if(digital read(enroll)==0){digital write(蜂鸣器,高);延迟(500);digitalWrite(蜂鸣器,低);LCD.clear();lcd.print(“请稍候”);lcd.setCursor(0,1);lcd.print(“下载数据”);
之后,我们必须编写代码来清除EEPROM中的考勤数据。
if(digital read(del)==0){LCD.clear();lcd.print(“请稍候”);lcd.setCursor(0,1);lcd.print(“重置…..”);for(int I=1000;i%3C1005i++)EEPROM.write(i,0);for(int I=0;i%3C841i++)EEPROM.write(i,0x ff);LCD.clear();lcd.print(“系统复位”);延时(1000);}
之后,我们启动指纹模块,在LCD上显示欢迎信息,并启动RTC模块。
之后,在循环功能中,我们读取RTC时间并在LCD上显示
void loop(){now=RTC.now();lcd.setCursor(0,0);lcd.print(“时间-%3E”);lcd.print(now.hour(),DEC);LCD.print(‘:’);lcd.print(now.minute(),DEC);LCD.print(‘:’);lcd.print(now.second(),DEC);LCD.print(“”);lcd.setCursor(0,1);lcd.print(“日期-%3E”);lcd.print(now.day(),DEC);LCD.print(‘/’);lcd.print(now.month(),DEC);LCD.print(‘/’);lcd.print(now.year(),DEC);
TRICONEX 9661-610之后,等待指纹输入,并将捕获的图像ID与存储的ID进行比较。如果出现匹配,则继续下一步。并检查注册删除键
int result=getFingerprintIDez();if(结果%3E0){digitalWrite(indFinger,低);digitalWrite(蜂鸣器,高);延迟(100);digitalWrite(蜂鸣器,低);LCD.clear();LCD.print(“ID:”);lcd.print(结果);lcd.setCursor(0,1);lcd.print(“请稍候…”);延时(1000);出勤率(成绩);LCD.clear();lcd.print(“考勤”);lcd.setCursor(0,1);LCD.print(“Registed”);延时(1000);digitalWrite(食指,高);返回;}
给定空隙checkKeys()该功能用于检查是否按下了注册或删除键,以及如果按下了该怎么办。如果登记键被按下注册()函数被调用,然后按DEL键删除()函数被调用。
void delet()功能用于输入要删除的ID和调用uint8_t删除指纹(uint8_t id)将从记录中删除手指的功能。
给定函数用于获取指纹图像,并将其转换为模板,以及通过选定的ID保存到指纹模块存储器中。
uint 8 _ t getFingerprintEnroll(){int p=-1;LCD.clear();lcd.print(“手指ID:”);LCD.print(id);lcd.setCursor(0,1);lcd.print(“放置手指”);延迟(2000年);而(p!=finger _ OK){p=finger.getimage();…………………
给定函数用于将考勤时间和日期存储在EEPROM的分配槽中
void考勤(int id){int user=0,eep loc=0;if(id==1){eepLoc=0;user=user 1++;}else if(id==2){eepLoc=210;user=user 2++;}else if(id==3)………….
给定函数用于从EEPROM读取数据并发送到串行监视器
void download(int eep index){if(EEPROM.read(eep index)!=0x ff){serial.print(“T-%3E”);if(EEPROM.read(eepIndex)%3c 10)serial.print(‘