基于STM32和μC/OS的家居智能防盗系统

2021-01-27 03:48周书友代银莉莫建麟
物联网技术 2020年12期
关键词:防盗网关家居

周书友,代银莉,莫建麟

(阿坝师范学院 电子信息与自动化学院,四川 汶川 623000)

0 引 言

伴随5G网络的正式商用[1],万物互联的时代正式到来。智能家居行业目前发展迅速,冲击传统家居行业。人们开始对起居环境有了更高追求,不只是单一的智能家电,而是将所有的家居电器连接到一起,通过先进的计算机嵌入式技术,让它们彼此互相通信,且能随时了解它们的情况[2-3]。

1 家居智能防盗系统的方案设计

本文设计的基于STM32和μC/OS的家居智能防盗系统采用STM32作为主控制器,ZigBee大规模组网技术作为连接各个家居和传感器的桥梁,再通过MQTT协议连接到私有云服务器,实现用户手机APP的监视和控制。基于STM32和μC/OS的家居智能防盗系统总体设计方案如图1所示。

图1 基于STM32和μC/OS的家居智能防盗系统总体设计方案

2 系统关键技术分析

2.1 STM32F103ZET6主控制器

该控制器基于ARMv7-M架构,包括了所有的16位Thumb指令集和一部分基本的32位Thumb-2指令集架构,支持线程模式和处理模式。它具有先进的中断处理功能,其内部嵌套向量中断控制器支持240条外部输入中断,凭借向量化中断功能,在硬件去除判断中断源的软件操作,大幅度缩短了中断延时;工作主频为72 MHz,ROM为512 KB,以及多个硬件外设。作为一款微控制器,其已经达到了很高水准。本设计主要使用了其3个USART串口控制无线WiFi模块和ZigBee协调器,并通过FSMC通信接口操控LCD显示屏[4-6]。

2.2 μC/OS-Ⅲ操作系统

μC/OS于1992年发布μC/OS-I版本,到2009年发布μC/OS-Ⅲ版本,μC/OS一直在取精弃粕,推陈出新。相比前2代版本,μC/OS-Ⅲ版本进步很大[7]。μC/OS-Ⅲ对任务数量和每个优先级的任务数扩展到了无限制,理论芯片资源数够多,就会建立多个任务,同时对任务嵌套、信号量、消息队列等实时操作必备的功能做出更多优化。因此,采用μC/OS-Ⅲ作为本系统的网关系统可提高网关的实时性、稳定性。

2.3 传感器数据交互技术

ZigBee网络也叫紫蜂网络,是一种基于IEEE 802.15.4标准规范的媒体访问层和物理层的低速率短距离无线上网协议。其以低速率、低功耗、低成本、低复杂度、高安全性、大规模组网等优势在物联网领域有着很高知名度。

由于ZigBee强大的组网及万物互联能力,所以本设计采用ZigBee 3.0 协议版本的TI CC2530作为传感器数据采集上报下发的最小节点,同时采用性能更强的Silicon EFR32作为所有节点的协调器,对所有节点进行管理,同STM32网关进行数据交互。每个节点读取挂载在其上的传感器信息来实现环境监控[8-10]。

3 硬件设计方案

本系统硬件总体结构主要分为两部分:STM32网关设计和ZigBee节点外围硬件电路设计。其中,网关模块由STM32开发板、EFR32 ZigBee协调器和ESP8266最小系统板构成,它们之间通过串口通信;ZigBee节点模块核心芯片为CC2530,且外围搭载了温湿度传感器、火焰传感器、气体传感器等。硬件总体框图如图2所示。

图2 硬件总体框图

网关采用STM32开发板,包括3个串口、TFT液晶屏接口、丰富的外设接口,可快速搭建起网关环境。在设计中,2个串口用于交换数据,剩余的1个串口用于配置ZigBee模块参数,使模块具有多样性;通过TFT触控屏以及按键控制程序可设计出串口2连接ESP8266模块、串口3连接ZigBee协调器方案[11]。STM32网关设计如图3所示。

4 系统软件设计方案与实现

4.1 μC/OS-Ⅲ操作系统在STM32F103的移植

4.1.1 μC/OS移植后能正常工作的条件

编译微处理器代码的编译器可产生重入型代码,即一段程序可以被多任务调用而不出问题。

由于μC/OS需要定时硬件中断来实现任务调度,因而需要一个硬件中断定时器。在μC/OS任务调度切换时,需要任务保存数据,再切换下一个任务,一次需要足够的栈空间来保存现场,同时也需要能够操作CPU寄存器和栈的指令,来完成任务切换,这样大部分的32位处理器便能运行μC/OS。

4.1.2 STM 32上对μC/OS的移植

把μC/OS-Ⅲ移植到STM32F103上,需要改动OS_CPU.H、OS_CPU_A.ASM、OS_CPU_C.C三个与内核相关的文件,然后改动CPU.H、CPU_A.ASM、CPU_CORE.C三个CPU处理相关的文件,再改动BSP包相关的定时器中断控制器等硬件初始化代码。μC/OS移植流程如图4所示。

图4 μC/OS移植流程

4.2 STM32网关设计方案

网关是手机APP能和每个终端传感器通信的桥梁,其流程如图5所示。

网关开始时初始化3个串口,并创建5个任务,其中对串口数据流任务,系统上电便开始执行,并处理ZigBee协调器和ESP8266发来的各种数据。上电之初,如果在5 s内未收到ESP8266发来的NTP时间数据,系统将启动所有任务,并初始化系统时钟为默认时间;如果收到ESP8266传来的NTP时间数据,系统将会启动所有任务,并初始化系统RTC时间为当前NTP时间。

4.3 ESP8266网络数据流

ESP8266将STM32网关发送来的数据进行解析并封装成JSON包,建立一个TCP客户端,通过MQTT协议将封装好的JSON发送给服务器,完成上传;同时,ESP8266通过MQTT的订阅功能,实时准备接收服务器的消息,并会以1次/2 s来发送。当收到服务器数据时,将会把收到的数据发送给网关,完成控制操作[12]。ESP8266控制流程如图6所示。

4.4 云服务器搭建

云服务器采用阿里云ECS云服务器,其为设计中的关键点,能通过公网IP进行远程访问,意味着能够通过它传输数据,这也是人们能通过手机控制终端最重要的原因。此外,借助其优秀的平台特性,能够保证系统不宕机,以及实时地稳定访问。

图5 网关执行流程

图6 ESP8266控制流程

4.5 EMQ软件的安装

EMQ基于高并发的Erlang/OTP语言设计,支持百万级的连接,提供发布和订阅的MQTT消息服务器。服务器安装便捷,支持Windows、Linux、MacOS和FreeBSD操作系统平台。EMQ运行时的Dash Board如图7所示。它将服务器的所有参数都进行了列举,包括当前客户端的连接数量、服务器的负载情况等。通过该可视化本地物联网平台,可搭建好自己的服务器端,只需手机和ESP8266订阅服务器消息,即能轻松通信。

4.6 上位机设计

安卓上位机借助Android Studio,开发流程为先将APP的布局界面设计出来,然后再逐一添加功能。在本设计中,由于需要添加Smart Config配网功能,因而最终由考量决定,通过下载乐鑫官网提供的Android SDK修改,既能进行ESP8266配网,也可以将自己的功能放在该SDK中。Android上位机执行流程如图8所示。

图7 EMQ运行时的Dash Board

图8 Android上位机执行流程

在程序执行之初,即同Ubuntu服务器建立TCP连接,然后通过MQTT获取消息并发布。安卓界面设计有1个主界面和3个副界面,其中主界面包含网关终端所有的设备节点状态,而其余3个副界面分别为下发控制指令界面、插座配置界面、WiFi入网配置界面。Android上位机界面展示如图9所示。

图9 Android上位机界面展示

5 系统测试

5.1 硬件测试

网关是数据交换中心,因此硬件测试极为重要。测试中主要测试串口连线是否正确,对应模块电源是否供电正常,上电时测试电源纹波是否波动异常等,通过网关发送串口数据给ESP8266,再通过ZigBee协调器来监测串口通信是否正常。

其中,ESP8266入网流程为:读取FLASH原有WiFi配置进行连接,如果搜索不到便会进入SmartConfig流程,期间通过手机配置入网。ESP8266入网流程如图10所示,SmartConfig如图11所示,配网成功如图12所示。

图10 ESP8266入网流程

图11 SmartConfig

手机配网流程入网成功后,即会定时发送网络数据给网关,其中有手机端下发的指令和NTP时间信息。ESP周期下发数据如图13所示。

图13 ESP周期下发数据

5.2 系统整体运行测试

全部上电后,手机界面显示如图14所示,网关状态展示如图15所示。图中将节点的状态全部进行显示,用户可以控制及查看家居状况。

图14 手机显示界面

图15 网关状态展示

6 结 语

本文针对目前家居智能防盗系统的成本高、兼容性差等缺陷,通过对嵌入式操作系统移植方法及技术、家居防盗相关技术及实现方法、物联网感知技术在家居防盗上的具体应用、物联网数据传输技术等进行深入研究,设计基于μC/OS的STM32家居防盗系统。目前,已完成所用物联网技术选择、硬件选择、程序编写和测试等内容。

本文虽已完成所有功能,但还有一些地方存在问题,需要后续改进:目前环境较为单一,需要在实际环境中使用才能发现更多不足;设备数量不能动态扩展,需要进一步更新;数据的转发算法还需要优化,并增强处理速度。

猜你喜欢
防盗网关家居
打造日常家居“氛围感”
古代陵墓中的防盗机关
台北家居
防火防盗报警器设计
2017年凯迪拉克XT5电路图
剩女笔记
应对气候变化需要打通“网关”
一种实时高效的伺服控制网关设计
基于Zigbee与TCP的物联网网关设计
《数码家居》2009年下半年推荐榜