郑希1,2,王一甲3,周金治1,2
(1.西南科技大学 信息工程学院,四川 绵阳 621010; 2.特殊环境机器人四川省重点实验室,四川 绵阳 621010;3.西华大学 建筑与土木工程学院,四川 成都 610039)
摘要:传统智能家居系统多以ZigBee无线技术组网,家庭网关做为控制中心接入家庭网络,以网页来控制网关,通过网关转发命令给设备进行控制,所有家电设备无法独立工作。针对此不足,提出一种连接简单、易扩展、适用于家庭应用的家居系统。该系统以手机为控制终端,以WiFi为通信手段,去除家庭网关,直接对家中设备进行远程控制。实验测试表明,该系统使用灵活方便,稳定性强,易于扩展升级,用户体验较好。
0引言
*基金项目:特殊环境机器人技术四川省重点实验室开放基金(13ZXTK07);西南科技大学研究生创新基金(15ycx120)随着整个社会信息化的加速及物联网技术的发展,智能家居迎来了爆发式的增长,越来越多的智能电器走入人们的生活,让人们体验到一种更加便利、安全、高效的家居生活。
传统的智能家居系统通常由三部分组成:家庭局域网、家庭网关、外网。家庭局域网由ZigBee或者其他射频网络连接各家用设备、智能开关、传感器等,为网关提供控制信号和网络信息。家庭网关是系统的核心,实现全局控制和与外网的通信。用户通过网页或者客户端来与网关进行通信并实现对家庭设备的控制。这种智能家居系统经过多年发展,依然没有在市场上有很好的应用,可能的原因有以下几个方面:
(1)ZigBee技术没有统一的标准,开发难度较大,同时其与手机电脑等智能设备不兼容。
(2)必须借助家庭网关工作,使用范围受限。
(3)设备入网安装复杂,需要专业工程人员。
(4)通常采用网页或者电脑客户端进行控制,无法随时随地使用,用户体验较差。
WiFi技术因其功率较高、网络容量较少而在智能家居领域一直没有广泛的使用。但随着技术的发展,众多厂家推出了低功耗的WiFi芯片。同时,IEEE即将发布针对物联网应用的802.11ah标准,工作频率使用1 GHz以下的免许可频段[1]。具有覆盖面更大,支持更多用户、更低功耗的特点,使WiFi在智能家居中有更广泛的应用。
如今智能手机的普及率越来越高,功能的日益强大,同时伴随手机4G网络的发展,手机逐渐成为人们随身的信息中心。因此,手机作为智能家居控制中心将成为智能家居发展的趋势。本文提出一种以iPhone手机为控制中心,以WiFi为家庭组网的智能家居系统。
1系统的总体设计
基于WiFi的智能家居系统主要包括家电设备控制端和iOS客户端。用户通过iOS客户端交互,实现家电设备入网与控制操作。家电设备直接由无线路由器接入到家庭网络,通过接收来自手机客户端的网络请求,解析出控制命令,完成相应的控制操作。系统的总体结构示意图如图1所示。
2智能家电控制端设计
图3控制端工作流程本系统的智能家电由控制端接收手机端的指令来控制家电功能,总体结构框架如图2所示。控制端核心采用美国德州仪器(TI)公司基于ARM CortexM4内核的CC3200微控制器[2]。CC3200工作在80 MHz主频下,具有快速并行摄像头接口、I2S、SD/MMC、UART、SPI、I2C、ADC等外设。芯片内部包含专用的WiFi模块,可以减轻MCU的负担,支持802.11.b/g/n射频和嵌入式TCP/IP、TLS/SS堆栈以及多个互联网协议,支持高级低功耗模式,满足省电需求。外部串行闪存保存程序及外设驱动程序,系统启动时内部Flash中的引导加载程序(bootloader)将外部Flash中的程序载入到芯片内部的SRAM中运行。传感器模块将外部环境参数传入控制端,供MCU处理。控制端收到手机指令后,通过I/O口与家电产品连接并进行相应控制,完成各种不同的功能。
控制端软件工作流程如图3所示。系统上电启动后,抓取UDP包配置入网,若配置不成功则进入休眠模式等待复位重新启动系统。配置成功后,开启HTTP服务,监听HTTP请求并执行相应的操作。
3iOS客户端软件设计
iOS客户端程序主要分为三大模块:人机交互模块、网络通信模块、数据处理模块。人机交互模块的工作是将人的行为转换成数据交给其他模块,并在UI界面上做出相应反应来体现人的这个行为;网络通信模块与智能家电、云服务器建立相应的连接,并通过连接进行数据交换;数据处理模块对人机交互模块和网络通信模块传入的数据进行解析和处理。
手机客户端工作流程如图4。
4网络通信
系统中的网络通信主要包括两个部分,一部分是配置控制端接入网络,另一部分是手机与控制端的网络通信。
4.1配置控制端入网
家电设备要与手机通信,首先要接入家庭中的WiFi网络。传统的WiFi设备接入网络的过程分为三步:(1)WiFi设备工作在热点模式,手机WiFi连接此热点;(2)手机将家中路由器的SSID和密码发送给热点;(3)WiFi设备切换工作模式到终端模式,利用接收到的信息连接到家庭中的路由器。这种方法操作复杂,手机需要切换不同的WiFi热点,用户体验较差。
对此,本文采用一种基于CC3200一键入网的方法,手机接入到家中的WiFi网络,家电设备上电后,手机打开客户端,在配置页面可以自动获取路由器的SSID,用户只需输入WiFi密码和自定义设备名,然后点击配置按钮,就可以自动完成设备的入网,同时获取到家电设备的IP地址。其工作过程分为以下四步:
(1)控制端上电后,扫描所有WiFi热点的channel,然后配置芯片工作在扫描到的某个channel上接收UDP包,如果没有接收到UDP包则继续配置芯片工作在扫描到的另一个channel上。如此循环直到收到UDP包为止。
(2)手机端将无线SSID和密码进行编码,打包到UDP包头的长度字节中,然后重复广播UDP包,持续1 min。同时,启用基于mDNS协议的Bonjour服务向本地网络广播消息,提问由谁提供“local._http,_tcp”服务,并等待回复。
(3)由于UDP包的帧格式中,数据包的长度是明文可见的,控制端收到UDP包,根据设定好的编码,解析出相应的信息,接入到家中的WiFi网络。
(4)控制端接入网络后,收到UDP广播消息,回复自己的设备名和IP地址。手机接收回复的消息并处理,完成入网配置。
4.2UDP广播包编码
UDP协议是一种无连接、不可靠的传输层协议,其数据报文格式包括UDP头部和数据[3]。UDP数据报文头部没有加密可以被截取下来,由源端口、目的端口、包长度和检验和共4个字段组成,每个字段2个字节。
将SSID和密码转换成一系列的分隔符、tag、高位、低位等值,然后做为数据包的长度发送出去。以SSID的值为“MYAP”为例,展示如何将SSID分割成高低位。如表1所示。
然后通过高位和低位生成两个带有序列号的值2i和2i+1。生成规则如表2所示。通过这种规则,由2个字符的SSID“MYAP”将可得到8个值,如表3。
密码按照同样的规则进行编码,将编码后的数据按照以下格式作为UDP数据包的长度循环发送出去:分隔符-SSIDTag-分隔符-SSID length+28-分隔符-Seq0-分隔符-Seq1-分隔符-密码Tag-密码length+28-…。具体数据:3 1099 3 32 3 597 3 686 3 840 3 666 3 805 3 610 3 710 3 593 3 1199 3 …。
控制端抓取到UDP包,读取包长度,根据规则进行判别,识别完后按收到的SSID和密码信息登录家庭WiFi网络。
5结束语
本系统在完成设计后,经测试可以通过家庭网络实现对家居设备的无线控制,配置设备入网方便,HTTP请求稳定可靠。通过本系统可对家居设备进行集中管理,了解当前家居设备的最新运行状态。
本控制系统通过智能手机直接控制家居设备,省去家庭网关的中间管理,采用WiFi传输技术使设备兼容性更好。由于手机软件的通用性和家居设备的独立性,同时硬件简单易用,便于移植和扩展,使本系统具有较高的市场应用价值。
参考文献
[1] AUST S, PRASAD R V, NIEMEGEERS I G. IEEE 802.11 ah: advantages in standards and further challenges for sub 1 GHz WiFi[C]. Communications (ICC), 2012 IEEE International Conference on, 2012: 68856889.
[2] Texas Instruments Inc. CC3200 simplelink WiFi and IoT solution, a single chip wireless MCU[EB/OL].(20140601)[20151201]. http://www.ti.com.cn/cn/lit/ds/symlink/cc3200.pdf.
[3] TANENBAUM A S.计算网络(第四版)[M].潘爱民,译.北京:清华大学出版社,2004.