【物联网树莓派毕设04】Arduino实现电梯及人脸识别门禁
一、前言
这次是利用Arduino实现毕设中的电梯联动及门禁的部分,因为之前大二的时候用过Arduino做过课设,比较熟悉,其中一个项目就是实现模拟电梯运行。毕设的电梯部分,功能不用很复杂,只需要实现简单的呼梯即可。Arduino利用蓝牙与树莓派通信,通过树莓派进行人脸识别后,获取目标楼层需求,进而利用树莓派自带的蓝牙将数据传输给Arduino,同时打开进入酒店电梯门禁。效果图如下:
电梯 人脸识别门禁
二、具体实现
1、硬件准备
(1)Arduino 的R3主板
(2)步进电机:驱动电梯上下
(3)74HC164芯片,1位共阴或共阳数码管:楼层显示
(4)超声波模块:测距,感知电梯所在楼层状态
(5)蓝牙HC-05:与树莓派蓝牙通信
(6)舵机SG90:门禁开关(注意:是90-180°的,不要360°)
(7)面包板、杜邦线若干、树莓派和摄像头就不多说了
2、功能验证
(1)舵机:有3根线,分别是黑红黄,其中黑色线接地,红色线接电源5V,黄色线则是信号线。通过write()函数来控制舵机的角度,范围:0-180°。
#include <Servo.h>Servo myservo; // 定义Servo对象来控制void setup(){ myservo.attach(10); // 控制线连接数字10
}void loop() {myservo.write(135); //角度可以自己根据需要调整delay(1000);myservo.write(30);delay(1000);
}
(2)步进电机:按下图将步进电机和驱动板连接好,驱动板左侧IN1、IN2、IN3、IN4分别接至arduino的2-5串口上,看清驱动板的正负极,分别接地和5V,这里就不画接线图了
void setup(){ for (int i = 2; i < 6; i++) { //步进电机串口的初始化 pinMode(i, OUTPUT); }
}void clockwise(int num){ //步进电机正转函数 512/圈for (int count = 0; count < num; count++){for (int i = 2; i < 6; i++){digitalWrite(i, HIGH);delay(3);digitalWrite(i, LOW);}}
}void anticlockwise(int num){ //步进电机反转函数 512/圈for (int count = 0; count < num; count++){for (int i = 5; i > 1; i--){digitalWrite(i, HIGH);delay(3);digitalWrite(i, LOW);}}
}
void loop() { clockwise(512);delay(1000);anticlockwise(512);delay(1000);
}
(3)超声波测距:有4个引脚,VCC接5V,GND接地,trig接串口8,echo接串口9,测试结果会打印在串口监视器上。
int ting = 8;
int echo = 9;
float distance; //测距距离void setup(){Serial.begin(9600);
//初始化超声波测距串口pinMode(ting,OUTPUT);pinMode(echo,INPUT);
}void SendDis(){ //发送超声波测距距离digitalWrite(ting,LOW);delayMicroseconds(2);digitalWrite(ting,HIGH);delayMicroseconds(10);digitalWrite(ting,LOW);distance = pulseIn(echo,HIGH)/58.00;Serial.println(distance);
}void loop() { SendDis();delay(1000);
}
(4)74HC164驱动数码管显示数字。74HC595更简单,但是需要3个串口,在串口不紧张的时候可以使用595,这里提供一种74HC164的方法,需要2个串口即可驱动数码管。
如图所示,根据74HC164的功能引脚图,DSA和DSB串联接到串口7上,CP时钟口接到带~的串口6上,这就是所需的两个串口。然后,Q0-Q7分别接上数码管的a-g上,GND接地,VCC和MR非串联接5V。其中,数码管的公共端,若是共阴,则串联接低电平;若是共阳,则串联一个电阻接高电平。
const unsigned char DuanMa[3]={0xf9,0xa4,0xb0}; //数码管段码 这里给出1、2、3的
int CLK = 6;
int DAT = 7;void setup() {//初始化数码管串口pinMode(CLK, OUTPUT);pinMode(DAT, OUTPUT);
}void SendByte(unsigned char dat){ //发送数码管数据 static unsigned char i;for(i=0;i<8;i++){digitalWrite(CLK,LOW);digitalWrite(DAT,bitRead(dat,7-i));digitalWrite(CLK,1);}
}void loop(){SendByte(DuanMa[0]);delay(1000);SendByte(DuanMa[1]);delay(1000);SendByte(DuanMa[2]);delay(1000);
}
(5)蓝牙HC-05,这里需要用到虚拟串口,选择Arduino上的11、12串口,利用函数SoftwareSerial mySerial(11,12)设置,这里11是RXD,12是TXD。要注意是蓝牙的RXD接Arduino的TXD,蓝牙的TXD接Arduino的RXD,然后VCC和GND分别接5V和地即可。
/** Arduino部分*/
#include <SoftwareSerial.h>SoftwareSerial mySerial(11,12);void setup() {//开启串口通信Serial.begin(115200);mySerial.begin(9600);
}void loop() { //蓝牙通信while(mySerial.available()){char c;c = mySerial.read();mySerial.println(c);switch(c){case '1':Serial.println("~~~电梯去往1楼~~~");break;case '2':Serial.println("~~~电梯去往2楼~~~");break;case '3':Serial.println("~~~电梯去往3楼~~~");break;default:break;}}}
树莓派打开VNC界面,右上角点击蓝牙图标, Turn On bluetooth,点击Add Device,Arduino上电之后,可以在列表中找到HC-05,鼠标放上去旁边会显示蓝牙地址,点击连接,默认密码:1234,即可配对成功。
"""树莓派部分
"""
import bluetooth
import timedef get_Floor(num):bd_addr = "98:D3:28:F7:A0:8G" #蓝牙HC-05的物理地址port = 1sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM)sock.connect((bd_addr,port))sock.send(num)sock.close()if __name__== '__main__':while True:num =input("输入目标楼层:")get_Floor(num)time.sleep(0.2)
3、模块整合
(1)电梯
思路:利用超声波测距获取距离数据,根据数据划分1、2、3楼;根据楼层信息驱动数码管显示;根据蓝牙接收到的目标楼层信息,与当前所处楼层进行比较,驱动步进电机带动电梯上下。
(2)人脸识别门禁
思路:根据人脸识别的结果,调用蓝牙发送订单人的目标楼层信息给Arduino,Arduino驱动舵机,开关门禁,进而驱动电梯即可。
(3)完整代码请私信
更多信息:
【物联网树莓派毕设01】树莓派4B快速实现VNC连接
【物联网树莓派毕设02】树莓派4B安装Pyhton3及opencv
【物联网树莓派毕设03】树莓派4B调用百度API快速实现人脸识别
【物联网树莓派毕设04】Arduino实现电梯及人脸识别门禁相关推荐
- python人脸识别门禁系统毕设_树莓派人脸识别门禁系统代码以及代码分析——opencv拍照调用FACE++处理...
树莓派人脸识别门禁系统的总体设计 硬件包括:树莓派3B.电源模块.转5V降压模块.触摸感应传感器模块.声光报警模块和驱动模块. 由此设计出的人脸识别门禁系统总体结构框图如下: 总体结构框图 程序运行时 ...
- python人脸识别门禁系统毕设_人脸识别门禁系统 毕业设计 可移植树莓派
[实例简介] 基于python的人脸识别门禁系统,实现对人脸的录入与识别功能 ,毕业设计 附论文 可移植树莓派 [实例截图] [核心代码] 人脸识别毕业设计源码 └── 人脸识别毕业设计源码 ├── ...
- 树莓派人脸识别门禁opencv4.2_树莓派人脸识别实际应用:人脸识别门禁
2020-3-16 之前舵机开门关门逻辑有点混乱,不太合乎常理,现对树莓派人脸识别代码进行修改,以及对Arduino控制代码有所调整: 在上一篇文章中 小雨:树莓派调用百度人脸识别API实现人脸识别 ...
- python人脸识别门禁系统_树莓派人脸识别门禁系统图文教程
前面发布了人脸识别门禁系统的系列视频教程,现在补上图文版,方便查看指令和代码,这篇文章也是对之前的文章的更新与完善. 本系统中树莓派调用百度智能云人脸识别API,实现人脸识别门禁,主要分为三个模块来实 ...
- python人脸识别门禁_树莓派人脸识别门禁系统图文教程
前面发布了人脸识别门禁系统的系列视频教程,现在补上图文版,方便查看指令和代码,这篇文章也是对之前的文章的更新与完善. 本系统中树莓派调用百度智能云人脸识别API,实现人脸识别门禁,主要分为三个模块来实 ...
- 树莓派双目人脸识别门禁(在线+离线模式)+刷卡进出
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.安装配置 二.代码文件(离线模式的) 1.树莓派代码 2.arduino代码 前言 我做好的成品运行视频见b站:树 ...
- 新手树莓派3B——人脸识别门禁管理系统
文章目录 前言 一.怎么用树莓派设计人脸识别门禁系统? 二.树莓派系统的安装 三.远程连接 四.人脸识别 总结 前言 树莓派,自问世以来,其"麻雀虽小,五脏俱全"的微型电脑特征让无 ...
- 树莓派+STM32人脸识别门禁系统(中)----- 树莓派部分
在上一篇博客中介绍了该项目的的需求分析以及先期的准备,今天就记录一下在树莓派上的开发过程,我从接触树莓派到完成项目也只是过了俩周的时间,肯定是没有把树莓派完全玩透的,遇到问题最好的方法还是去谷歌,如果 ...
- 树莓派3B+、opencv3+PyQt5实现人脸识别门禁系统
前言 总结.干货.知识点.注意实现.无个人背景(别人不会关心,捂脸) 效果展示 没点效果,没兴趣往下看了吧(反正我是这样) 下面是两个界面:主页和人脸检测界面,主页可以密码锁.以及其他操作(自己按需) ...
最新文章
- postgres语法_SQL Create Table解释了MySQL和Postgres的语法示例
- Attention! .net 持久层正式发布 :Noebe
- Docker大行其道—镜像
- flask mysql项目模板渲染_Flask模板渲染
- java环境变量(win10 java8)
- java引用传递106_(转载)java的值传递与引用传递
- Apache-SimpleEmail 简单应用
- python如何读取字典的关键字_python提取字典key列表的方法
- 数字图像处理学习笔记(二):SIFT(尺度不变特征变换)算法
- [doc文档]widows apache+myql+php
- asp.net 文件下载(txt,rar,pdf,word,excel,ppt)
- 一、设计模式 - UML (统一建模语言) - 类图
- 微信照片打印服务器端,基于微信平台的自助照片打印系统
- 使用python实现对图片的高斯模糊
- springboot仓储系统出入库模块设计系统java ssm
- 【C语言】fwrite 写如0X0A时,自动添加0X0D的解决方法
- 目标检测中的anchor-base与anchor-free
- 两层全连接网络反向传播梯度推导(矩阵形式、sigmoid、最小均方差MSE)
- 【入门】小明的幸运数
- video标签的全部配置
热门文章
- 蓝牙耳机哪款好用?2020高性能低延迟游戏蓝牙耳机推荐
- java的类库安装在哪_Java系列学习(一)-JDK下载与安装
- 快手极速版自动翻视频
- 数据使用要谨慎——不良数据带来严重后果
- 详解多级目标检测体系结构Cascade RCNN
- 暗时间(普通的一种时间概念)
- 这种动态条形图+折线图怎么做?今天我来教你!
- 开源数据集汇总 | 小目标检测、图像分类、图像识别
- Atmel推出业内首款面向智能能源和自动化应用的IEEE 802.15.4g-2012双频段收发器
- 科研诚信与学术规范_Mooc_2018_期末考试答案