基于Arduino的智能门禁系统
2018-02-26傅浩桐杜宇上
傅浩桐 杜宇上
摘要 提出了一种供学生进行科技制作的智能门禁系统设计方案。智能门禁系统是通过Wi-Fi实现手机与门控锁的交互,即把esp8266模块设置为自动透传模式,当成一个tcp的服务端连接到室内的Wi-Fi上,再用手机连接室内Wi-Fi监听服务端的端口号,实现与Wi-Fi模块的交互,进而通过Arduino开发板控制电控锁,从而实现智能门禁系统。
【关键词】Arduino物联网电控锁Wi-Fi tcp
市场上具备指纹识别或者刷卡识别等功能的门禁系统成本昂贵,不利于学生进行有关门禁系统的制作与设计尝试。
物联网技术一般是借助Wi-Fi,红外,zigbee等无线载体实现物体之间的通讯。据统计,2012年我国家用Wi-Fi的普及率已达21.80%,表明国内大部分城市居民都接入了家用Wi-Fi。随着我国社会经济的飞速发展,居民对生活品质等方面的要求越来越高,家居智能化已渐渐成为必然的发展趋势。
为了研发出一套结构简单,设计合理,安全性高的门禁管理系统,为大学生进行电子科技制作提供案例,本选题拟采用Wi-Fi作为无线通讯载体,结合物联网技术,利用手机app为操作终端,在门上嵌入电控锁,通过手机向Wi-Fi接收模块发送对应指令,经单片机处理后控制电控锁开关,实现手机开关,加密解锁,提醒关门等核心功能。相比较传统方式,内嵌的电控锁无需钥匙孔,既减小锁头被撬的风险,又保证了门的外观整洁。通过手机与门锁的数据交互,用户可及时通过手机监控门的开关状态。
1 系统结构
本系统采用Wi-Fi技术,以智能手机作为控制端,设计出应用于门禁管理的定时开关控制系统。通过智能手机实现开关电路的开启和关断,并且有加密系统,实现门禁。如图1系统结构图所示,智能门禁系统主要结构由三部分组成,由电源管理部分供电,电控锁模块跟无线模块进行数据的采集,再将采集到的数据提供给Arduino开发板,Arduino开发板再通过无线模块,与智能手机客户端进行数据的交互,实现无线开关,关门提醒,指令加密,状态监控四个基本功能。
2 有關原理
2.1 Arduino
Arduino是一款便捷灵活、方便上手的开源电子原型平台。主要包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino电路板;Arduino IDE部分可以做计算机中的程序开发环境。Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是通过Arduino编程语言(基于Wiring)和Arduino开发环境(基于Processing)来实现的。
2.2 esp8266模块
esp8266是乐鑫公司生产的低功耗Wi-Fi芯片,内置32位CPU,能够独立运行,也可以作为从机搭载于其他主机MCU运行,可以广泛应用于智能家居、工业无线控制、无线传感器等领域。esp8266芯片使用了3.3V的直流电源,体积小,功耗低,支持透传,丢包现象不严重,而且价格不贵。esp8266官方提供的rom主要有两个,一个是支持at命令修改参数的at系列rom,使用此rom时,可以使用at命令来设置芯片的大部分参数,同时也可将芯片设置为透传模式,这样esp8266就相当于在互联网和UART之间架起了一座桥梁。
另一个就是物联网的rom了,此rom可以通过命令来控制esp的部分GPIO,而且esp8266也可以采集一些温湿度传感器的数据,然后发送到互联网上。
2.3 继电器
继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。
2.4 TCP
TCP (Transmission Control Protocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。在因特网协议族(Intemet protocolsuite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。
3 具体实现方法
3.1 硬件部分
基于Arduino的智能门禁系统的硬件部分由三部分组成,分别为接收端esp8266模块、Arduino控制处理器和电控锁执行端,电控锁执行端包括电控锁、电源适配器、LED小灯泡和继电器,如图2所示。
3.1.1 接收端esp8266模块
把esp8266模块作为一个TCP的服务端挂到室内的Wi-Fi上,用于接收手机发送的消息,再传达给Arduino控制处理器。
3.1.2 Arduino控制处理器
Arduino控制处理器为图2所示的Arduino主控板。写入代码,识别接收端收到手机端输入的密码,再对此做出判断,实现自动开锁功能。在门锁打开的情况下,Arduino控制处理器会点亮提示灯,提醒用户记得锁门。
3.1.3 电控锁执行端
由一个接收到输入高电平就自动打开的电控锁、一个电源适配器、一个继电器和一个LED灯组成。在接收到Arduino控制处理器发送的信号之后开锁,实现智能门禁系统的自动开锁功能。
3.2 软件部分
基于Arduino的智能门禁系统的软件部分由三部分组成,分别为esp8266模块的代码,Arduino控制处理器的代码还有手机端的app。
3.2.1 esp8266模块的代码部分
(1)连接设置:
const char *ssid =“E104”;∥这里是要连接的Wi-Fissid
const char *password=”chuangke”;∥连接的Wi-Fi密码
const char *host=”192.168.0.122”:∥修改为手机的的tcp Server服务端的IP地址,即手机在路由器上的ip
const inr tcpPort= 8266; ∥修改建立的Server服务端的端口号
(2)接收与发送:Wi-Fi模块时刻扫描缓存区是否有接收到数据,接收到后把无线读取到的数据转发到串口,Arduino控制处理器从而获得手机端发送的数据。同时,Wi-Fi模块把串口读取到的数据转发给手机端,手机端就可得知Arduino控制处理器是否接收到数据。∥3.2.2 Arduino控制处理器的代码
如图3,先判断串口的缓存区是否有收到数据,收到数据后把数据存进数组变量,清空缓存区后,判断密码是否正确。若正确,则判断是開锁指令还是关锁指令。若为开锁指令,则打开电控锁并点亮LED提示灯,提醒用户记得关门;否则,复位电控锁关闭LED提示灯。
3.2.3 手机发送端app
手机连到室内Wi-Fi上,再用app监听该Wi-Fi下设定的服务端,即可实现手机与esp8266模块之间信息的交互。
4 智能门禁管理系统的工作流程
先给esp8266模块通电,使其接上室内的Wi-Fi,再用手机连上室内的Wi-Fi并监听该Wi-Fi下指定的TCP服务器,手机监听连接后即可输入密码,esp82266模块接收到信息后传给Arduino控制处理器,对其输入的密码识别判断后确定是否开门,若处于开门状态,LED灯会常亮,提醒用户记得关门。
5 调试过程说明
代码设置方面,esp8266模块烧入的代码中有包括室内Wi-Fi的ip地址还有设置TCP服务端端口号,此两项需要在手机端输入,才能实现对服务端的监听。
6 结束语
本文介绍了一种基于Arduino的智能门禁管理系统,具有易作为学生进行科技制作的特点。因物联网发展的必然趋势与本门禁系统的简单实用,故本文在学生进行创新技能培养方面具有参考价值和广阔的应用前景。
参考文献
[1]季千惠,基于NFC的物联网接入点设计与实现[D],上海交通大学,2015.
[2]杨少蔚,张波.Wi-Fi传输与接入技术的发展研究[J].信息与电脑:理论版,2017 (13):172-173,176.
[3]蔡睿妍.Arduino的原理及应用[J].电子设计工程,2012,20(16):155-157.
[4]范兴隆.ESP8266在智能家居监控系统中的应用[J].单片机与嵌入式系统应用,2016,16 (09): 52-56.
[5]冯先成,李德骏,计算机网络及应用[M].武汉:华中科技大学出版社,2011.
【6]徐济仁,陈家松,构建Internet网络的TCP/IP协议简介[J].电视工程,2004 (01):49-49.