blinker-指纹打卡-Arduino中文社区 - Powered by Discuz! Archiver

Maniac_FC 发表于 2022-10-1 15:46

blinker-指纹打卡

本帖最后由 Maniac_FC 于 2022-10-1 23:08 编辑

简介:使用wifiduino、指纹模块、点灯App实现一个远程打卡功能。打卡人员通过上位机给指纹模块录入指纹并编号,此过程需要USB转串口工具,如果不用上位机也可以,但需要自己在Aduino ide里编写生成指纹特征、录入指纹图像、合并指纹特征、存入指纹模板等函数,这些指令码可以在芯片手册中查询到,为了方便,我只编写了一个搜索指纹并发送打卡人员编号的功能,参考这一个功能函数然后更改指令码也能写出其他功能函数,有兴趣可以尝试。
硬件设备:wifiduino、bm2166圆形指纹模块、USB转串口工具


软件:Aduino ide1.8.19、blinker、指纹录入上位机、串口调试助手、esp8266库、Blinker库



指纹芯片手册:https://www.aliyundrive.com/s/VS6fmui84xU
上位机软件:]https://www.aliyundrive.com/s/fa15DiBVbfs
Arduino ide1.8.19:https://www.aliyundrive.com/s/4FHjvLmkJEU
esp8266库:https://www.aliyundrive.com/s/8CZKXzFELNe
Blinker库:https://github.com/blinker-iot/blinker-library
串口调试助手:https://www.aliyundrive.com/s/FwPeazUPjNZ
CH340驱动:https://www.aliyundrive.com/s/ZSD1JZXnTjP




代码:
#define BLINKER_WIFI
#define pin D10
#include <Blinker.h>
byte BYTE;
byte BYTE1={0XEF,0X01,0XFF,0XFF,0XFF,0XFF,0X01,0X00,0X08,0X32,0X01,0XFF,0XFF,0X00,0X04,0X02,0X3E};
char auth[] = "********";
char ssid[] = "*********";
char pswd[] = "*******";
//新建组件对象BlinkerText Text1("TextKey1");
void setup()
{   
// 初始化串口   
Serial.begin(57600);   
pinMode(pin,INPUT);   
// 初始化blinker   
Blinker.begin(auth, ssid, pswd);
}
void loop()
{
//使用中断的方式烧录代码后会导致wifiduino后续下载不进去程序,总是显示端口占用,会折腾好久,所以用了if轮询
if(digitalRead(pin)==1)
{   
delay(200);   
Serial.write(BYTE1,17);   
delay(1000);   
    //如果缓冲区接收到数据就储存到数组   
    if(Serial.available()>0)
    {   
   for(int j=0;j<17;j++)   
   BYTE=Serial.read();
    }
    //处理需要的编号数据并发送
    if(BYTE!=0XFF)   
    Text1.print(BYTE);   
    else Text1.print("error");   
    }   
Blinker.run();
}

Blinker定制界面:
https://www.arduino.cn/forum.php?mod=image&aid=83837&size=300x300&key=0a45ccd72865dcb3&nocache=yes&type=fixnonehttps://www.arduino.cn/forum.php?mod=image&aid=83838&size=300x300&key=47a2c4fa467decae&nocache=yes&type=fixnonehttps://www.arduino.cn/forum.php?mod=image&aid=83839&size=300x300&key=a77244c0c4ad5809&nocache=yes&type=fixnone

硬件连接:
https://www.arduino.cn/forum.php?mod=image&aid=83840&size=300x300&key=1a29885212a42f78&nocache=yes&type=fixnone
https://www.arduino.cn/forum.php?mod=image&aid=83843&size=300x300&key=3e6be1432b497f70&nocache=yes&type=fixnone



现象:上位机录入指纹以及编完号、并在Blinker配置好密钥和界面UI后、开始烧录程序,然后将D10引脚置为高电平,将手指放在指纹模块上,如果校验正确会蓝灯变绿灯并发送编号,若校验不正确则会蓝灯变红灯并发送“error”字符,因为功能很少当D10为低电平时没有程序可执行,即没有现象。



he20101010 发表于 2022-10-5 22:19

远程与考勤的指纹机怎么连接列?

Maniac_FC 发表于 2022-10-5 22:26

he20101010 发表于 2022-10-5 22:19
远程与考勤的指纹机怎么连接列?

不是有示意图吗,1、3接3.3v,4、5各连接RX0、TX0,6接gnd
页: [1]
查看完整版本: blinker-指纹打卡