APP下载

基于SIM800A与乐联网的智能家居监控系统设计

2018-09-01姚永亮宁旺云

机械设计与制造工程 2018年8期
关键词:端口智能家居短信

王 斌,施 杰,沈 鹏,姚永亮,孙 鹏,宁旺云

(云南农业大学机电工程学院,云南 昆明 650201)

智能家居系统(smart home system)是指充分利用先进的传感器技术、物联网技术、自动控制技术、安防技术、无线通信技术等将环境监控系统、安防系统、家电联动控制系统、灯光照明系统等与日常家居生活息息相关的各个子系统有机地结合在一起,以创造安全、高效、舒适、便利、低耗的居住环境为目标的一套系统。目前市场上较普遍的家居监控系统,有的将传感器技术、无线通信技术相结合,通过GPRS无线传输方式传输数据;也有以单片机为控制核心,只是将处理后的数据通过ZigBee模块传输到Xively、Yeelink等物联网平台[1]。此类系统往往存在监控项目少、物联网平台不稳定导致无法登录、只有环境监控功能无报警功能,或者网络拓展性与实时性差、价格昂贵等较多缺陷。

本文设计了一款以Arduino单片机为核心控制单元,将短信报警模块SIM800A与乐联网平台有机结合的实时监控系统,通过对构建的原型系统各功能的多次测试,结果表明:该系统与目前市场上常见的监控系统相比具有实时性好、网络拓展性强、运行稳定、价格适中等诸多优点,可推广使用。

1 系统总体设计

本文设计的智能家居监控系统总体结构如图1所示,主要由单片机控制单元(Arduino UNO)、短信语音报警模块、传感器网络模块、液晶显示模块、室内“四防”模块组成。

系统功能结构如图2所示。该系统具有安防监控(防水、防火、防盗、防煤气泄漏)、实时短信语音报警(中文语音合成报警、中文短信报警)、室内环境要素采集(CO浓度、光照强度、PM2.5浓度、温湿度)、液晶显示、网页数据查询等功能。

图1 系统总体结构

图2 系统功能结构图

2 系统硬件结构设计

2.1 硬件结构总体设计

综合考虑,智能家居监控系统选择ArduinoUNO单片机为核心控制单元。Arduino UNO单片机是一基于ATmega328核心的微控制器,它由14个数字I/O口(其中6个为PWM输出)、6个模拟I/O口、1个16MHz的陶瓷谐振器、1个USB接口、1个电源插孔、1个ICSP(In-circuit serial programming)头和1个复位按钮组成[2],能最大程度满足系统的要求。

如图3所示,由系统硬件结构的电路原理图可知,各模块通过不同的引脚接口与Arduino UNO单片机控制单元连接完成后就组成了该智能家居监控系统的硬件结构。

1)Arduino UNO单片机的数字I/O口的5、6、10、11、12、13端口,模拟I/O口的A1、A2、A4、A5端口连接传感器网络模块。

图3 系统硬件结构的电路原理图

2)数字I/O口的9端口,模拟I/O口的A0、A1、A3端口连接室内“四防”模块。

3)数字I/O口的0、1、7、8端口连接短信语音报警模块。

4)数字I/O口的2、3、4端口连接液晶显示模块。

2.2 各硬件模块选材与设计

2.2.1传感器网络模块

传感器网络模块由传感器监控节点、网络拓展板与路由器两个部分组成。传感器监控节点主要负责采集所在地实时的CO浓度、PM2.5浓度、温度湿度值、光照强度值;网络拓展板与路由器主要负责将传感器采集到的数值通过RJ45以太网口发送至乐联网平台。该模块的硬件结构如图4所示。

图4 传感器网络模块硬件结构图

1)传感器监控节点。该节点分别由MQ-5 CO传感器、Sharp GP2Y1014AU PM2.5粉尘传感器、GP-30光照强度传感器及DHT11温湿度传感器组成。此处将模拟I/O口的A1端口连接CO传感器;A4、A5端口连接光照强度传感器;数字I/O口的6端口、模拟I/O口的A2端口连接粉尘传感器;数字I/O口的5端口连接温湿度传感器。PM2.5的数值DustDensity可由式(1)、(2)[3]推算出:

Calcvoltage=vomeasured×(5.0/1 024)

(1)

Dustdensity=0.17×Calcvoltage-0.1

(2)

式中:vomeasured为模拟I/O口读数;Calcvoltage为输出电压值。

CO浓度值可由式(3)[4]先计算出Rs值(Rs为传感器在不同浓度气体中的电阻值),再结合MQ-5的灵敏度特性曲线(Rs/R0与CO浓度的关系,R0为传感器在洁净空气中的电阻值,为11.5kΩ)得到。

Rs/RL=(Vc-Vout)/Vout

(3)

式中:RL为传感器自带的可调负载电阻,一般为20kΩ;Vc为回路电压,取值为5V;Vout为传感器输出电压,取值范围为2.5~4.0V。

2)网络拓展板与路由器由Ethernet W5100网络拓展板与带DHCP的无线路由器组成。Ethernet W5100网络拓展板提供了标准的RJ45以太网接口,采用可堆叠的设计,可通过SPI接口与Arduino UNO进行通信,占用数字I/O口的10端口(Iss)、11端口(MOSI)、12端口(MISO)、13端口(SCK)[5]。自带DHCP功能的水星MW315R 无线路由器可自动分配IP地址,在程序中省去IP地址(ip)、子码掩码(subnet)、默认网关(gw)、DNS(mydns)的设置。Ethernet W5100网络拓展板上的RJ45接口通过网线与无线路由器相连,传感器节点采集的数据即可通过以太网口发送到乐联网平台。

2.2.2室内“四防”模块

“四防”主要指防陌生人闯入、防溢水、防煤气泄漏、防火灾发生。为了对这4种情况进行监控,选用HC-SR501热释电红外传感器、RobotBase Water Sensor水位传感器、MQ-5 CO传感器以及火焰传感器,分别接至单片机的数字I/O的9端口及模拟I/O的A0、A1、A3端口。用户可先在程序中设定溢水深度、煤气浓度、火灾指数等安全阈值,当单片机控制单元检测到任一传感器的采集值超过安全阈值时,立即启动短信语音报警模块进行报警。

2.2.3短信语音报警模块

短信语音报警模块由GSM/GPRS模块、中文语音合成模块、外接喇叭组成。GSM/GPRS模块选用TELESKY公司生产的SIM800A短信模块,该模块默认波特率为115 200bit/s,通过向软串口发送AT指令来实现发送短信的功能,以ASCII或Unicode为编码方式,实现中英文短信发送。中文语音合成模块的核心是SYN6288中文语音合成芯片,通过异步串口接收待合成文本,文本格式支持GBK编码。SIM800A的RX/TX端接单片机数字I/O口的8和7端口,SYN6288的RX/TX端接数字I/O口的1和0端口。当室内“四防”模块检测到有任何一种监控值超过安全阈值时,立即控制短信语音报警模块将指定信息通过短信方式发送给用户,同时通过外接喇叭发出报警语音。

2.2.4液晶显示模块

液晶显示模块由LCD128X64显示屏和电位器构成,可显示数字、字符、字母,在系统中起到实时显示室内环境参数信息的作用。由于Arduino UNO端口有限,若采用并联方式,将占用较多端口,故采用串联方式,只需将单片机数字I/O口的2、3、4端口分别连接至显示屏的E、R/W、RS端,另外将电位器连接至VO口即可满足要求。系统开启后,该模块显示欢迎界面3s,而后将传感器监控节点采集的数据实时显示在显示屏上,用户可随时查看室内CO浓度、PM2.5浓度、温湿度、光照强度。

3 系统软件设计

系统硬件模块只是智能家居监控系统的骨骼,要让它们发挥各自的作用就得靠软件的帮助。

系统采用C语言进行编程,以Arduino IDE作为系统的集成开发环境。

根据设计要求,该监控系统具有安防监控、实时短信语音报警、室内环境要素采集、网页数据查询等功能。下面主要对系统程序工作流程、GSM/GPRS模块的软件设计加以阐述。

3.1 系统程序工作流程

系统上电后先进行初始化,使用带DHCP功能的无线路由器对W5100网络拓展板自动分配IP地址,完毕后检查与乐联网的服务器是否连接成功。如果网络连接不成功,立即重新初始化系统,如果网络连接成功,传感器网络模块采集温湿度、CO浓度、光照强度、PM2.5浓度的数据并上传到乐联网平台,同时液晶显示模块显示采集到的数据,接着室内“四防”模块监控是否有溢水、煤气泄漏、有人闯入、火情发生的情况,若有,短信语音模块立即向用户发送中文短信并合成中文语音报警,若无情况发生,系统继续循环采集数据、发送数据。如果在数据发送过程中出现故障,用户可以选择重启系统。程序流程如图5所示。

3.2 GSM/GPRS模块

本模块采用SIM800A短信模块,该模块主要负责发送短消息,通过向软串口发送AT指令来实现。AT指令集是GSM/GPRS模块与嵌入式计算机之间的通信协议[6]。其中GSM短信的编码格式主要有Text和PDU两种,前者虽编程简单,但常用于发送英文短信,而本系统要求发送中文短信,故采用PDU格式。

本文以昆明市移动公司的电话号码向昆明市联通公司的电话号码发送一条短消息为例,阐述PDU格式发送短消息流程。

1)发送字符串“AT+CMGF=0”至串口,设置短消息的发送格式为PDU格式。串口返回“AT+CMGF=0 OK”表示设置PDU格式成功。设置TPDU的长度。串口返回“AT+CMGF=27 > ”表示设置TPDU的长度成功。

图5 系统程序流程图

2)向串口发送字符串“0891683108801705F 0110891683108801705F011000D91685115325476F8 0008AA0C6D4B8BD55DF27ECF5B8C6210”用来给指定号码发送指定信息。其中3108801705F0为昆明市移动公司短信中心号码13800871500经相邻位交换、号码长度为奇数补F后的结果,5115325476F8为指定号码15512345678的编码结果。0C为短信内容字符数/2,用16进制表示。6D4B8BD55DF27ECF5B8C6210为短信内容“请注意,家中有人闯入!”经Unicode编码器转换结果。

3)向串口发送字符串“1A”(HEX发送),串口返回“+CMGS:62 OK”,表示第62条短信发送成功。

其流程图如图6所示。

4 系统实现

图7所示为本文设计的智能家居监控系统的原型系统硬件总体结构。由图可知,液晶显示模块实时显示的CO浓度、光照强度、PM2.5浓度、温湿度值正常,系统工作稳定。电位器可以灵敏调节显示屏对比度。

图6 GSM模块发送中文短信流程图

图7 原型系统总体结构

图8所示为中文短信报警功能的实现,当室内“四防”模块监控到有陌生人闯入,或者火情指数、溢水深度、CO浓度超过程序中设定的安全阈值时,短信报警模块发送相应的中文短信至用户移动终端。

图8 中文短信报警界面

如图9所示,温湿度传感器采集的温度、湿度数据,在上传到乐联网后经过分析处理,与时间、地点等信息打包后以动态的连续曲线直观地显示出来,使用移动终端、个人计算机或者在微信中关注乐联网,就可以查看实时温湿度的变化曲线。由此可见该模块的网络拓展性强。由于文章篇幅有限,本文只展示了温度、湿度值在乐联网上的展示界面。

图9 温度湿度值显示在乐联网

系统实现结果表明:各个模块都能实现其相应功能,具有实时性好、成本低、网络拓展性强、运行稳定等优点,原型系统成功实现了系统总体设计。

5 结束语

本文设计了一款以Arduino单片机为核心控制单元,将短信报警模块SIM800A与乐联网平台有机结合的智能家居监控系统,根据系统设计制作了原型系统并进行试验,结果显示系统运行平稳,各模块工作正常,安全性高,验证了前期设计的正确性。该系统有效弥补了目前常见智能家居监控系统普遍存在的实时性差、成本高、网络拓展性差等缺陷,同时该系统的成功实现对于Arduino单片机在其他场合的应用有一定的参考价值。

猜你喜欢

端口智能家居短信
一种有源二端口网络参数计算方法
一种端口故障的解决方案
多按键情况下,单片机端口不足的解决方法
基于PLC的智能家居控制系统研究
道歉短信
基于Zigbee的无线通信技术在智能家居中的应用
代发短信
智能家居发展或将实现弯道超车
智能家居更贴心
卫星三端口DC-DC变换器技术综述