李杭青
(中国民航大学电子信息与自动化学院,天津 300300)
随着经济社会的快速发展和人民生活水平的显著提高,人们对居住环境的舒适性需求日益增强。然而,传统家居依赖人工操作,在应对突发危险情况时的灵活性不足。近年来,物联网技术高速发展,继计算机、互联网、移动通信,成为又一轮技术革新热潮,这使得基于物联网技术实现智能化家居控制系统的设想得以落地[1]。智能家居控制系统能够远程控制家居设备并实时监控家庭环境,从而提供安全舒适的居住环境。
智能家居控制系统的整体架构可以划分为物理层、网络层以及应用层3 个层级[2]。物理层的主要工作是采集家庭环境数据,主要包含微处理器、多种传感器及控制器件。利用传感器进行数据采集,并控制机械执行层,由微处理器控制设备进行相应操作。网络层的主要工作是完成数据和控制指令的传输,根据传输距离选择采用适宜的传输方式。系统中用户端与云平台之间、云平台与家居设备之间使用消息队列遥测传输协议(Message Queuing Telemetry Transport,MQTT)进行通信。应用层的主要工作是完成数据的处理和可视化,系统使用微信小程序作为用户端。与传统的Android APP 相比,微信小程序具有免注册、免下载、开发便捷、操作简单的优点。用户订阅云平台消息并通过微信小程序以可视化的形式实时了解家庭环境情况[3]。系统整体设计如图1 所示。
图1 系统整体设计
智能家居控制系统采用模块化设计,包括主控模块、环境信息采集模块、网络通信模块、报警模块、驱动模块以及电源模块。
本文设计的系统中,采用Arm Cortex-M3 内核的STM32F103C8T6 单片机作为主控模块。主控模块具有2 个基本定时器、3 个通用定时器及2 个高级定时器,利用高级定时器实现舵机角度的精准控制[4]。与ESP8266 之间通过串口进行通信,作为下位机负责采集、处理环境数据和机械端指令控制等操作。此外,主控模块驱动传感器检测相关环境信息,并向ESP8266 传送相关数据。
环境信息采集模块包括DHT11 温湿度传感器和MQ-2 烟雾传感器。其中,DHT11 温湿度传感器采用单线串行接口,具有响应快、抗干扰能力强、性价比高及功耗低的优点[5]。DATA 引脚与单片机PB11 引脚相连。应用时,主控模块向DHT11 模块发送开始信号,DHT11模块接收到信号后向主控模块发送信号,通知主控模块准备接收数据,随后通过DATA 引脚向主控模块发送温湿度数据。MQ-2 烟雾传感器是一种常用的气体泄漏检测装置,当所处环境中存在可燃气体时,可以将可燃气体浓度转换为与其相对应的数字输出信号[6]。具有灵敏度高、稳定性好、使用寿命长等特点。
网络通信模块采用ESP8266 Wi-Fi 模块,内置32 位微型微控制单元(Micro Controller Unit,MCU),可通过串口与主控制器进行通信,利用AT 指令进行控制。该模块将作为本系统的网关,负责连接阿里云服务器与主控模块,实现网络通信功能。
驱动模块由S20F 数字舵机和继电器组成。S20F数字舵机接收脉冲宽度调制(Pulse Width Modulation,PWM)信号,通过控制转动角度来实现窗户的开关。继电器用于控制照明设备的开关状态。这样的设计能够有效实现智能家居的自动化控制,提升居住体验的便利性和舒适度。
利用有源蜂鸣器实现报警功能。采用直流电压供电,工作电压为3.3 ~5 V,输入/输出(Input/Output,I/O)由高电平触发,控制简单、性能稳定。
电源模块由12 V 锂电池和LM2596 可调降压模块组成。锂电池的输出电压为10.8 ~12.6 V,远远超过了传感器和主控模块的工作电压,因此不能直接用来进行供电。LM2596 可调降压模块可以将电池电压转化为1.25 ~35 V 的输出电压,以满足不同模块的工作电压要求,为智能家居系统提供稳定、可靠的电源。
系统的核心控制部件为STM32 单片机,通过MQTT 协议连接到物联网云平台。物联网云平台采用阿里云服务器。用户端使用微信开发者工具开发。
MQTT 协议是一种以主题订阅模型和消息发布模型为基础的消息传输协议,允许用户动态创建主题,具有低运维成本、轻量级、开放性及简单性的优点。对低宽带、高延迟以及不稳定网络具有一定的适应性,适合物联网设备通信。
此外,MQTT 协议涉及3 个主要组成部分:发布者、订阅者和代理服务器。用户利用发布者功能发送消息指令以控制家居设备,同时也可以通过订阅者功能订阅家居设备的主题,获取环境信息等相关数据。代理服务器负责接收和转发消息,实现发布者和订阅者之间的通信,从而实现智能家居设备的远程控制和数据交换。这种灵活的通信方式使得用户能够方便地与家居设备进行交互,实现智能化的设备控制和环境信息获取,为智能家居系统提供了高效、可靠的通信基础。MQTT 协议的实现流程如图2 所示。
图2 MQTT 协议的实现流程
在打开电源后,智能家居控制系统开始进行初始化。ESP8266 模块启动并联网,与云平台建立连接,实现双向通信。系统通过温湿度传感器和烟雾传感器采集相关环境数据,并由单片机进行数据处理。处理后的信息通过ESP8266 模块发送至云平台。用户端可以通过微信小程序订阅相关信息,并以可视化的形式显示房间内的温湿度、烟雾情况、灯光和窗户的开闭状态。
灯光和窗户的开闭情况可由微信小程序中窗户控制和灯光控制的开关状态得出。窗户关闭时,小程序中窗户控制对应的开关为灰色;窗户开启时,小程序中窗户控制对应的开关为绿色。灯光开闭情况同理显示。窗户关闭、灯光开启时,微信小程序的显示界面如图3 所示。
用户端可通过微信小程序发送指令,单片机接收指令控制继电器或舵机,实现控制房间中灯或窗户的开闭。
当系统检测到环境温度超过40 ℃或检测到可燃气体浓度超标时,将自动触发火灾紧急报警机制。此时系统无须用户介入,会自动执行窗户开启以排放有害气体或烟雾,并启动蜂鸣器报警,及时警示室内人员火警发生。整个过程由系统内部逻辑自动完成,确保了人员的安全防护。系统的功能程序流程如图4所示。
图4 系统功能程序流程
针对传统家居控制系统存在的数据传输距离有限、控制方式较为单一的问题,本研究选用STM32F103C8T6 微处理器为核心构建了一套基于MQTT 协议的智能家居控制系统。该系统具备实时监测家庭环境中包括烟雾浓度、温度和湿度在内的多种环境信息的能力,并能通过云平台将这些信息实时传送到用户端,实现可视化展示。用户只需通过移动设备上的微信小程序即可便捷远程访问与操控该系统,简化操作步骤,显著提升了人们的生活便利性和舒适度。