资讯详情

【宿舍指纹锁---Arduino UNO (保姆级教程)】

宿舍指纹—Arduino UNO

1.准备材料

  • Arduino UNO
  • AS608指纹模块 TTL转接口
  • MG996R舵机
  • 1602液晶
  • 胶枪
  • 杜邦线
  • 面包板
  • 细线
  • 5v电源

2.库文件

https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library/archive/master.zip

1.首先下载Adafruit指纹库(https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library/archive/master.zip)。下载后,您将获得一个.zip文件;

若网络问题也可以选择网盘下载(百度网盘链接:https://pan.baidu.com/s/1CtmazaWGRVbuUJDGhkte7A 提取码:kdnb)

2.解压缩.zip你会看到一个文件***Adafruit-Fingerprint-Sensor-Library-master***文件夹;

3.将**Adafruit-Fingerprint-Sensor-Library-master*Adafruit_Fingerprint_Sensor_Library***文件夹;

4.将文件夹移动到您身上Arduino IDE安装库文件夹;

5.最后,重新打开Arduino IDE。

3.指纹录入

  • DNC – 白线
  • VCC – 红线
  • TX – 蓝线
  • RX – 绿线
  • GND – 黑线
VCC 5V(也适用于3.3V)
TX RX(数字引脚2,串行)
RX TX(数字引脚3,串行)
GND GND

注册指纹

将指纹传感器模块连接到Arduino,请按以下步骤注册新指纹。确保您以前安装过指纹。Adafruit指纹传感器库。

1.在Arduino IDE中,转到*

2.上传代码到Arduino开发板以9600波特率打开串行监视器(在工具中–>)。

3.显示读取指纹模块后可输入指纹编号,提示move后拿起手指再次按压然后单击***Send***按钮。

4.液晶屏连接

示意图

image-20220430110145764

[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-oODlUT33-1651288803731)(https://cdn.jsdelivr.net/gh/kdmvp-lin/MarkdownImg/image-20220430105712491.png)]

5.舵机连接

Arduino————舵机 5V————正极 GND————负极 9————信号线

舵机
正极 5V(也适用于3.3V)
信号线 10(也可以是9,9代码也需要修改)
负极 GND

舵机说明:

因为用的是MG996r 360度舵机,因此舵机控制不能像180度舵机那样设置角度。舵机设置速度和时间

控制舵机代码如下:

  //0-90 为顺时针转 90-180为逆时针 越接近0 和180 速度越快 90时停止  pos=0;     myservo.write(pos);     delay(3800);  //3800毫秒后停止(因为供电设备和拉门锁不同,可能需要修改delay(3800)参数)     pos=90;     myservo.write(pos); 

6.代码部分

完整代码:

#include <LiquidCrystal.h> #include <Adafruit_Fingerprint.h> #include <SoftwareSerial.h>
#include <Servo.h> 
Servo myservo;
SoftwareSerial mySerial(2, 3);
//初始化引脚
LiquidCrystal lcd(12, 11, 7, 6, 5, 4);
int pos=0;
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
int fingerprintID = 0;
String IDname;
void setup() { 
        
    //舵机信号口
  myservo.attach(10);
  // 设置LCD的行列数据: 
  lcd.begin(16,2);
    //Fingerprint sensor module setup
    Serial.begin(9600);
   // set the data rate for the sensor serial port
    finger.begin(57600);
  
   if (finger.verifyPassword()) { 
        
     Serial.println("Found fingerprint sensor!");
   } 
   else { 
        
     Serial.println("Did not find fingerprint sensor :(");
     while (1) { 
         delay(1); }
   }
}

void loop() { 
        
  fingerprintID = getFingerprintIDez();
  delay(50);
   //如果找到下列指纹序号
  if(fingerprintID == 1 || fingerprintID == 2 || fingerprintID == 3 || fingerprintID == 4|| fingerprintID == 5){ 
        
   
      // 将光标移动到(0,0):
    lcd.setCursor(0, 0);                                        
    lcd.print("Welcome !");
  // Servo_Control();
    pos=0;
    myservo.write(pos);
    delay(3800);
    pos=90;
    myservo.write(pos);
    delay(3000); 
 }
  delay(1500); 
  lcd.clear(); 

}

//指纹匹配函数
int getFingerprintIDez() { 
        
  uint8_t p = finger.getImage();
  if (p != FINGERPRINT_OK)  return -1;

  p = finger.image2Tz();
  if (p != FINGERPRINT_OK)  return -1;

  p = finger.fingerFastSearch();
  if (p != FINGERPRINT_OK)  return -1;


  
  return finger.fingerID; 
}

8.总结

到这里就已经实现指纹驱动舵机拉动门把手了,舵机的粘贴根据实际门把手位置自行安装,将指纹模块和显示屏装在门外面,再用杜邦线通过门缝连到里面来,固定可以使用热熔胶固定(用酒精擦拭可以取下并且不留痕迹)。

标签: 热熔胶传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台