【宿舍指纹锁—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 – 黑线
  • 指纹传感器 Arduino
    VCC 5V(它也适用于3.3V)
    TX RX(数字引脚2,串行)
    RX TX(数字引脚3,串行)
    GND GND

    注册指纹

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

    1.在Arduino IDE中,转到*File > Examples > Adafruit Fingerprint Sensor Library > Enroll*

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

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

    4.液晶屏连接

  • LCD RS 引脚到数字引脚 12
  • LCD 使能引脚到数字引脚 11
  • LCD D4 引脚到数字引脚 5
  • LCD D5 引脚到数字引脚 4
  • LCD D6 引脚到数字引脚 3
  • LCD D7 引脚到数字引脚 2
  • LCD R/W 引脚到 GND
  • LCD VSS 引脚至 GND
  • LCD VCC 引脚至 5V
  • LCD LED+ 通过 220 欧姆电阻器至 5V
  • LCD LED- 到 GND
  • 示意图

    image-20220430110145764

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

    5.舵机连接

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

    舵机 Arduino
    正极 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.总结

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

    物联沃分享整理
    物联沃-IOTWORD物联网 » 【宿舍指纹锁—Arduino UNO (保姆级教程)】

    发表评论