一、前言

这次是利用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实现电梯及人脸识别门禁相关推荐

  1. python人脸识别门禁系统毕设_树莓派人脸识别门禁系统代码以及代码分析——opencv拍照调用FACE++处理...

    树莓派人脸识别门禁系统的总体设计 硬件包括:树莓派3B.电源模块.转5V降压模块.触摸感应传感器模块.声光报警模块和驱动模块. 由此设计出的人脸识别门禁系统总体结构框图如下: 总体结构框图 程序运行时 ...

  2. python人脸识别门禁系统毕设_人脸识别门禁系统 毕业设计 可移植树莓派

    [实例简介] 基于python的人脸识别门禁系统,实现对人脸的录入与识别功能 ,毕业设计 附论文 可移植树莓派 [实例截图] [核心代码] 人脸识别毕业设计源码 └── 人脸识别毕业设计源码 ├── ...

  3. 树莓派人脸识别门禁opencv4.2_树莓派人脸识别实际应用:人脸识别门禁

    2020-3-16 之前舵机开门关门逻辑有点混乱,不太合乎常理,现对树莓派人脸识别代码进行修改,以及对Arduino控制代码有所调整: 在上一篇文章中 小雨:树莓派调用百度人脸识别API实现人脸识别​ ...

  4. python人脸识别门禁系统_树莓派人脸识别门禁系统图文教程

    前面发布了人脸识别门禁系统的系列视频教程,现在补上图文版,方便查看指令和代码,这篇文章也是对之前的文章的更新与完善. 本系统中树莓派调用百度智能云人脸识别API,实现人脸识别门禁,主要分为三个模块来实 ...

  5. python人脸识别门禁_树莓派人脸识别门禁系统图文教程

    前面发布了人脸识别门禁系统的系列视频教程,现在补上图文版,方便查看指令和代码,这篇文章也是对之前的文章的更新与完善. 本系统中树莓派调用百度智能云人脸识别API,实现人脸识别门禁,主要分为三个模块来实 ...

  6. 树莓派双目人脸识别门禁(在线+离线模式)+刷卡进出

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.安装配置 二.代码文件(离线模式的) 1.树莓派代码 2.arduino代码 前言 我做好的成品运行视频见b站:树 ...

  7. 新手树莓派3B——人脸识别门禁管理系统

    文章目录 前言 一.怎么用树莓派设计人脸识别门禁系统? 二.树莓派系统的安装 三.远程连接 四.人脸识别 总结 前言 树莓派,自问世以来,其"麻雀虽小,五脏俱全"的微型电脑特征让无 ...

  8. 树莓派+STM32人脸识别门禁系统(中)----- 树莓派部分

    在上一篇博客中介绍了该项目的的需求分析以及先期的准备,今天就记录一下在树莓派上的开发过程,我从接触树莓派到完成项目也只是过了俩周的时间,肯定是没有把树莓派完全玩透的,遇到问题最好的方法还是去谷歌,如果 ...

  9. 树莓派3B+、opencv3+PyQt5实现人脸识别门禁系统

    前言 总结.干货.知识点.注意实现.无个人背景(别人不会关心,捂脸) 效果展示 没点效果,没兴趣往下看了吧(反正我是这样) 下面是两个界面:主页和人脸检测界面,主页可以密码锁.以及其他操作(自己按需) ...

最新文章

  1. postgres语法_SQL Create Table解释了MySQL和Postgres的语法示例
  2. Attention! .net 持久层正式发布 :Noebe
  3. Docker大行其道—镜像
  4. flask mysql项目模板渲染_Flask模板渲染
  5. java环境变量(win10 java8)
  6. java引用传递106_(转载)java的值传递与引用传递
  7. Apache-SimpleEmail 简单应用
  8. python如何读取字典的关键字_python提取字典key列表的方法
  9. 数字图像处理学习笔记(二):SIFT(尺度不变特征变换)算法
  10. [doc文档]widows apache+myql+php
  11. asp.net 文件下载(txt,rar,pdf,word,excel,ppt)
  12. 一、设计模式 - UML (统一建模语言) - 类图
  13. 微信照片打印服务器端,基于微信平台的自助照片打印系统
  14. 使用python实现对图片的高斯模糊
  15. springboot仓储系统出入库模块设计系统java ssm
  16. 【C语言】fwrite 写如0X0A时,自动添加0X0D的解决方法
  17. 目标检测中的anchor-base与anchor-free
  18. 两层全连接网络反向传播梯度推导(矩阵形式、sigmoid、最小均方差MSE)
  19. 【入门】小明的幸运数
  20. video标签的全部配置

热门文章

  1. 蓝牙耳机哪款好用?2020高性能低延迟游戏蓝牙耳机推荐
  2. java的类库安装在哪_Java系列学习(一)-JDK下载与安装
  3. 快手极速版自动翻视频
  4. 数据使用要谨慎——不良数据带来严重后果
  5. 详解多级目标检测体系结构Cascade RCNN
  6. 暗时间(普通的一种时间概念)
  7. 这种动态条形图+折线图怎么做?今天我来教你!
  8. 开源数据集汇总 | 小目标检测、图像分类、图像识别
  9. Atmel推出业内首款面向智能能源和自动化应用的IEEE 802.15.4g-2012双频段收发器
  10. 科研诚信与学术规范_Mooc_2018_期末考试答案