基于Arduino的智能门禁系统模拟(智能舵机应用)

基于Arduino的智能门禁系统模拟(智能舵机应⽤)
基于Arduino的智能门禁系统
项⽬简介
在暑期课程设计的第⼆阶段,课程要求我们利⽤Arduino Nano开发板和⼤然科技的智能舵机外加任意外设以实现特定的使⽤功能。在仔细考虑之后,我最终选择了在此基础上外加三种外设实现⼯作在两种可选模式下的智能门禁仿真系统。
功能说明
本设计为以Arduino Nano开发板为核⼼驱动的智能门禁控制系统,主要功能有:根据上位机串⼝输⼊数据选择门禁系统⼯作模式;
外部门禁状态:使⽤RFID卡作为识别依据开启门禁,⼀定延时之后操控智能舵机关门,并将IC卡的UID通过串⼝发送给上位机存储;
内部门禁状态:使⽤压⼒传感器和红外传感器判断并驱动智能舵机开门,⼀定延时之后操控智能舵机关门,并将门禁开启信息通过串⼝发送⾄计算机端记录。
系统包含外设:⼤然科技智能舵机;
压⼒传感器FSR406;
RC522 RFID射频识别器和传感器;
悬空板HC-SR501 ⼈体红外传感器;
原理说明
智能门禁控制系统分为控制模块和功能模块两个部分,其中控制模块以Arduino Nano单⽚机开发板为控制系统核⼼,功能模块包含⼤然科技智能舵机、压⼒传感器FSR406、RC522 RFID射频识别器和传感器、HC-SR501⼈体红外传感器、舵机电池、由杜邦线和⾯包板组成的电路系统。
系统存在向内开门和向外开门两个⼯作模式,由计算机串⼝输⼊数据决定⼯作模式。
向内开门模式⼯作时,RFID作为门禁系统向内开启的判断依据,当识别到符合要求的IC卡时,RC522模块向单⽚机发送信号,单⽚机控制智能舵机向内转动开门,并向计算机通过串⼝发送记录数据,设置延时4s后,单⽚机控制智能舵机复位,门禁系统关闭;
向外开门模式开始⼯作时,FSR406和HC-SR501红外传感器同时⼯作,当同时检测到压⼒输⼊和红外⼈体识别时,单⽚机控制智能舵机向外转动开门,单⽚机同时向计算机输出数据,设置延时4s后,单⽚机控制智能舵机复位,门禁系统关闭。
硬件结构图
功能模块各元件介绍
⼤然科技智能舵机A03-MM
压⼒传感器FSR-406
RC522-RFID射频识别传感器
HC-SR501⼈体红外传感器
垃圾分类机软件流程设计
软件模块介绍.
门禁系统的运⾏代码基于Arduino IDE进⾏编写,头⽂件引⽤了<m_servo.h>⽤于智能舵机;<SPI.h>和<MFRC522.h>⽤于RFID读卡器的设备控制
在软件的loop循环中,根据上位机串⼝发送的信息选择门禁系统的两种⼯作模式:
① 采⽤RFID控制的外部门禁
软件思路:已预先设定符合要求的IC卡UID,当RFID感应到符合要求的门禁卡时,将UID串⼝发送给上位机,同时控制智能舵机向外开门。
② 采⽤压⼒传感器和红外传感器综合控制的内部通⾏门禁
压⼒传感器和红外传感器设置在门的另⼀侧,当同时检测到输⼊信号时,即发现有⼈经过时,单⽚机控制舵机转动向内开门,同时串⼝发送给上位机记录。
部分代码展⽰
RFID外部门禁模式
```c
if (mode=='1')                            //门禁系统⼯作在外部模式
铆压机{
if ( ! rfid.PICC_IsNewCardPresent())
return;                                // RFID卡
if ( ! rfid.PICC_ReadCardSerial())
return;                                // RFID验证卡ID是否可读
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);      if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
Serial.println("不⽀持读取此卡类型");
return;
}                                        // 检查IC卡是否可读
for (byte i = 0; i < 4; i++) {
nuidPICC[i] = rfid.uid.uidByte[i];
}                                        // 将NUID保存到nuidPICC数组
Serial.print("检测到UID:");
printDec(rfid.uid.uidByte, rfid.uid.size);
煤矸石烧结砖
Serial.println();
for (byte i = 0; i < 4; i++)
{
if(nuidPICC[i]==check[i])
c++;
}
if(c==4)
{
Serial.println("Request granteds"); //判断刷卡是否为许可的ID卡
Serial.print("Times:");
se.set_angle(121,90,50);            //舵机模拟开门
delay(1000);
Serial.println("Door Opening");
door=1;                            //指⽰变量=1,表⽰门禁开启状态
delay(4000);                        //等待时间为4s
se.set_angle(121,150,50);          //门禁系统关闭
delay(1000);
Serial.println("Door Closing ");
door=0;
}
else
Serial.println("Request denied");
c=0;
红外压⼒内部模式相册内页
```c
else if(mode==2)                                //门禁系统⼯作在内部模式下
{
Serial.println("System working on inside!");  //串⼝输出⼯作模式流水线称重
pressState=digitalRead(PressPin);
redState=digitalRead(RedPin);
while(pressState==0&&redState==0);            //等待直到启动信号输⼊  se.set_angle(121,225,50);                      //门禁系统启动
delay(4000);                                  //设置延时为4s
Serial.println("Door Opening");
se.set_angle(121,150,50);                      //门禁系统关闭
delay(1000);
Serial.println("Door Closing ");
}
系统完整结构图
拓展功能与设计
实际⼯作时,可基于实际⼯作环境的需要⾃由选择门禁系统的⼯作模式,或选⽤其他类型的传感器作为门禁系统的⼯作传感器(如指纹传感器或密码锁等形式),故此处不再赘述。
对复杂的门禁系统设计,可采⽤双舵机形式辅助开门,或选择扭矩更⼤的舵机⽤于开门动作。

本文发布于:2024-09-23 10:22:21,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/235425.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:智能   舵机   门禁系统
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议