指纹传感器生物识别门锁

此项目是基于IoT的指纹传感器生物识别门锁。在这里,我们使用GT5111C3指纹传感器,NodeMCU和电磁锁构建基于IoT的生物特征安全系统。指纹扫描仪传感器已在许多地方使用,例如工业,办公室,学校,学院和酒店。 通过将IoT与指纹传感器一起嵌入,我们可以将基于指纹的安全系统项目提升到一个新的水平。

应用介绍

此项目是基于IoT的指纹传感器生物识别门锁。

在这里,我们使用GT5111C3指纹传感器,NodeMCU和电磁锁构建基于IoT的生物特征安全系统。

微信图片_20200409134941.png

指纹扫描仪传感器已在许多地方使用,例如工业,办公室,学校,学院和酒店。 通过将IoT与指纹传感器一起嵌入,我们可以将基于指纹的安全系统项目提升到一个新的水平。因此,在本项目中,我们将使用GT5111C3指纹传感器,NodeMCU和电磁锁来构建基于IoT的生物特征安全系统。 当未经授权的人扫描指纹传感器上的手指时,Adafruit IO用于在线保存条目详细信息,而IFTTT用于发送电子邮件通知。

所需组件:

NodeMCU ESP8266

GT511C3指纹传感器

电磁锁

继电器模块

蜂鸣器

12V适配器

跳线

电路板

GT511C3指纹传感器模块:

微信图片_20200409135736.png

GT-511C3指纹扫描仪传感器模块由安装在小电路板上的光学传感器组成。 光学传感器扫描指纹,与EEPROM耦合的ARM微控制器处理扫描的指纹。 GT-511C3模块可以存储200个指纹。 每个指纹都保存有不同的ID。 GT-511C3的工作电压为3.3V至6V。

微信图片_20200409135920.png

电磁锁

电磁锁在电子机械锁机构上工作。 该螺线管锁带有一个带有倾斜切口的嵌条和一个良好的安装支架。 在正常情况下,弹头会留在支架外面,但是当施加直流电压时,弹头会在支架内移动。 电磁锁的理想工作电压为12V。 它可以在9V电压下使用,但会导致运行速度变慢。

物联网生物计量安全系统电路图:

微信图片_20200409133127.png

基于物联网的生物特征安全系统的电路包括一个NodeMCU,GT511C3指纹传感器,电磁锁,中继模块和蜂鸣器。 指纹传感器的VCC和GND引脚连接到NodeMCU的3.3V和GND引脚,而TX和RX引脚连接到NodeMCU的D6和D5引脚。 蜂鸣器的正极连接到NodeMCU的D2引脚,负极连接到NodeMCU的GND。 电磁锁通过继电器模块连接到NodeMCU。 NodeMCU和电磁锁均由12V适配器供电。

如何注册指纹:

在为基于指纹的安全系统对NodeMCU进行编程之前,我们首先必须将指纹注册到GT511C3指纹传感器中。

之后,重新启动IDE,然后转到“文件”>“示例”>“指纹扫描仪TTL”>“ FPS_Enroll”

将FPS_Enroll程序上载到您的NodeMCU。

代码和硬件准备就绪后,我们可以检查一切是否正常。 将代码上传到NodeMCU并将其连接到适配器。 现在,等待Wi-Fi连接。 一旦NodeMCU连接到Wi-Fi,请在指纹传感器上扫描手指。 如果手指已注册,它将发出哔哔声打开锁,并将带有该人姓名的消息发送给Adafruit IO。 如果手指没有被注册,它将向未经授权的人试图输入的电子邮件地址发送电子邮件。

本人在下方展示了基于物联网的生物识别安全系统的完整代码:

#include "FPS_GT511C3.h"
#include "SoftwareSerial.h"
#include <ESP8266WiFi.h>
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"
const char *ssid =  "Galaxy-M20";     // Enter your WiFi Name
const char *pass =  "ac312124"; // Enter your WiFi Password
String msg;
char msg1[20];
WiFiClient client;
#define MQTT_SERV "io.adafruit.com"
#define MQTT_PORT 1883
#define MQTT_NAME "choudharyas"
#define MQTT_PASS "988c4e045ef64c1b9bc8b5bb7ef5f2d9"
void send_event(const char *event);
const char *host = "maker.ifttt.com";
const char *privateKey = "hUAAAz0AVvc6-NW1UmqWXXv6VQWmpiGFxx3sV5rnaM9";

FPS_GT511C3 fps(D6, D5); 
#define relay D1
#define buzzer D2
Adafruit_MQTT_Client mqtt(&client, MQTT_SERV, MQTT_PORT, MQTT_NAME, MQTT_PASS);
//Set up the feed you'r publishing to
Adafruit_MQTT_Publish Fingerprint = Adafruit_MQTT_Publish(&mqtt,MQTT_NAME "/f/Fingerprint");

void setup()
{
  Serial.begin(9600); //set up Arduino's hardware serial UART
  delay(100);
  fps.Open();         //send serial command to initialize fps
  fps.SetLED(true);   //turn on LED so fps can see fingerprint
  pinMode(relay, OUTPUT);
  pinMode(buzzer, OUTPUT);
  digitalWrite(relay, LOW); // keep motor off initally
  Serial.println("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, pass);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");              // print ... till not connected
  }
  Serial.println("");
  Serial.println("WiFi connected");
}
void loop()
{
  MQTT_connect();
  // Identify fingerprint test
  if (fps.IsPressFinger())
  {
    fps.CaptureFinger(false);
    int id = fps.Identify1_N();
    
     if (id ==7) //<- change id value depending model you are using
     {
      Serial.print("Ashish Entered");
      Buzzer();
      digitalWrite(relay, HIGH);
      delay(6000);
      digitalWrite(relay, LOW);
      msg = "Ashish Entered";
      msg.toCharArray(msg1, 20);
      if (! Fingerprint.publish(msg1))
        {                     
         //delay(7000);   
          }
         }
     else if (id ==8)
       {
        Serial.print("Manoj Entered");
        Buzzer();
        digitalWrite(relay, HIGH);
        delay(6000);
        digitalWrite(relay, LOW);
        msg = "Manoj Entered";
        msg.toCharArray(msg1, 20);
        if (! Fingerprint.publish(msg1))
        {                     
         //delay(7000);   
          }
       }
     else if (id ==9)
       {
        Serial.print("Aswinth Entered");
        Buzzer();
        digitalWrite(relay, HIGH);
        delay(6000);
        digitalWrite(relay, LOW);
        msg = "Aswinth Entered";
        msg.toCharArray(msg1, 20);
        if (! Fingerprint.publish(msg1))
        {                     
         //delay(7000);   
          }
       }
      
    
     else
      {//if unable to recognize
       send_event("login_event");
       Serial.println("Finger not found");
       for(int i = 7; i > 0; i--){
        digitalWrite(buzzer, HIGH);
        delay(100);
        digitalWrite(buzzer, LOW);
        delay(100);
       }
    }
  }
  else
  {
    Serial.println("Please press finger");
  }
  delay(100);
 
}
void send_event(const char *event)
{
  Serial.print("Connecting to ");
  Serial.println(host);
  
  // Use WiFiClient class to create TCP connections
  WiFiClient client;
  const int httpPort = 80;
  if (!client.connect(host, httpPort)) {
    Serial.println("Connection failed");
    return;
  }
  
  // We now create a URI for the request
  String url = "/trigger/";
  url += event;
  url += "/with/key/";
  url += privateKey;
  
  Serial.print("Requesting URL: ");
  Serial.println(url);
  
  // This will send the request to the server
  client.print(String("GET ") + url + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" + 
               "Connection: close\r\n\r\n");
  while(client.connected())
  {
    if(client.available())
    {
      String line = client.readStringUntil('\r');
      Serial.print(line);
    } else {
      // No data yet, wait a bit
      delay(50);
    };
  }
  
  Serial.println();
  Serial.println("closing connection");
  client.stop();
}
void MQTT_connect() 
{
  int8_t ret;
  // Stop if already connected.
  if (mqtt.connected()) 
  {
    return;
  }
  uint8_t retries = 3;
  while ((ret = mqtt.connect()) != 0) // connect will return 0 for connected
  { 
       
       mqtt.disconnect();
       delay(5000);  // wait 5 seconds
       retries--;
       if (retries == 0) 
       {
         // basically die and wait for WDT to reset me
         while (1);
       }
  }
}
void Buzzer()
{
  digitalWrite(buzzer, HIGH);
  delay(1000);
  digitalWrite(buzzer, LOW);
}

文件列表(部分)

名称 大小 修改日期
基于IoT的指纹传感器生物识别门锁(附件).txt1.79 KB2020-04-09
微信图片_20200409133127.png174.54 KB2020-04-09
微信图片_20200409134941.png540.74 KB2020-04-09
微信图片_20200409135736.png226.83 KB2020-04-09
微信图片_20200409135920.png136.63 KB2020-04-09
image0.00 KB2020-04-09

立即下载

相关下载

[指纹传感器生物识别门锁] 此项目是基于IoT的指纹传感器生物识别门锁。在这里,我们使用GT5111C3指纹传感器,NodeMCU和电磁锁构建基于IoT的生物特征安全系统。指纹扫描仪传感器已在许多地方使用,例如工业,办公室,学校,学院和酒店。 通过将IoT与指纹传感器一起嵌入,我们可以将基于指纹的安全系统项目提升到一个新的水平。

评论列表 共有 0 条评论

暂无评论

微信捐赠

微信扫一扫体验

立即
上传
发表
评论
返回
顶部