作者:邓,张金耀,徐才旺,孙。
随着科技的发展,人们人们的生活水平日益提高,对居住环境的要求更加智能化和舒适化。055-79000显示[1]2021年上半年,中国美国智能家居设备市场出货量约为1亿台,据估计中国未来五年,美国智能家居设备市场出货量将继续以21.4%的复合增长率增长,2025年市场出货量将接近5.4亿台。全屋智能解决方案在消费市场的推广将成为市场增长的重要驱动力之一。但目前国内不同公司采用的技术标准不同,不同品牌的产品不兼容,成本高,控制方式单一,可以不能满足普通人的需求[2-3]。
为了满足普通大众的智能化需求,本文设计了一种智能家居系统,利用嵌入式技术、物联网技术、自动控制技术等技术对家居环境进行检测和控制。弥补了传统家居控制系统成本高、交互方式单一一、、用户与设备交互手段单一等缺点。系统使用STM32作为硬件控制平台,通过MQTT协议[4]和使用ESP8266的JSON数据格式实现云平台与客户端的信息交互,内部使用ZigBee通信提高系统的灵活性[5-7]。成本低,简单实用,易于再次扩展,非常适合低端市场。微信小程序控制大大方便了不同用户远程监控家庭环境,保证了家庭成员的安全和舒适。
1、系统总体设计
如图1所示,智能家居系统主要包括信息采集节点模块、控制器模块和应用模块。信息采集节点模块负责各个传感器的信息采集和部分家用电器的控制,节点芯片采用STM32单片机。控制器还使用STM32管理各个节点,连接家庭WiFi通过ESP8266上传数据到云平台。应用模块是微信开发者工具设计的微信小程序,方便用户使用。用户可以监控平台,并以任何方式发送指令。指令通过WiFi信号传输到控制器,ZigBee协调器接收控制器发来的数据,然后发送到各个节点控制电器。
2.系统硬件设计
2.1传感器选择
根据传感器功能的不同,分为以下三种系统:
(1)健康系统:配备体温传感器MAX30205MTA和心率血氧传感器MAX30102。
(2)环境系统:配备温湿度传感器DHT11、烟雾传感器MQ-2、照度传感器GY-30,采用LED灯模拟家居灯光,蜂鸣器设计报警装置,低电平触发蜂鸣器,操作简单。
(3)安防系统:配备超声波测距传感器HC-SR04和人体红外传感器HC-SR501。
2.2终端节点和协调器的设计
根据实际需求,节点由STM32单片机结合ZigBee传输模块组成,选用意法半导体公司ARM Cortex-M3微处理器系列的STM32F103RCT6,性能强,功耗低,使用方便。ZigBee传输模块采用市场上常见的CC2530芯片,性能优越,易于开发,并且还内置了ZigBee协议栈,方便无线网络的构建[8-9]。
2.3控制器模块
主控制器负责与各个节点的通信,所以控制器选用的是基于ARM CortexM3内核的ATK- Elite STM32开发板,由守时原子基地推出。
系统的WiFi模块采用安信科的ESP8266,通过串口与主控制器STM32通信,支持标准IEEE802.11 b/g/n协议和完整的TCP/IP协议栈[10],可以实现WiFi与串口的转换。该模块可以兼容3.3 V和5 V单片机系统,因此可以方便地与主控芯片连接。另外还支持WiFi-STA、串口转AP、WiFi-STA WiFi-AP三种模式,有利于系统的开发。刻录的AT固件
下位机的软件设计包括终端节点和控制器节点的软件设计。采用Keil UI Vision5作为STM32单片机的开发平台,使用C语言,便于维护和扩展。节点上的STM32 MCU采集采集到的数据,并传输给ZigBee模块。ZigBee使用Z-Stack协议栈进行封装,然后通过搭建的ZigBee网络传输到网络的协调器节点。协调器将收集到的各个节点的数据通过USART传输给主控制器,主控制器收到数据后通过ID确定节点;然后判断数据是否超过设定的阈值,并确定蜂鸣器是否报警;最后用MQTT协议对数据进行打包封装,然后通过WiFi通过ESP8266模块发送到云平台,用户的移动终端可以通过网络接收数据。这个过程如图2所示。
3.2 ESP8266接入云平台的通信设计
STM32主控制器通过串口发送AT指令,控制8266模块的初始化和收发数据的操作。首先,发送AT测试指令,然后将其复位。然后,将8266设置为透明传输模式,启动DHCP,获取IP地址。最后一次连接到服务器8266的IP地址和端口号已成功初始化。
3.3 PC软件设计
该系统的云平台通过MQTT协议进行信息交换,主要交互形式为JSON。控制器的所有数据都通过JSON打包,然后通过设置的主题发送到云平台。手机和电脑都可以通过订阅话题主题获得。为了降低成本,本系统使用的云平台是EMQ X Cloud提供的免费公共MQTT服务器。微信小程序采用框架编程结构,开发门槛低,兼容性高,可兼容各种操作系统,无需下载安装。鉴于以上优势,移动端的上位机采用微信开发者平台进行开发。
微信小程序开发MQTT协议需要先安装MQTT的客户端库。MQTT.js是一个开源MQTT协议的客户端库,可以用于npm安装MQTT保存安装;使用connect函数连接MQTT服务器的地址,然后通过subscribe订阅设备上行数据主题。微信小程序请求Web API平台检索订阅主题的JSON数据。注意,小程序EMQ的WebSocket端口号是8084。WebSocket连接成功后,客户端将监听事件,并用JSON分析数据。通过发布功能,用户可以使用微信小程序控制LED灯和报警器的运行,控制指令由JSON封装后传输到云平台。
为了方便用户,系统还增加了天气查询功能。使用鹤峰天气提供的免费API,用户只需在鹤峰天气官网注册即可获得,订阅的数据也可以用JSON解析显示在小程序中,每天可以请求1 000次,足够使用。
4、系统测试
4.1硬件数据采集和测试
在上述硬件系统中,环境系统包含了整个家居系统的主要功能,因此选择环境系统来测试系统数据采集的可靠性。为了便于测试,选择宿舍作为测试对象,选择温湿度计、亮度计和家用可燃气体报警器的测量结果作为对照。结合微信小程序测试数据的收发,根据测试数据,环境系统传感器可以正常运行。测试结果列于表1中。
根据测试数据,环境系统和标准仪器同时测试的结果基本准确,证明硬件系统的数据采集功能有效,硬件功能成功实现。
4.2电脑程序测试
在测试主机系统运行的过程中,为了测试移动主机的正常运行、主机与硬件之间的通信功能以及系统的数据检测、照明和报警控制功能,用户可以直接在列表中切换系统,选择传感器数据的观测和控制功能。系统接口测试如下。
(1)环境系统接口测试
系统接口测试的主要测试内容包括:温湿度、照度、可燃气体参数的观测、照明控制、可燃气体超过预设值时的自动报警功能、报警装置的手动控制功能。如图3所示,通过对上位机环境系统的测试,发现微信小程序可以正常获取硬件环境系统采集的数据。
(2)卫生系统接口测试
健康系统主要检测人体心率、血氧、体温等信息。MAX30102用于测量血氧值。测量公式为:和DCred分别为红色AC和DC,ACired和DCired分别为红外AC和DC分量。MAX30205将采集到的模拟量通过模数转换器转换成数字量,以同学A为测试对象进行实时测试。如图4所示,通过对上位机健康系统的测试,发现上位机微信小程序可以正常获取硬件健康系统采集的参数。
(3)安全系统接口测试
该系统主要监测人体信息和人体距离信息。通过红外传感器模块进行人体检测。当人进入红外传感器模块的测量范围时,传感器会输出高电平,当人离开时,传感器会输出低电平。距离测量由超声波测距模块执行。HC-SR504发出超声波时,通过计算发送和接收超声波的时间差来测量距离(L=TV,L为测试距离,T为发送和接收超声波的时间差,V为声速,取340 m/s)。系统接口测试如图5所示。通过对上位机安全系统的测试,发现上位机的微信小程序可以正常获取硬件安全系统采集的数据。
4.3微信天气查询功能测试
微信天气查询界面功能测试主要测试系统能否准确调用网站提供的天气参数,方便用户正常查询本地区的天气参数。如图6所示,以安徽淮南田家庵区为例,发现天气系统能够正常运行,采集的天气数据准确,系统功能实现。
5.结论
本文设计了一种基于STM32单片机、ZigBee通信模块和ESP8266无线模块的智能家居系统,可以通过微信小程序进行控制和监控。经过测试,该系统运行方式简单,通信稳定,监控良好,满足了用户的需求。此外,该系统具有良好的灵活性和可扩展性。
审计郭婷
标签:系统数据模块