《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > 智能家居嵌入式无线网关的设计与实现
智能家居嵌入式无线网关的设计与实现
2015年微型机与应用第18期
季 莉
(江苏工程职业技术学院,江苏 南通 226007)
摘要: 智能家居是融合了自动化控制技术、计算机网络技术和网络通信技术于一体的网络化、智能化的家居控制系统。智能家居嵌入式无线网关的功能是将家庭本地的ZigBee网络与Internet和GSM等外网连接,用户可随时随地通过浏览器和手机监控与管理家居环境和设备。网关的设计以ARM Cortex-M3为核心,Linux为平台操作系统,构建嵌入式Boa服务器,实现家庭内网与Internet的通信。GSM模块发送报警信息到用户手机。经测试,智能家居网关具有良好的稳定性和可靠性,具有普及推广的参考价值和应用前景。
Abstract:
Key words :

  摘  要智能家居是融合了自动化控制技术、计算机网络技术和网络通信技术于一体的网络化、智能化的家居控制系统。智能家居嵌入式无线网关的功能是将家庭本地的ZigBee网络与Internet和GSM等外网连接,用户可随时随地通过浏览器和手机监控与管理家居环境和设备。网关的设计以ARM Cortex-M3为核心,Linux为平台操作系统,构建嵌入式Boa服务器,实现家庭内网与Internet的通信。GSM模块发送报警信息到用户手机。经测试,智能家居网关具有良好的稳定性和可靠性,具有普及推广的参考价值和应用前景。

  关键词: 智能家居;网关;ZigBee;无线网络;远程监控

0 引言

  智能家居是一个新兴产业,随着国家推动信息化、智能化城市发展的进程,智能家居近几年得到了快速发展,市场消费潜力巨大。智能家居以住宅为载体,利用先进的计算机技术、网络通信技术、综合布线技术、自动控制技术、安全防范技术、音视频技术,集成家庭日常生活的各类设施,实现高效的住宅管理,构建安全便利、艺术舒适、环保节能的居住环境。

  智能家居网关的功能是将Internet或者GSM等外网与家庭本地网络连接通信。家庭本地网络通过建立网络以实现对家居环境的数据采集与电器设备的控制,如通过对家庭亮度、温度、湿度、可燃性气体的监测,对灯光、窗帘、空调、加湿器、报警装置等设备实现自动控制;通过网关,用户可以通过远程PC、手机、互联网电视等终端来监控智能家居。

  目前主流的无线通信技术包括红外技术、家庭无线电射频技术、WiFi技术、GSM技术、ZigBee技术,这些技术各有优缺点,无法独自担当智能家居无线网络体系传输的重任[1]。ZigBee传输速率为250 kb/s,家居环境的数据采集与电器设备的控制需要传输的数据量不大且数据结构相对简单,因此家庭内网采用ZigBee技术可以满足智能家居架构内部的网络需求[2];WiFi的速率为11 Mb/s,属于高速网络,可满足用户方便地通过Internet网络监控,而全球应用最广泛的移动电话GSM标准,可满足用户随时随地通过手机远程监控。本文设计的智能家居嵌入式无线网关的功能是将家庭本地的ZigBee网络与Internet和GSM网络等外网连接,用户可以通过外网对本地网络进行远程监控。

1 网关的硬件结构

  1.1 总体架构

  为实现多种无线网络融合的智能家居系统,嵌入式智能网关的硬件设计由处理器、无线收发模块、以太网模块和GSM模块等组成。无线收发模块与智能家居的ZigBee网络通信,ZigBee网络包括协调器、各类传感器终端节点,具体包括温/湿度采集节点、可燃气体报警信号采集节点以及各控制节点。以太网模块将网关连接入Internet网。GSM模块具有发送SMS短信、语音通话、GPRS数据传输等基于GSM网络进行通信的所有基本功能。网关硬件结构如图1所示。

001.jpg

  处理器选用ST公司的基于ARM Cortex-M3内核的STM32F103型号单片机[3]。STM32F103工作频率达到72 MHz,内置高速存储器。调试模式有2种,串口调试和JTAG接口,本文中采用串口调试方式。STM32F103接口丰富,有2个T2C接口(SM-Bus/PMBus)、5个USART接口、3个SPI接口等。这些特性足以满足本网关设计的要求。

  1.2 无线收发模块

  无线收发模块采用TI公司的CC2530芯片。它结合一个高性能2.4 GHz DSSS射频收发器核心和一颗工业级小巧高效的8051控制器。系统内具有可编程闪存、 8 KB RAM和许多其他强大的功能。CC2530具有休眠模式,而且转换到主动模式的时间超短,特别适合智能家居中要求长期使用避免频繁换电池的需求[4]。CC2530模块通过SPI接口与处理器相连接,采用3 V纽扣锂电池供电。

  1.3 以太网模块

002.jpg

  以太网控制芯片选用DM9000A,是台湾DEVICOM公司研发的10 M/100 M自适应以太网控制器芯片,它能满足数据传输需要并且性价比高、占用资源少,在工业上得到广泛应用。图2是以太网控制器与处理器的连接图。处理器通过FSMC总线连接以太网控制芯片,即FSMC D0~D15脚按顺序连接到DM9000A的SD0~SD15;FSMC A2连接CMD,当CMD值为1时,处理器访问DM9000A的数据寄存器;当CMD值为0时,处理器访问DM9000A的地址寄存器。IOR与IOW分别控制DM9000A的读和写。CS是芯片的片选信号线,INT为中断,PWRST是外部复位管脚。

  1.4 GSM模块

  GSM模块采用SIMCom的无线模块SIM300。SIM300是一款4频GSM/GPRS模块,工作频率为GSM/GPRS 850/900/1800/1900 MHz,可以低功耗实现语音、SMS、数据和传真信息的传输。SIM300的尺寸大小为40×33×  2.85(mm),能适用于M2M应用中的各类设计需求,尤其适用于紧凑型产品设计。该模块使得用户可以通过随身携带的手机对家里环境进行监控,一旦有紧急情况发生,报警信息会发送到手机,方便用户第一时间处理。

2 网关软件设计

  ARM Cortex-M3采用免费开源的Linux作为平台操作系统,Linux占用资源小、内核可裁剪、移植方便,能满足智能家居网关的设计要求[5]。

  2.1 网关与Internet通信

  嵌入式的Web服务器目前主要有Boa、Goahead、Thttpd、Shttpd、Appweb和Apache等。嵌入式设备的资源相对有限且并不需要并发处理多用户需求,因此本设计采用开源的Boa服务器[6]。它占用资源小,支持CGI程序,性能优越。CGI(Common Gateway Interface,公共网关接口)运行在服务器上,提供同客户端HTML页面的接口[7]。

  在嵌入式ARM服务器的Linux操作系统上安装Boa网页服务器,当服务器接受用户通过浏览器发送的请求,Boa通过CGI方式调用C语言程序获取家居本地网络的状态信息,再返回给浏览器页面。处理步骤如下:

  (1)用户请求通过IE浏览器发送给Boa服务器;

  (2)Boa服务器接受用户请求并传送给CGI程序处理;

  (3)CGI程序读取各传感器节点的状态数据并传送给Boa服务器;

  (4)服务器将处理结果返回给用户。

  服务器中网页采用HTML语言来编写,脚本采用Javascript,例如从家庭内网获得室温状态数据,对应的Javascript脚本程序如下:

  <head>……

  <script language="javascript"type="text/javascript"src="/jquery.js" charset="utf-8">

  </script>

  </head>

  <script language="javascript">

  function start_fun(){

  get_temperature();}//调用获取温度函数

  function get_temperature(){//定义温度获取函数

  var u=function(txt){

  document.getElementById("temperature").value=txt; //接收服务器发送的温度信息

  disableButtons(flase);}

  jQuery.post("/cgi-bin/get_temperature.cgi","",u);}

  //向服务器发送获取温度命令

  </script>

  2.2 网关与GSM通信

  GSM模块与系统ARM处理器串口方式连接,通过AT指令集进行通信[8]。SMS_flag标志位表示处理器的短信缓冲区数组是否有内容,当有内容时,标志位设为1,当内容被读取后,标志位设为0。处理器通过发送AT指令到GSM模块后,等模块返回“OK”,则模块与控制器通信正常。接着检测数据标志位,data_flag标志位等于1,则有数据发送,调用短消息发送函数SMS_sendout()发送数据,发送成功则结束,否则重新调用短消息发送函数。通信流程如图3所示。

003.jpg

3 测试

  网关与ZigBee节点上电后,协调器建立网络,ZigBee节点加入该网络并开始发送数据。测试中,ZigBee节点每隔1 s向网关发送温度、湿度、电压等信息,网关收到数据进行处理。SIM模块的TXD、RXD使用杜邦线连接到ARM串口1的RXD、TXD,在RealView MDK开发环境中调试。SIM模块的RS232接口连接到电脑,通过串口调试助手工具测试数据。

  测试中设置夏季室内温度阈值为28℃,即当室温超过阈值,自动开启空调。SIM模块收到处理器传递的各节点状态信息后,生成提示短信“High temperature warning”,模块提示+CMTI:"SM",8,表明有新的短信,存放在SIM卡的位置8。然后,发送AT+CMGR=8,即可读取该短信。调试软件显示短信发送方的电话号码和发送时间,发送的内容与预设的一致,如图4所示。

004.jpg

  ZigBee网关设备上电,通过RJ45接口连接路由器。网关IP地址配置为192.168.139.254,客户端PC的IP设为192.168.139.20,与ZigBee网关的IP处于同一网段。打开IE浏览器,输入ZigBee网关的IP,则运行嵌入式Web服务器页面,如图5所示。在该界面实时显示当前的室内温度,能正确接收ZigBee网络的节点状态数据。在设备控制中,空调设备自动打开,从而实现对家居的远程控制。

005.jpg

4 结论

  本文设计了智能家居嵌入式无线网关,其功能是将家庭本地的ZigBee网络与Internet和GSM网络等外网连接,用户可随时随地通过手机和浏览器监控与管理家居环境和设备。网关的设计以ARM Cortex-M3为核心,以Linux为平台操作系统,构建嵌入式Boa服务器,实现家庭内网与Internet的通信。GSM模块发送报警信息到用户手机。经测试,智能家居嵌入式无线网关具有良好的稳定性和可靠性,具有普及推广的参考价值和应用前景。

参考文献

  [1] 闵丽娟,卢捍华,陈玲,等.智能家居的系统结构及相关无线通信技术研究[J].计算机技术与发展,2011,21(8):169-172.

  [2] 冉彦中,曹婧华,姜威,等.ZigBee协议星形组网实验的设计与实现[J].实验技术与管理,2013,30(2):101-102.

  [3] 孙弋.ARM-Linux嵌入式系统开发基础[M].西安:西安电子科技大学出版社,2008.

  [4] 陈龙涛,罗桂娥.基于ZigBee技术智能家居系统的研究与设计[J].微型机与应用,2010,29(20):100-102.

  [5] 李萌,杨彬,陈维琨,等.基于ARM的嵌入式工业无线网关的设计[J].自动化与仪表,2013,28(9):29-32,57.

  [6] 宗鑫祺,张伟.基于ARM和ZigBee的智能家居系统设计[J].微型机与应用,2014,33(1):54-55,59.

  [7] 俞文俊,凌志浩.一种物联网智能家居系统的研究[J].自动化仪表,2011,32(8):56-59.

  [8] 陈滟涛,杨俊起,康润生,等.基于SIM300的短信传输系统的设计与实现[J].计算机工程与科学,2008,30(3):156-158.