基于XBee无线技术的智能家居监控系统硬件设计和软件设计
扫描二维码
随时随地手机看文章
智能家居系统控制方式主要是有线网络和无线网络两种方式。有线方式,顾名思义就是需要通过布电缆来组网。此种组网方式比较传统,历史悠久,技术发展相对成熟,可靠性高,但由于其需要实体布线所带来的布线繁琐,线路容易损坏,可扩展性和可移动性差等不可避免的问题,有线网络方式将逐渐被无线网络方式取代。无线网络则凭借着其良好可移动性和扩展性以及勿需额外布线和不受距离控制等优点,从而灵活流动地对可控点进行控制,这样的特点更加符合家庭网络的通信需求,因此基于无线网络技术的智能家居系统越来越受到人们的关注。目前,无线网络技术已经深入到人类生活的各个方面。无线方式种类繁多,应用较为广泛的无线技术有蓝牙、红外技术、超宽带等等。各种技术各有自身特点,当中以新兴的ZigBee技术的出现填补了低速率端无线通信技术的空缺,能很好地解决智能家居系统的设计遇到的问题。ZigBee技术是一种几乎能够应用到所有行业的低数据率的无线通信技术。
XBee无线技术是一款基于IEEE 802.15.4标准的无线协议且与ZigBee协议兼容的无线模块。作为一种新兴的无线通信技术,它是一种省电、远距离、时延短、低功耗的数传模块,主要应用于智能家居,远程控制,无线抄表,无线检测等方面。本文主要以智能开/关窗帘为例,说明智能家居与普通家居不同在于不仅具有传统普通家居的居住功能,更引人注意的由于采用了XBee无线技术,使得智能家居具有智慧能动性,优化升级生活方式。
2 系统功能基于XBee无线技术的智能家居主要通过无线遥控模块(XBee模块)实现对家居环境的监控。本文的智能窗帘控制系统是按照点对点通信方式进行设计。利用专用软件X-CTU配置任意一个XBee模块为协调器coordinator API端的作为控制端,它实现的功能是发送数据给任意一个配置为终端router API端的XBee模块,控制各个终端节点的工作,并通过RS232串口连接到上位机监控界面,从而实现对各个终端节点的远程控制。本文主要实现智能窗帘的开与关,其系统功能框图如图1所示。
图1 系统功能框图
3 硬件设计智能窗帘硬件主要采用一个带有RS232串口或USB接口转接电平转换器的工控机(平板电脑),Arduino控制器,继电器,电动窗帘(含导轨)等。其中,通信的最关键部分就在于通信模块的设计。本文的通信模块的设计主要采用了由无线通信元件制造商MaxStream生产的一款mini型ZigBee收发模块XBee Series 2模块。 XBee模块需两块,一块是安装在PC机(上位机)控制发送端,一块是作为Arduino控制器的无线接收端,具体硬件需求清单见表1所示。
表1硬件需求表
3.1上位机控制发送端硬件设计
上位机切换窗帘的三个开关状态(打开窗帘、关闭窗帘、停止窗帘),按着一定的通信协议通过串口发送控制信息给与上位机USB相连的XBee模块(协调端节点A),然后通过无线网络发送控制信息到Arduino无线接收端的XBee模块(终端节点B)。上位机主要实现切换、判断和发送三个功能。协调端节点A端指令主要内容包括终端节点B模块的地址,要发给终端节点B模块的信息等内容。
为了实现协调端节点A、终端节点B两个XBee模块互相发送消息。利用XBee USB适配器对XBee模块进行配置,通过软件X-CTU将其中的一个模块节点配置成coordinator API(协调端节点)模式,其他的均配置成router API(终端节点)模式,确保这两个节点在同一个网络内。这样两个节点之间就能按照XBee的通信协议进行数据传输。
3.2 Arduino控制器的无线接收端硬件设计
Arduino控制器是一块基于开始原始代码的Simple i/o平台,并且具有开发语言和开发环境都很简单、易理解的特点。它使用高速的微处理控制器(ATMEGA328),可简单地与各类传感器、电子元件连接。
Arduino主要性能描述:
Ø Digital I/O 数字输入/输出端共0-13。
Ø Analog I/O 模拟输入/输出端共0-5。
Ø 输入电压:接上USB时无须外部供电或外部5V-9V直流电压输入。
Ø 输出电压:5V直流电压输出和3.3V直流电压输出和外部电源输入。
利用Arduino控制器的上述特性,本文在接收端处将终端节点XBee模块直接与Arduino控制器相连,当该XBee收到控制信息后,Arduino控制器则输出5v直流电压供后接继电器吸合,从而控制智能窗帘开与关。
图2 Arduino控制器
4 软件设计针对基于XBee无线技术的智能窗帘功能,通过程序远程控制实现该功能的软件设计主要包括两部分:一部分是代步智能机器人上平板电脑(上位机)中的无线发送模块的程
序,另一部分是远程数据控制器Arduino(下位机)中的无线接收模块的程序。前者采用面向对象的可视化语言VC++编写,后者采用Arduino语言编写。
用户通过操作上位机控制界面按钮(打开窗帘、关闭窗帘、停止窗帘),远程控制窗帘电机的正反向旋转,实现对智能窗帘的开关操作。当鼠标移动到某个区域时,调用相应的控制指令,再通过控制系统实现远程控制电动窗帘的运动。其中,窗帘开关到头时,自动撤销驱动信号,使窗帘运动停止。窗帘需要停靠在任意状态时,在窗帘运动中按界面停止窗帘按钮即可。
4.1上位机控制界面的软件实现
上位机和XBee(coordinator API端)之间的通信是通过串口通信来完成。
首先使用ND命令查找网络中的节点信息,发送的数据位:0x7E 00 04 08 09 4E 44 5C,确保协调端节点和终端节点在同一个网络。
其次,利用无线网络XBee模块之间的通信协议,coordinator API端向router API端发送自己定义的相关字符(以打开窗帘为例发送字符K),具体数据如表2所示。
表2 发送数据
按照以上的通信协议,上位机PC机上开发了一个基于Windows系统的人机交互的控制界面,用来相应鼠标的移动和点击,主要负责与用户进行交互,同时反馈家电状态信息,控制界面如图3所示。
图3 控制界面
如图3所示,智能窗帘的监控界面是由六个按键和两个文本框构成。其中,通讯模式方框中的模式切换按键用来切换智能家居的控制方式是物联网模式或是GSM模式,文本框中用来显示当前的控制方式。智能开关方框中左边两个按键是控制电灯的工作状态,右边三个按键是控制窗帘的工作状态。短信模式方框中是显示短信的具体内容。本文主要介绍的是无线网络物联网模式下的智能窗帘的控制,因此GSM控制方式此处不做介绍。
4.2无线接收端的软件实现
无线接收端主要由Arduino控制器、作为router API端的XBee模块(终端节点)、继电器和电动窗帘构成。当终端节点收到相应字符,Arduino控制器则输出5v。具体软件流程图如图4所示(以打开窗帘为例进行说明)。
图4下位机软件模块设计
5 结束语本文完成了智能代步机器人智能家居监控系统的硬件设计和软件设计,并进行了调试,验证了所设计系统的有效性和实用性。其创新点在于将Xbee模块引入传统的家电通信控制,相对于以往的有线家电通信控制,省去了综合布线难度,同时节约了成本,增加了可控点的灵活性。本文只给出了一个点对点的一个实例,按着这种思路,稍加扩展就可实现大面积智能家居。随着无线通信技术的发展和成熟,无线通信在未来的智能家居技术中必然会得到越来越广泛的应用,具有广阔的应用前景。