基于微信公众号的智能家居控制系统

2019-04-22 06:53李杰李志扬
科技与创新 2019年7期
关键词:温湿度指令智能家居

李杰,李志扬



基于微信公众号的智能家居控制系统

李杰,李志扬

(华中师范大学 物理科学与技术学院,湖北 武汉 430079)

设计了一套基于微信公众号的智能家居控制系统,该系统主要由硬件控制终端、家用电器、微信公众号后台和手机微信端组成。用户关注微信公众号并绑定控制终端之后,在微信公众号的界面发送相应的指令,微信后台收到指令后转发给硬件控制终端,实现家用电器的控制并返回执行结果,最后在微信端显示相应的结果。本系统的控制终端采用STM32作为底层硬件平台,通过乐鑫ESP8266模块与微信后台进行通信,并发送命令,实现家用电器的控制。实验表明,该系统设计简单、开发周期短、成本低廉、操作便捷且易于拓展推广。

智能家居;微信公众号;STM32;服务器

智能家居是利用物联网技术将家用的电子设备连接起来为人类服务[1-3]。它使用了网络通信技术、智能云平台控制、传感器技术等技术手段实现电子设备的集中控制、远程控制、安全检查、实时监控等功能,从而使用户的居住环境变得更加舒适、高效和便捷。但是由于缺乏统一的标准,各个厂商推出的智能家居产品各自独立,采用各自的控制平台,用户不得不针对不同的厂家安装不同的控制软件,在一定程度上造成了管理上的混乱和使用上的问题[4]。

微信是一款日常生活中使用非常频繁的手机APP,本文借助微信公众平台实现家电的控制,将智能家居功能镶嵌到微信APP中,可以大幅提升使用的便捷性[5]。进一步推广这种模式有利于各种智能家居产品的统一管理。

1 硬件设计

本文设计的基于微信公众号的智能家居控制系统主要由控制终端、家用电器、微信公众号后台和手机微信组成。用户只需要订阅本文开发的服务号,并与自己的硬件控制终端进行绑定,然后在公众号的界面发送相应的指令,便可实现对各种家电的控制。本节主要讨论系统的硬件设计。

如图1所示,本文设计的智能家居系统硬件控制终端采用STM32为主控模块,通过ESP8266模块实现网络的WiFi连接。智能家居中涉及众多的传感器和执行器,本文仅选择直流电动机、LED灯和温湿度传感器来进行控制和数据采集,以作示范。在图1中,用ESP8266作为通信模块,接收来自微信公众号用户的控制指令,STM32主控模块再控制相应的微型直流电动机和LED灯,或发送温湿度传感器采集到的数据给微信公众号的用户。

1.1 WiFi模块

本文采用的是乐鑫公司生产的ESP8266,它集成度高、功耗低且使用简单。ESP8266模组支持三种模式,即AP模式、STA模式和AP+STA模式。AP模式中,它会创建一个服务器,供其他设备接入;STA模式中,它会作为客户端建立TCP接入服务器;AP+STA模式中,它会同时使用AP模式和STA模式。本文使用了STA模式,机智云服务器可以监控ESP8266的状态以及向其发送控制命令。其中,ESP8266连接网络是通过APP软件配置好无线路由器的名称和密码,再发送给ESP8266连接上无线网络。

图1 硬件系统的整体框架

1.2 温湿度模块

本文采用的是包含测湿元件和测温元件,集温湿度于一体,含有已校准数字信号输出的符合传感器DHT11。该产品体积小、功耗低、可靠性极高和稳定性强,是一种4针单排引脚封装,具有很高的性价比。采用单线制串行接口,十分方便与MCU连接。在本文中主要用于实时测量房间中的温湿度,再通过单总线将其采集到的信号传递给STM32。

1.3 电机驱动模块

智能家居中为了实现窗帘的打开、关闭等操作,需要使用电机作为执行机构。本文将以L9110芯片驱动的微型直流电动机来作示例。

1.4 LED灯模块

本文采用的LED灯由自带P9813芯片进行驱动。P9813采用CMOS工艺的全彩点光源LED驱动芯片,能提供256级灰度调制输出,可用于驱动彩色动画、各种文字变换的图案,它的性能稳定、数据传输稳定且抗干扰性强。由STM32向P9813芯片发送控制信号,P9813再将信号进行转化R、G和B三种信号来控制灯的颜色。通过控制红灯、绿灯和蓝灯的占空比,变换出多种色彩。

2 软件设计

本文设计的基于微信公众平台的智能家居控制系统的整体架构如图2所示。用户在微信公众号的界面发送规定的指令,微信云平台将收到的消息打包成xml文件转发给业务服务器,业务服务器从xml文件解析出指令再转发给机智云,机智云根据指令控制相应的硬件终端。

图2 系统架构示意图

2.1 业务服务器的搭建

本文的业务服务器在新浪云平台上搭建,通过业务服务器实现微信端和硬件控制终端之间的通信。同时在服务器上搭建数据库环境,创建数据库,用来存储微信端发送的指令和硬件控制终端传回的家电设备状态数据。云服务器的开发使用JAVA+MySQL组合,并在MyEclipse开发环境中编写程序。云服务器中通信程序实现的功能主要包括与手机微信端通讯,以响应微信端发送的POST请求,将请求中的控制命令解析并写入数据库中;响应微信端发送的GET请求,查询数据库并将查询的内容返回给手机微信端;与硬件控制终端通讯,将控制命令转化成相应格式的数据并传送给控制终端或者接受控制终端实时传回的家电设备的状态数据。

本系统中需要传输温度、湿度、LED开关和电机转速的数据。在MySQL中创建四张表,分别为temperature、humidity、switch和machinery。如果在微信端发送“开灯”,则更新switch表中第一行数据的时间戳,并将该行数据中的state的值修改为1;如果在微信端发送“关灯”,则更新switch表中第一行数据的时间戳,并将该行数据中的state的值修改为0;如果发送“温湿度”,则从temperature和humidity表中分别查询data的值合并在一起返回;如果发送“开启电机”,则更新machinery表中数据的时间戳并更新数据中state的值,并向硬件端发送指令使得电机正向转动。此外,还有一些定义了的指令,例如“红灯”“绿灯”“关闭电机”等。如果发送的不是定义了的指令,则向微信返回“无此指令”。

2.2 公众平台的搭建

在微信公众平台(https://mp.weixin.qq.com)上注册一个服务号。为了自定义公众号的新功能需要开启服务器配置,微信公众平台在访问后台时,必须有外网地址并使用80端口。在开发环境搭建完成后,根据微信公众平台的如下要求进行开发:①服务器相关配置的填写。在公众号中选择基本配置,并在服务器配置中修改配置,填写新浪云的域名、Token、EncodingAESKey和消息加解密方式。②验证返回消息是否有效。提交服务器配置时,微信服务器会发送Get请求到新浪云的域名,并传递signature、timestamp、nonce和echostr四个参数。如果返回的参数与echostr参数相同,则接入有效;否则,接入无效。

3 实验结果展示

本文开发的基于微信公众号的智能家居控制系统实物照片和运行界面如图3所示。首先给开发板接通电源,并用手机给WiFi模块配置SSID和密码,使开发板接入网络;然后通过在本文开发的公众号界面发送一些指令来测试系统是否运行相应的功能;依次向微信公众号发送“红灯”“绿灯”“蓝灯”“开绿灯”“温湿度”和“电机开启”,如图3所示,公众号自动回复“红灯已开启”“绿灯已开启!”“蓝灯已开启!”“无此命令”“当前温度为29,当前湿度为48”和“电机已启动!”。与此同时,灯会随着不同的命令开启、关闭或者变换颜色,电机开启或者关闭,获取房间的温湿度,表明系统工作正常。

4 结束语

本文设计了一款基于微信公众平台的智能家居控制系统。实验表明该系统设计简单、开发周期短、成本低廉、操作便捷且易于拓展推广,有利于解决和改善众多智能家居产品各自独立、互不兼容的状况。

本文开发的基于微信公众号的智能家居控制系统,可以用微信查看房间的状况和控制一些家电设备,也解决了用户需要安装多个APP的问题。但在体验过程中,还存在很多不足,系统的智能性不够强。近几年的人工智能快速发展,可以考虑将人工智能中的一些算法引入,使得系统具有自动化管理家电设备的能力。

[1]温江涛,张煜.物联网智能家居平台DIY[M].北京:科学出版社,2014.

[2]白家旺,雷腾跃,屈琦凯.浅谈嵌入式系统对智能家居的影响[J].广东科技,2015(10):59-60.

[3]王晖.物联网智能家居的发展前景——物联网时代智能家居的发展趋势[J].智能建筑,2013(02):16-19.

[4]陈甫.微信小店服务端的JAVA实现[J].电脑知识与技术,2014(19):4442-4445.

[5]李立新,李艳文,蔡刚毅,等.基于物联网技术的智能家居安防系统的研究与开发[J].控制工程,2015(05):1001-1005.

2095-6835(2019)07-0034-02

TP391

A

10.15913/j.cnki.kjycx.2019.07.034

〔编辑:张思楠〕

猜你喜欢
温湿度指令智能家居
一种智能化电热处理炉用温湿度传感器的变送器
专题《面向智能家居的理论与实践创新》
智能家居在室内设计中的应用研究
文物展柜内环境温湿度的调控与监测
智能家居行业仍无“独角兽”
蛋鸡育雏育成舍环境控制技术
温湿度独立控制空调系统在医院建筑中的应用研究
《单一形状固定循环指令G90车外圆仿真》教案设计
新机研制中总装装配指令策划研究
关于ARM+FPGA组建PLC高速指令控制器的研究