APP下载

基于FreakZ协议栈与开源操作系统的智能家居设计*

2017-11-24,,

单片机与嵌入式系统应用 2017年11期
关键词:网关智能家居终端

,,

(贵州大学 计算机科学与技术学院,贵阳 550000)

基于FreakZ协议栈与开源操作系统的智能家居设计*

严凯,姚凯学,何勇

(贵州大学 计算机科学与技术学院,贵阳 550000)

为了解决以传统综合布线为主要技术的家居监控的局限性,设计了基于FreakZ的智能远程监控系统。采用WiFi、FreakZ技术将摄像头、家电、传感器模块等组成一个物联网。智能网关集成了STM32F103ZET6嵌入式微处理器、WiFi模块、协调器模块 ,实现了协调器与终端节点的远程通信。通过μC/OS-II操作系统和contiki操作系统将各个模块有机结合在一起,实现了对电器的远程监控。智能家居PC端由C#语言编写,目前可以成功获取家庭环境数据以及准确控制家用电器。通过SmartRF Studio 7获取网关与节点的信号强度与丢包率,实验证明本智能家居远程监控系统安全可靠。

智能家居;FreakZ 协议栈;STM32F103ZET6;WiFi;μC/OS-II

引 言

随着嵌入式技术发展与物联网时代的到来,人们越来越追求家庭的物联和智能化。在智能家居系统中,利用计算机技术、网络技术、控制技术以及人工智能等家庭环境的监控[1-2],实现了家具设备的安全和可控。目前,市场上已经出现了一些智能家居系统,如智能视频监控系统、智能安防预警系统、智能可视对讲系统、智能门锁联动系统、智能家庭影院系统、智能厨房安防系统、智能家庭管控系统、智能照明窗帘系统、智能背景音乐系统等[3-4]。以上市场化的智能家居系统价格较高、功能单一、多为综合布线系统且安装麻烦。为此,本文基于WiFi、FreakZ等无线通信技术,建立了安全可靠的智能家居远程监控系统。

1 智能家居总体设计

系统总体设计主要由三部分组成:集成了协调器模块和STM32F103ZET6的智能网关、远程PC端和手机端、环境监测和家电控制子系统[5]。整个系统如图1所示。

图1 系统总体框架图

系统工作流程:智能家居采用星型网络拓扑结构,智能家居电器状态数据(电视机、窗帘、电灯、空调等)、异常图片和环境数据(温度、湿度、红外、PM2.5等)运用FreakZ协议栈和无线网络传输到网关的协调器中,协调器将数据传输到STM32F103ZET6,经过调度和处理,通过WiFi将数据传输到云端,用户通过PC机和手机读取环境数据、监控图片和控制电器,家庭控制命令经协调器传输到终端节点,FreakZ节点执行命令控制电器。

2 智能家居硬件设计

系统硬件主要包括两部分:智能网关硬件设计和FreakZ终端节点硬件设计。

2.1 智能网关硬件设计

网关作为智能家具的核心,实现了家电节点与PC/手机端的有效通信。STM32F103ZET6芯片通过SPI接口与WiFi模块连接,通过串口与FreakZ协调器连接。其硬件电路结构框图如图2所示。

图2 网关硬件结构图

系统将μC/OS-II系统移植到STM32F103ZET6中,STM32F103ZET6 MCU采用的内核为Cortex-M3,最高工作频率为72 MHz[6];SRAM高达64 KB,带4个片选的静态存储器控制器;支持2.0~3.6 V供电和I/O引脚;带校准功能的32 kHz RTC振荡器;支持定时器、ADC、DAC、SDIO、I2C、I2S和USART等外设[7]。协调器负责创建和管理网络,收集终端节点的数据。

WiFi模块实现网关与Internet连接。本系统采用WM-G-MR-09 WiFi无线通信模组,该WiFi芯片支持802.11b/g无线网络模式,芯片体积小,休眠功耗为0.6 mA,接收数据功耗为170 mA,最高视频传输速率可达54 Mb/s。本系统通过WiFi将传感器数据、家电状态数据和异常图片数据传入到Internet,供给用户使用。

2.2 FreakZ终端节点硬件设计

FreakZ无线节点采用的是CC2530芯片,CC2530是2.4 GHz、IEEE802.15.4兼容RF收发器[8],具有极高的接收灵敏度和抗干扰性能。它十分适合需要超低功耗的系统,不同的运行模式间转换时间短更加保证了低功耗。它将协调器与终端节点紧密联系在一起,是智能家居系统重要组成部分。

视频监控模块通过一些比较算法(开元motion程序)识别异常情况(在特定时间段家里有异常动静)并取出该帧,传输到网关,图片解压后通过WiFi传输到Internet,从而用户可以及时发现异常情况并做出处理。

3 智能家居软件设计

智能网关主要由控制器模块(STM32F103ZET6)、FreakZ模块(协调器)、WiFi模块组成。软件设计主要在硬件平台移植μC/OS-II操作系统、FreakZ协议栈以及WiFi驱动。

μC/OS-II是一个具有可裁剪性、可剥夺性的实时多任务内核[9],每个任务类似线程一样,都处于死循环状态,根据优先级来分时得到MCU的控制权。μC/OS-II源码包括三个文件夹(CONFIG、CORE、PORTS),将源码添加到Keil uVision5工程中去。CORE文件夹(与处理器无关的代码)里面的os_core.c、os_flag.c、os_mbox.c、os_mem.c、os_mutex.c、os_q.c、os_sem.c、os_task.c、os_time.c、os_tmr.c、ucos_ii.h均无需修改,主要对PORTS文件夹下的os_cpu.h、os_cpu_c.c、os_cpu_a.asm三个文件进行修改。

os_cpu.h文件主要用来定义操作系统与硬件平台兼容的一些数据类型和函数。OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()这两个函数用来保护任务的临界代码免于中断程序的破坏。堆栈设置为从高地址向低地址生长的,OS_STK_GROWTH定义为1U。

os_cpu_c.c中定义了OSInitHookBegin()、OSTaskCreateHook()、OSTaskDelHook()、OSTaskIdleHook()、OSTaskReturnHook()、OSTaskStatHook()、OSTaskStkInit()、OSTaskSwHook()、OSTCBInitHook()、OSTCBInitHook()这些函数,只用修改任务堆栈初始化函数OSTaskStkInit()。

os_cpu_a.asm的多个函数都需要修改,达到修改对应的优先级寄存器地址和中断控制寄存器地址的目的,如OSStart HighRdy() 运行最高优先级的就绪任务。

μC/OS-II最多可以创建256个任务,每个任务执行具体的应用功能,在智能家居远程监控系统中,任务分配如表1所列。

表1 任务分配表

3.2 在协调器和终端节点上移植FreakZ协议栈

鉴于无线传感器网络ZigBee协议栈产品价格昂贵且代码封闭[1],本文将云峰物联科技勘误后的FreakZ进行二次改写和添加功能,利用基于IDE集成管理的IAR移植到协调器和终端节点中。FreakZ是一个彻底开源的ZigBee协议,而其自身携带的contiki也是个彻底开源的操作系统,contiki短小精悍,非常适合物联网的智能家居设备。

图3为FreakZ数据处理流程。智能家居多个FreakZ终端节点将节点数据传入到tx队列中,Smarthome_af_tx_handler()函数从tx队列取出一帧数据传递到APS层;若重复表不存在该数据,则通过Smarthome_aps_data_req()从绑定表中取出数据的目的ip地址和端口,经过Smarthome_aps_tx()构造NWK层的数据包并传递到NWK层;Smarthome_nwk_data_req()将数据传递到Smarthome_nwk_fwd(),执行路由算法,如果目的地址为广播地址则直接广播,如果目的地址在路由表中且存在下一条路由,则转发下一跳,如果目的地不在路由表且允许路由发现,则缓冲信息并开启路由发现再发送,如果以上三种方式均失败,则进行树路由,如果仍失败则停止转发,若获取下一跳,则将智能家居节点信息通过Smarthome_nwk_tx()函数传递到MAC层;MAC层调用Smarthome_data_req()、Smarthome_tx_handler()和Smarthome_mac_out()三个函数将数据传输到网卡,通过radio传输到接收端的协调器[2]。

图3 FreakZ数据处理流程

FreakZ协调器的MAC层接收到信息发送到接收数据队列,Smarthome_mac_eventhandler()取出一帧数据并解析报头,判断其为命令帧、信标帧、ACK帧还是数据帧,如果是数据帧,则将节点信息传输到协调器的NWK层。Smarthome_mac_eventhandler()从NWK层rx队列中取出一帧数据并解析报头,此时只有两种类型的帧,即命令帧和数据帧,命令帧将被解析并路由到相应的命令功能处理程序,数据帧则有目的地被转发到协调器的APS层。Smarthome_nwk_data_ind()解析由NWK层传递来的帧,如果它在重复拒绝表中则丢弃,如果是应答帧,则把应答帧发送到APS应答处理机制进行处理[3],如果是数据帧且需要ACK应答则立刻ACK,之后发送到AF层。Smarthome_af_rx_handler()从rx队列中取出数据并解析,最后调用相应的接收回调函数,将数据传输到断点,此时数据从智能家居终端节点完全到达协调器。

CC2530移植了contiki,contiki支持8位、16位、32位的几乎所有处理器类型,支持IAR编辑,支持6lowpan和802.15.4协议[10],是一种无线网络协议栈的小型操作系统,非常符合智能家居小型低功耗的要求。

3.3 基于FreakZ的视频监控模块

本视频监控模块负责对智能家居异常(一定时间段)图像(以图片方式)的采集、传输与处理。本视频监控模块主要由S3C2440微处理器和CC2530两个芯片集成的。视频监控模块的架构如图4所示。

图4 视频监控子模块硬件结构图

本监控系统的运动图像检测原理:当移动物体在规定的时间内(家庭规定的时间段)进入摄像头监控范围且摄像头的当前帧与前一帧的不同像素点点数超过规定的阈值,此时认为出现异常,S3C2440微处理器在存储器模块中取出异常的图片,通过RS232接口传输到CC2530,由CC2530终端子模块运用FreakZ协议栈和网络通信将异常图片传输到网关内的协调器,再由WiFi模块传输到Internet。监控系统规定:若两分钟内图像连续变化次数超过15次,则监控系统休眠一个小时,一个小时后自动开启监控。由于基于FreakZ的网络是短距离低速率的传输,所以在视频监控子节点的S3C2440微处理器需要调用H.264编码库对图片进行压缩再传输,PC端的显示程序对图片数据解码并显示。

4 系统测试

智能家居PC端是由C#编写,基本功能包括数据收发、数据存储、数据显示等。无线路由器与计算机相连,终端节点通过控制器与家电相连,用户可以从PC端、手机端对家电设备进行远程控制。运行系统软件界面如图5所示。当WiFi设备和协调器设备连接上之后,室内温度是17.87 ℃,湿度为61.53%,PM2.5为53.66 μg/m3,此时有人进入,热源为满格,异常情况图片显示区显示图片,将电视机、空调、窗帘设置为开启状态。

本实验采用SmartRF Studio 7应用程序测试智能家居的节点与网关之间的信号强度与丢包率,数据如表2所列。

从实验可以看出,随着通信距离的增加,节点与网关之间的信号强度会变差,丢包率也会慢慢增加,在无障碍物的情况下,5米以内丢包率为0,10米之后便出现丢包。由于墙体的存在信号强度会变得比较差,丢包率也相对很大。实验证明本系统收发较好,性能稳定,满足正常家居的通信需要。

表2 可靠性测试

结 语

[1] 申斌.基于物联网的智能家居设计与实现[J].自动化与仪表,2013,28(2):6-10.

[2] 郭稳涛,何怡刚.智能家居远程监控系统的研究与设计[J].计算机测量与控制,2011,19(9):2109-2113.

[3] 杨堤.基于物联网的智能家居控制系统设计与实现[J].电子世界,2012(21):16-17.

[4] 何勉,杨明飞.基于STM32的智能家居网关设计[J].机械工程与自动化,2016(5):78-80.

[5] 张玉,姚凯学,何勇,等.基于S3C6410的智能家居远程监控系统的设计与实现[J].现代电子技术,2016,39(10):159-161,166.

[6] 洪树亮.基于STM32F103住宅智能防火防盗报警系统的设计[D].兰州:兰州交通大学,2014.

[7] 刘志龙,吴昊.STM32F103ZET6芯片在LED显示屏控制应用中的探索[J].科技创新与应用,2014(4):30-31.

[8] 尹纪庭,袁佳,焦志曼,等.基于ARM和ZigBee的智能家居控制系统研究与开发[J].计算机测量与控制,2013,21(9):2451-2454.

[9] 楚红雨,李磊民,黄玉清,等.实时操作系统μC/OS-II在ARM9上移植的实现[J].计算机工程,2005,31(20):226-228.

[10] 张春园,刘兴长,张伟伟,等.基于Contiki的无线传感器网络平台设计与实现[J].后勤工程学院学报,2014,30(6):90-96.

严凯(硕士研究生),主要研究方向为嵌入式应用技术。

IntelligentHomeDesignBasedonFreakZProtocolStackandOpen-sourceOperatingSystem

YanKai,YaoKaixue,HeYong

(College of Computer Science and Technology,Guizhou University,Guiyang 550000,China)

In order to solve the limitation of home monitoring system with traditional integrated wiring as the main technology,the intelligent remote monitoring system based on FreakZ is designed.The camera,the home appliances and the sensor modules are composed of IoT by WiFi and FreakZ technology.The smart gateway integrates STM32F103ZET6 embedded microprocessor,the WiFi module and the coordinator module.The remote communication between the coordinator and the terminal node is realized.Through the μC/OS-II operating system and contiki operating system,each module can be organically combined to achieve the purpose of the remote monitoring of electrical appliances.The PC side of smart home is written by the C# language,which can now successfully access the home environment data and accurate control of household appliances.The gateway and node signal strength and packet loss rate can obtained through SmartRF Studio 7.The experiment results show that the intelligent home remote monitoring system is safe and reliable.

smart home;FreakZ protocol stack;STM32F103ZET6;WiFi;μC/OS-II

面向智慧健康服务的物联网关键技术示范应用(黔科合成转字[2015]5115) 。

TP393;TP273

A

2017-08-11)

猜你喜欢

网关智能家居终端
X美术馆首届三年展:“终端〉_How Do We Begin?”
通信控制服务器(CCS)维护终端的设计与实现
基于Zigbee的无线通信技术在智能家居中的应用
多功能北斗船载终端的开发应用
关于智能家居真正需求的探讨
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”
智能家居更贴心
一种实时高效的伺服控制网关设计
ABB Elastimold 10kV电缆终端及中间接头