安徽省(水利部淮河水利委员会)水利科学研究院 马 顺
2013年2月,工信部发布物联网“十二五”发展规划,把智能家居列入9个重点领域应用示范工程之中。数据显示,我国2012年智能家居市场规模达600亿元,预计2013年至2020年平均增长率将达到25%。而在智能家居市场中,智能家电领域的竞争尤为激烈。
智能家居是以住宅为平台,利用综合布线技术、通信技术及自动控制等技术实现家居设施的互联,构建智能的住宅设施管理系统,从而实现安全舒适且环保节能的居住环境[1]。当前,智能家居技术主要从两个方面发展,一方面是单一家具本身更具智能化,比如通过有针对性的APP软件控制空调、冰箱、彩电等家具;另一方面通过物联网技术,将家居链接在一起,开发综合PC端或手机端软件,手动实现对家具的综合控制。从当前技术来看,都需要一个控制平台[2],由人工通过控制平台操作各种家具的使用,难以做到通过感知、分析、处理等全自动化、智能化过程实现对人居室内生活环境的综合调控。因此,本文利用低功耗ZigBee模块、WI-FI模块、红外学习模块以及温度传感器等硬件设备再加上合法手机信号和家用空调,设计并实现一个全自动感知、分析、处理控制人居室内温度系统。
该系统由ZigBee模块与WI-FI模块集成构成智能网关,ZigBee模块与温度传感器集成构成温度感知器、ZigBee模块与红外学习模块构成温度控制器。智能网关作为整个系统的控制中心,负责感知指定区域内是否存在合法手机用户,如果存在合法手机用户,则向温度感知器下达温度检测指令,然后接收并分析来自温度感知器传来的实时温度,最后根据分析结果决策是否向温度控制器下达温度控制命令。温度感知器只负责感知环境温度并将结果实时传送给智能网关做分析处理。温度控制器接收到智能网关调控温度指令后,通过红外学习模块向空调发送红外指令实现对空调的控制。
该系统的总体设计在第一节、软硬件设计在第二、三节描述,第四节是实验验证。
图1 系统结构图
整个系统分为三大部分:智能网关,温度感知器、温度控制器,三部分基于Zigbee技术,通过IEEE 802.15.4通信协议实现相互链接,智能网关通过WI-FI探测手机信号的存在,温度控制器通过集成在控制器上的红外学习模块发送红外信号控制空调调节温度。根据本系统特点,拓扑结构选择星型网络拓扑[3],系统结构图见图1。
如图1所示,其中智能网关主要由ZigBee模块、WI-FI模块集成,负责探测指定范围内是否存在合法手机,如存在,则对温度感知器发送检测温度指令,并及时回传来自温度感知器的实时温度,分析处理后决定是否向温度控制器下达温度调节指令。
温度感知器主要由ZigBee模块和DS18B20温度传感器组成,负责获取周边温度数据并传送给智能网关处理。
温度控制器主要由ZigBee模块和红外模块组成,负责接收网关调控温度的指令,并发射红外信号对空调进行控制。
智能网关是该系统的核心,主要由ZigBee模块和WI-FI模块构成。本设计采用以CC2530为核的ZigBee模块,WI-FI模块采用海凌科电子生产的低成本、高性能、嵌入式HLK-RMO4模块。网关硬件结构图如图2所示。
图2 智能网关硬件结构图
CC2530是TI公司推出的基于IEEE 802.15.4协议的一个真正片上系统(SoC)解决方案,内置ZigBee协议栈[4],该芯片有三个不同的存储器访问总线,以单周期访问SFR、DATA和主SRAM。CC2530包括许多诸如调试接口、I/O控制器、定时器、ADC等不同外设,使得设计者可开发更先进的应用。CC2530设备系列提供2.4 GHz 兼容增强的无线收发器[5]-[6],另外还提供了MCU和无线设备之间的一个接口,这使得可以发出命令、读取状态、自动操作和确定无线设备事件的顺序。
HLK-RMO4模块基于通用串行接口的、符合网络标准的嵌入式模块,内置TCP/IP协议,能够实现用户串口、以太网、无线网(WI-FI)3个接口之间的转换。
温度感知器由ZigBee模块和DS18B20温度传感器组成,如图3所示。基于CC2530芯片的ZigBee无线模块,温度传感器采用美国DALLAS半导体公司的DS18B20无线温度传感器。DS18B20传感器是一款智能数字温度传感器,具有优良的性能,与传统的热敏电阻相比,DS18B20传感器能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式。同时,DS18B20传感器可以在极短时间内读出温度数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线[7]-[8]。
图3 温度感知器硬件结构图
红外控制器由ZigBee模块和万能学习型红外模块组成,如图4所示。
图4 温度控制器结构图
其中ZigBee模块依然采用以CC2530为核心,学习型红外发射模块主要由MCU、红外编解码、红外发射、学习指示灯、发射指示灯、串口通信组成,采用NEC红外协议[9]控制家用空调相应部件。
整个系统主要包括智能网关、温度感知器和温度控制器三大部分,其软件部分分别设计如下:
智能网关作为系统控制中心,它承载着探测指定区域内是否存在合法手机用户,同时负责向温度感知器、温度控制器下达相应指令的任务,其功能实施步骤如下:
(1)由WI-FI模块探测指定区域内是否存在合法手机用户;
(2)如果指定区域内存在合法手机用户,则转3),否则转1);
(3)由ZigBee模块向温度感知器下达检测实时温度指令;
图5 智能网关控制程序流程图
(4)等待回收来自温度感知器回传的实时温度C;
(5)如果C大于调控上限sup,则向温度控制器下达制冷指令及目标温度C1,
如果C小于调控下限inf ,则向温度控制器下达制热指令及目标温度C2;
(6)转(1)。
其程序流程图如图5所示。
其中用于探测指定区域内是否存在合法手机用户的定位系统,采用百度地图Android定位SDK,它是为Android移动端应用提供的一套简单易用的LBS定位服务接口,专注于为广大开发者提供最好的综合定位服务,通过使用百度定位SDK,开发者可以轻松为应用程序实现智能、精准、高效的定位功能[10]。该定位SDK采用WI-FI、基站、GPS混合定位(默认GPS定位),返回百度坐标,并能正确地显示在百度坐标系的地图上,其中WI-FI定位精度为27m,基站定位为240m,而GPS定位的精度最高可达10m。
本设计通过在自主开发的手机监控软件中预先设置智能网关的经纬度,然后通过定位SDK,周期获得自身经纬度,通过计算即可获得二者之间的实时距离S。一旦手机进入WI-FI有效连接距离,即可将S值通过socket通信传给智能网关进行判断。本设计中设置的启/闭距离a为15米,当智能网关接收到S小于等于15米时,启动系统并进行相关动作;当S大于15米时,若规定时间内无连接请求,智能网关即刻关闭系统。
以下为实现距离S计算的核心代码:
温度感知器由ZigBee模块(为区别起见,称为Collect.ZigBee模块)和温度传感器(型号为DS18B20)模块集成,功能实施步骤如下:
(1)Collect.ZigBee模块接收来自智能网关中Gateway.ZigBee模块的温度检测指令;
(2)将温度测试指令传送给温度传感器;
(3)温度传感器接到测试指令后,感应环境温度,获得模拟温度数据,并将其回传给Collect.ZigBee模块;
(4)Collect.ZigBee将模拟量温度数据转换为数字量温度数据;
(5)Collect.ZigBee将实时的数字量温度数据回传给Gateway.ZigBee模块。
图6 温度检测模块程序流程图
其程序流程图如图6所示。
温度控制器由ZigBee模块(为区别起见,称为Control.ZigBee模块)和红外学习模块集成,步骤如下:
(1)Control.ZigBee接收来自智能网关Gateway.ZigBee模块的调控温度指令及目标温度;
(2) 如果是制冷指令,则Control.ZigBee将制冷指令及目标温度传送给红外学习模块,进一步传送给家用空调,启动制冷模式,并设置目标温度;
否则Control.ZigBee将制热指令及目标温度传送给红外学习模块,进一步传送给家用空调,启动制热模式,并设置目标温度;
其程序流程图如图7所示。
图7 温度控制模块程序流程图
(1)ZigBee模块及射频天线各3个,DS18B20温度传感器1个,万能学习型红外模块1个,WI-FI模块1个;
(2)型号为KFR-50LW/K(50520L)A-N2格力蓝精灵系列立式空调1台,配套遥控器1个;
(3)小米1S手机,系统版本为Android 4.0.4;
(4)PC机1台。
(1)64位Windows 7;
(2)IAR编译器:IAR Embedded Workbench for 8051 8.10 Evaluation;
(3)ZigBee协议栈:ZStack-CC2530-2.5.1a(ZigBee 2007);
(4)电脑端软件开发环境为Eclipse 4.2、JDK 1.8.0_25,手机端运行环境为:Android 4.2.2(API17)、ADT 23.0.2.1259578、Android定位SDK v5.1。
图8 手机APP软件界面截屏
在本系统通过开发手机端APP软件实现相关全自动控制功能,界面截图如图8所示。
(1)进入APP软件 “学习空调命令”界面,选中空调状态“开”,此时红外模块指示灯长亮,在此过程中,按下被学习的格力遥控器的“开”键,看到灯闪烁5次,表示学习成功。重复以上过程,依次学习“关”、“制暖模式”、“制冷模式”、“除湿模式”、“通风模式”、“自动模式”、“温度 +”、“温度 -”等按键。
(2)所有按键学习完毕后,在智能网关代码中设置调控下限温度为13度、调控上限温度为30度,目标温度为25度,预设触发/关闭系统的距离为15米,然后烧写进智能网关。系统组建成功后,将空调设置为18度后关闭空调,打开手机监控软件,在手机监控软件中预先设置智能网关的经纬度,点击APP软件中“开始定位”。
(3)对系统整体性能进行验证。标记距离智能网关15米的参考标志,然后在距离智能网关40米远的地方,手持手机往15米处的参考标志点靠近,直到越过标志点进入测试环境。
测试结果:在距离网关约20米处,手机监控APP软件中温度数据开始跳动刷新为16度,进入测试环境后空调已开启并被调节至25度;逆过程测试时,在距离测试环境约25米处,APP软件中温度数值消失,系统自动关闭空调,说明手机APP软件与智能网关连通正常,且系统能准确进行温度监测及对空调的相应控制。由于系统设计采用的百度地图Android定位SDK提供GPS定位功能存在10米左右的误差,实验中误差属正常,但却实现了自动提前开启、延迟关闭监控系统的目的。另外,在测试环境内,依次点击“开”、“制暖模式”、“制冷模式”、“除湿模式”、“通风模式”、“自动模式”、“温度 +”、“温度 -”、“关”等按键,空调都可实现正确响应,由此表明红外学习指令准确。
实验结果表明,该系统能准确学习空调遥控器红外信号,Zig-Bee网络组网迅速,结合开发的手机端APP软件,在实现对家居温度自动监测、空调自动控制的同时,又能通过手机端实现对空调的各种控制。本系统各性能指标达到前期设计要求,验证了系统硬、软件设计的合理性。
基于ZigBee技术,通过IEEE 802.15.4通信协议将WI-FI模块、温度传感器、红外学习模块链接形成以智能网关为控制中心的无线通信网络,WI-FI模块负责与手机通讯,红外模块与家用空调通讯,通过相应软件驱动各硬件实现对室内温度全自动智能检测与调控。与传统温度监控系统相比,本系统不仅脱离计算机控制也可以脱离手机客户端控制,实现由手机WI-FI信号驱动系统,无需人工参与,从而对指定环境中温度的检测与控制。
[1]申斌,张桂青,汪明,等.基于物联网的智能家居设计与实现[J].自动化与仪表,2013,28(2):452-456.
[2]袁晓平,马满福.基于ARM11的家电远程控制系统[J].计算机应用与软件,2013,30(10):288-292.
[3]张文梅.基于ZigBee的家居监控系统设计[J].计算机应用与软件,2015,32(3):313-316.
[4]李鸿,王林珠,张文,等.RFID技术与ZigBee网络融合的幼儿园安全管理系统[J].智能系统学报,2013,8(5):465-471.
[5]刘辉,赵丽芬,孙番典,等.基于CC2530的ZigBee射频发射模块设计[J].云南民族大学学报,2012,21(6):6-10.
[6]梅海彬,张明华,黄冬梅.基于无线传感器网络的实时近海环境监测系统设计[J].计算机应用与软件,2015,32(1):110-113.
[7]汤锴杰,栗灿,王迪,等.基于DS18B20的数字式温度采集报警系统设计[J].传感器与微系统,2014,33(3):99-102.
[8]李萍.基于DS18B20的多路温度监测系统设计与仿真[J].现代电子技术,2013,36(10):122-124,127.
[9]陈子铭,汪红.基于学习型红外模块的智能家居系统的设计与实现[J].鞍山师范学院学报,2012,14(2):65-70.
[10]关玉东.基于Android平台的物探测量辅助软件平台研发[J].物探装备,2015,25(5):326-328.