基于ESP32的智能云端安防控制系统

一、功能介绍

主要功能: 一款使用ESP32做主控器与HMI进行数据交互实现密码开锁、密码修改、密码存储、密码删除、指纹录入、指纹删除、IC卡录入、IC卡删除、指纹开锁、IC卡开锁、微信小程序报警提示、语音提示的功能。
采用MQTT协议连接blinker实现与手机APP应用程序无线通信,实现手机控制安防设备的开锁、录指纹、删除指纹、录入IC卡、删除IC卡。(可选)
采用MQTT协议连接阿里云,进行云端的数据存储。(可选,也可以根据自己的需求来设置存储)

1.使用ESP32_wroom_32单片机做主控制器。

2.使用串口屏HMI与主控进行界面交互,实现密码开锁、密码修改、密码存储、密码删除、指纹录入、指纹删除、IC卡录入、IC卡删除的功能。

3.使用指纹模块,实现指纹录入、指纹删除、指纹开锁的功能。

 4.使用IC卡模块,实现IC卡录入、IC卡删除、IC卡开锁的功能。

5.使用磁锁,来实现开锁关锁的功能。

6.使用三色灯来实现开锁成功是否、录入指纹成功是否、IC卡录入成功是否、指纹删除成功是否,IC卡删除成功是否的提示。

二、图片展示


三、核心代码

if (ubuffer[3] == 0xff && ubuffer[4] == 0xff && ubuffer[5] == 0xff) 
      {
        if (ubuffer[1] == 0x00 && ubuffer[2] == 0x00) //开锁成功
        {
          digitalWrite(relay, HIGH);
          digitalWrite(green, HIGH);
          Blinker.notify("开锁成功");
          delay(2000);
          digitalWrite(green, LOW);
          digitalWrite(relay, LOW);
        }
        if (ubuffer[1] == 0x00 && ubuffer[2] == 0x01) //开锁失败一次
        {
            wechat++;
          digitalWrite(relay, LOW);
          digitalWrite(red, HIGH);
          Blinker.notify("开锁失败一次");
          delay(500);
          digitalWrite(red, LOW);
        }
        if (ubuffer[1] == 0x00 && ubuffer[2] == 0x02) //开锁失败两次
        {
          wechat++;
          digitalWrite(relay, LOW);
          digitalWrite(red, HIGH);
          Blinker.notify("开锁失败两次");
          delay(500);
          digitalWrite(red, LOW);
        }
        if (ubuffer[1] == 0x00 && ubuffer[2] == 0x03) //开锁失败三次,报警
        {
            wechat++;
          //wechat=1;
          digitalWrite(relay, LOW);
          digitalWrite(red, HIGH);
        //   Blinker.notify("开锁失败三次,报警");
          delay(500);
          digitalWrite(red, LOW);
        }
        if (ubuffer[1] == 0x00 && ubuffer[2] == 0x04) //录卡
        {
          Blinker.notify("录卡");
          digitalWrite(yellow, HIGH);
          RC522_new_card_id = 1;
        }
        if (ubuffer[1] == 0x00 && ubuffer[2] == 0x05) //停止录卡
        {
          digitalWrite(yellow, LOW);
          Blinker.notify("停止录卡");
          RC522_new_card_id = 0;
        }
        if (ubuffer[1] == 0x00 && ubuffer[2] == 0x06) //删卡
        {
          digitalWrite(yellow, HIGH);
          Blinker.notify("删卡");
          RC522_detele_card_id = 1;
        }
        if (ubuffer[1] == 0x00 && ubuffer[2] == 0x07) //停止删卡
        {
          digitalWrite(yellow, LOW);
          Blinker.notify("停止删卡");
          RC522_detele_card_id = 0;
        }
        if (ubuffer[1] == 0x00 && ubuffer[2] == 0x08) //录指纹
        {
          Blinker.notify("录入指纹");
          digitalWrite(yellow, HIGH);
          id++;
          AS608_new_id    = 1;
        }
        if (ubuffer[1] == 0x00 && ubuffer[2] == 0x09) //停止录指纹
        {
          Blinker.notify("停止录入指纹");
          digitalWrite(yellow, LOW);
          AS608_new_id = 0;
        }
        if (ubuffer[1] == 0x00 && ubuffer[2] == 0x10) //删指纹
        {
          digitalWrite(yellow, HIGH);
          Blinker.notify("删指纹");
          AS608_detele_id = 1;
        }
        if (ubuffer[1] == 0x00 && ubuffer[2] == 0x11) //停止删指纹
        {
          digitalWrite(yellow, LOW);
          Blinker.notify("停止删指纹");
          AS608_detele_id = 0;
        }
      }
    } 
    else 
    {
      TJC.read();  //从串口缓冲读取1个字节并删除
    }
  }
}

void setup() 
{

    //这个继电器有问题 高电平控制NO导通  低电平控制NC导通
    pinMode(relay, OUTPUT);
    digitalWrite(relay, LOW);
    //三色RGB
    pinMode(red, OUTPUT);
    digitalWrite(red, LOW);
    pinMode(yellow, OUTPUT);
    digitalWrite(yellow, LOW);
    pinMode(green, OUTPUT);
    digitalWrite(green, LOW);

    TJC.begin(115200);//串口屏
    //串口
    // Serial.begin(115200);
      //指纹使用57600波特率 3.3v供电
    finger.begin(57600);
}

四、视频演示

安防控制系统

PS:要源码和成品可以联系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值