APP下载

基于Arduino和ESP8266的多终端智能家居控制平台的设计与实现

2019-09-09余云飞朱得元

关键词:火情温湿度智能家居

余云飞,朱得元,章 平

(1.芜湖职业技术学院电气工程学院,安徽芜湖241006;2.安徽工程大学计算机与信息学院,安徽芜湖241000)

随着网络技术、人工智能、传感器技术的发展,辅以安防和人性化功能需求的智能家居逐步受到家庭用户的喜爱,迎来新的发展机遇。物联网的出现使智能家居系统功能更加个性化,可实现对家电的远程控制、安防监控等,为家居生活提供全方位的信息交互和资源共享功能。目前国内外关于智能家居的研究及技术解决方案层出不穷。文献[1-2]利用协议栈Z-Stack技术,采用无线模块进行开发。但当节点数量较多、环境复杂时,难以实现节点的精确定位。文献[3]采用基于BP神经网络的PID控制算法进行仿真分析,当测量与理想值有偏差时,PLC就会命令相关的执行器动作。在文献[4-5]中以STM 32微控制器为核心,通过手机和红外遥控作为家居控制终端,数据通信采用蓝牙技术,受控终端接收到红外指令后执行指定的操作,系统功能较为单一。文献[6]以智能家居系统的ARRM为核心,以Cortex微控制器通过nRF24L01射频模块与终端设备进行数据通信,再通过以太网模块与Internet连接,实现智能家居的远程控制。以上智能家居系统的无线控制设计方案总体结构兼容性不强,不能满足多种模式的信息传输需求。本文主要利用交互式可扩展的开源硬件平台Arduino[7],以及多种配套传感器,配合使用范围最广的Android手机操作系统,搭建个性化的家居中控平台,利用智能手机对智能家居进行控制。

1 智能家居系统总体架构分析

系统整体架构如图1所示。系统分为Arduino数据采集端和移动端两块。系统采用的开发板是Arduino UNOR3,主控微处理器型号是ATmega328p。Arduino数据采集主要包括Arduino交互式硬件平台和可扩展硬件;移动端层面主要是移动智能手机端上的微信公众号和小程序以及Web端的开发使用。

控制程序采用Arduino IDE软件编写。Arduino IDE具有良好的跨平台兼容性,可以分别在W indows、Macintosh OSX和Linux等多操作系统运行。应用层开发借助贝壳物联网云平台来实现,用户可通过USB接口上传至存储器中,直接进行编程和通信。

2 系统数据通信流程

对ESP8266进行透传设置,使用USB转TTL模块的外接引脚与ESP8266相连,如图2所示。通过串口助手进行固件烧写,完成透传设置固件脚本后,重启,自动进入透传模式,连接无线网并登录贝壳物联服务器。

智能控制系统涉及的传感器较多,其软件子系统流程也较为复杂,具体流程:当载有多种传感器模块电路的Arduino控制板采集到环境变量参数后,通过ESP8266W i-Fi模块实时上传。智能家居系统根据用户的实际需要,由系统主控制板进行实时信号处理,用户在手机Android客户端可以清晰了解当前房屋信息。传感器数据与云平台通信流程图如图3所示。ESP8266芯片采用电源管理技术由逻辑系统降低非必需功耗,在特定需要时可通过编程进行自动唤醒[8]。

图1 系统整体架构图

图2 ESP8266Wi-Fi模块硬件连接图

图3 传感器数据与云平台通信流程图

3 系统的硬件设计及系统测试

设计中利用Arduino开发板和传感器等模块搭建的硬件平台子系统主要有温湿度控制系统、火情监控系统、烟雾监控系统。

(1)系统电源供电。电路中采用AMS1117-5和LP2985两款电源管理芯片,固定输出电压调制器工作电路如图4上方所示,LP2985电源电路的输入电压为+5 V,输出电压为+3.3 V,用来给数字电路部分提供+3.3 V电压,如ESP8266模块。AMS1117-5封装为SOT223,为+5 V稳压块。Arduino UNO采用了ATmega16U2单片机来提供USB转串口功能,芯片内置Boot-Loader功能。

(2)温湿度控制系统及Web端测试。图4是基于Arduino和ESP8266设计的温湿度控制系统。电路中温湿度传感器[9]采用DHT11。当系统初始化时,单片机ATmega328P的PB2脚高电平,三极管Q1截止。当超过设定温湿度值时,声光报警,PNP三极管Q1的基极为低电平,U4继电器HK4100F-DC5V的线圈得电,动合触点闭合,此时外接风扇转动,进行抽湿降温。温湿度控制系统实物图如图5所示。

登录进入贝壳物联网站后,进入使用界面。添加智能设备并进行信息标注,系统自动生成一个“ID”和一个“APIKEY”,程序代码中须将“SSID”改为自己设备的“ID”,“APIKEY”改为自己设备的“APIKEY”,系统根据这两个关键的信息来识别设备。代码烧写成功经ESP8266上传后,可看到平台界面主要包括智能设备、数据接口、报警提示内容。图6数据接口一览表中,“在线状态”一列中可看到当前“在线”的自主设备,表示温湿度监测设备已经连接上贝壳物联,之后便可以通过设备对话界面对设备进行操控。如果想在移动端查看外接传感器的数据,可以添加数据接口,系统会自动生成相应的接口“ID”号。连接好电路,通过Arduino IDE,重新烧写代码经ESP8266上传后,在“控制模式”选择“图表”,这样就可以实时查看连接上贝壳物联新添加的接口数据。

(3)室内火情监控系统及Web端测试。采用火焰传感器及烟雾气体传感器MQ135来监测火情,显示器为0.96英寸黄蓝双色OLED屏。OLED屏控制芯片是SSD1306,它采用IIC接口,电源VCC兼容+3.3 V,其两根数据线SCL、SDA分别接Arduino板上ATmega328P芯片的15脚、14脚。火情监控系统电路实物如图7(a)、(b)所示。烟雾气体传感器MQ135与火焰传感器模拟输出口分别接到Arduino开发板的模拟端口A0和A1[10]。检测到火焰时,输出信号的电压会迅速升高[11],当超过设定阈值,则继电器的线圈得电,控制高速风扇等执行元件进行灭火。用户还能及时收到报警的提示信息,体现人性化的终端设计。系统编译成功后,也可在IDE点击串口监视器,查看COM口端的模拟数据输出。

图4 系统电路原理图

图5 温湿度控制系统实物图

图6 智能设备及数据接口一览表

图7 火情监控系统电路图

(4)微信端及手机App测试。平台可以关联微信小程序,进行微信接口测试,绑定用户信息,按照平台要求输入相应命令,测试通过。它还可以与Web端同步,登录系统后,同样能实现对传感器数据的查看和对传感器的远程控制。在Android手机上安装贝壳物联App,绑定相应信息,登录后,打开手机设置的网络热点,添加完设备及接口后,ESP8266的Wi-Fi模块上传数据到服务器,采集到的数据以数字或者折线图形式直观地展现出来。手机上可看到相应设备连接情况,如图8所示。点击连接的设备,可查看两个接口对应的传感器数据,如图9所示。点击火焰强度接口,可查看实时数据,如图10所示。系统设置火情报警,当发生火灾时,系统可通过QQ邮箱或微博将警报信息发送给用户,并及时采取措施处理。

图8 手机上设备连接情况

图9 接口对应的传感器数据

图10 火焰传感器数据

4 结束语

本文提出了以Arduino为基础的多终端智能云端家居设计。通过对多种传感器采集的数据进行处理,实现感知和掌控周围环境;同时通过网站和手机的移动终端实现对在线设备的及时控制。在系统开启运行后,Arduino开发板将通过传感器实时监测数据,同时通过ESP8266W i-Fi模块实时将数据信息发送给云平台。由于采用开源环境,系统的搭建过程简单快捷,稳定性及效果可达到商用系统。系统利用Wi-Fi无线通信技术,免去了传统的智能家居的复杂布线,解决了设备接口兼容性差的问题。今后还将探索更强大的Wi-Fi模块,实现一对多传感器数据的处理。

猜你喜欢

火情温湿度智能家居
火情侦察工作中存在的问题与应对策略
一种面向森林火情监测的四旋翼无人机系统
基于AT89C51的数字型蚕用温湿度计的设计
基于PLC的智能家居控制系统研究
基于DSP的多路温湿度监测系统
人民调解扑灭“紧急火情”
基于温湿度控制的天气预测装置
基于Zigbee的无线通信技术在智能家居中的应用
蒸发冷却温湿度独立控制空调系统的应用
电视机起火了