重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
创新互联主营罗江网站建设的网络公司,主营网站建设方案,手机APP定制开发,罗江h5微信小程序开发搭建,罗江网站营销推广欢迎罗江等地区企业咨询文章目录
在学完C语言之后,在学校学长的建议之下开始了Arduino的学习,其实本人刚开始对于硬件方面其实毫无兴趣,但学长说我们学习需要得到及时的反馈,就像工作了需要拿到工资一样,于是在学习了一周的Arduino之后抱着试一试的心态做出了这个指纹锁。
一、需要的制作材料1:Arduino nano开发板一块 2:AS608指纹模块 3:SG90舵机若干(这个取决于到时连接门栓时的连接方式) 4:0.96寸OLED屏幕一块 5:DHT11温湿度传感器 6 杜邦线若干、面包板一块
二、代码编写逻辑(部分) 1.需要引入的库及引脚定义//温湿度传感器模块
#include"DHT.h"
#include#define DHTPIN 2//将温湿度传感器连接到二号引脚
#define DHTTYPE DHT11
DHT dht(DHTPIN,DHTTYPE);
//OLED屏幕模块
#include//屏幕大小为0.96的 才能用,驱动芯片为SSD1306
U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2(U8G2_R0,SCL,SDA,U8X8_PIN_NONE);
//电机模块SG90
#includeServo myservo; //定义电机
int pos = 0;
//指纹锁模块AS608
#include
SoftwareSerial mySerial(11, 12);//将指纹连接到11,12号引脚
#if (defined(__AVR__) || defined(ESP8266)) && !defined(__AVR_ATmega2560__)
#else
#define mySerial Serial1
#endif
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
2.代码主体部分代码如下(示例):
void setup()
{
dht.begin();
u8g2.begin();
myservo.attach(9); //将电机连到9号引脚上
delay(100);
Serial.begin(9600);
while (!Serial);
delay(100);
Serial.println(F("\n\n准备开始指纹录入"));
finger.begin(57600);
if (finger.verifyPassword()) {
Serial.println(F("发现指纹锁已连接!"));
} else {
Serial.println(F("发现指纹锁没有连接"));
while (1) { delay(1); }
}
finger.getTemplateCount();
if (finger.templateCount == 0) {
Serial.print(F("该设备没有录入任何指纹,请录入后再操作"));
}
else {
Serial.println(F("正在等待已被录入指纹"));
Serial.print(F("该设备已包括:")); Serial.print(finger.templateCount); Serial.println(F("个指纹"));
}
}
uint8_t readnumber(void) {
uint8_t num = 0;
while (num == 0) {
while (! Serial.available());
num = Serial.parseInt();//分析串口数据中的信息,并赋值给变量num
}
return num;
}
void loop()
{
MENNU();
while(Serial.available()>0)
{
Serial.println(F("准备好录入一个指纹!"));
Serial.println(F("请输入指纹编号(1到6)!"));
id = readnumber();
if (id == 0) {
return;
}
Serial.print(F("指纹ID #"));
Serial.println(id);
if(id==1||id==2||id==3||id==4||id==5||id==6)
{
getFingerprintEnroll();
delay(100);
}
if(id==66)
{
Del_Finger();
}
}
while(Serial.available()==0){
finger.getTemplateCount();
if (finger.templateCount == 0) {
Serial.print(F("设备不包括任何指纹,请先录入指纹"));
}
else {
Serial.println(F("等待正确的指纹"));
Serial.print(F("该设备包括")); Serial.print(finger.templateCount); Serial.println(F("个指纹"));
}
Detect_finger();
}
}
上面的代码主体部分中调被调用的函数代码没有详细列出,对于getFingerprintEnroll()、Del_Finger()、Detect_finger()三个函数其实本人与Arduino中的示例库函数是大体上相同的,本人花费的最多时间就是去看懂“#include ”这个库里面的两个示例函数enroll(储存指纹)和fingerprint(验证指纹)两大部分,弄清楚每段代码的含义,那么你就可以将两者结合起来了。
完整代码链接:
http://t.csdn.cn/3AwlM
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧