APP下载

基于ZigBee技术的手机智能家居系统设计

2013-10-29罗鹏

中国新通信 2013年9期
关键词:命令蓝牙串口

罗鹏

【摘要】提出了一种基于ZigBee无线传感器网络的智能家居系统,给出系统的软件设计。所设计的网关节点具备网关的基本功能,并结合了Bluetooth和GPRS通信功能,可以支持近远程的综合接入。用户可以采用Android终端设备实现实时数据的采集或者控制指令的执行,也可以通过移动通信公网实行远距离的控制操作。Android终端软件开发平台采用的是安装了SDK开发包的Eclipse开发软件。除了网关以外的其他节点都采用了休眠管理来降低能耗。

【关键词】智能家居ZigBee无线传感器网络Android

中图分类号:TN92文献标志码:A

本文结合ZigBee无线传感网络与Android智能手机系统,设计了新型的智能家居系统。硬件方面使用TI公司的CC2530 ZigBee无线传感模块和支持RS-232的Android智能手机开发平台,完成了比较完善的通信网关功能,使用户可以通过Android手机端的应用程序控制ZigBee智能家居系统。

一、ZigBee规范分析

在ZigBee规范中,节点按功能分为3种类型[3]:①协调器(ZC),负责创建并维护一个PAN;②路由器(ZR),负责把感知数据路由到ZR,并帮助ZC进行PAN的创建和维护工作;③端设备(ZED),负责感知物理世界环境变化,然后在ZR的帮助下将感知数据传送到ZC[4]。

二、系统设计

2.1建立ZigBee智能家居网络

整个系统由ZigBee无线传感器网络、无线通信公网和Android智能终端组成。组建一个完整的ZigBee网状网络包括两个步骤:网络初始化、ZED加入网络。其中ZED加入网络又包括两种方式:通过与ZC连接入网和通过已有父节点入网。

为了建立连接,ZED需要向ZC提出请求,ZC接收到ZED的连接请求后根据情况决定是否允许其连接,然后对请求连接的ZED做出响应,ZED与ZC建立连接后,才能实现数据的收发[6]。具体的流程如图1所示:

(1)查找网络ZC。首先ZED点会主动扫描查找周围网络的ZC,如果在扫描期限内检测到信标,那么将获得了ZC的有关信息,这时就向ZC发出连接请求。如果没有检测到,间隔一段时间后,ZED重新发起扫描。(2)发送关联请求命令。ZED将关联请求命令发送给ZC,ZC收到后立即回复一个确认帧(ACK),同时向它的上层发送连接指示原语,表示已经收到ZED的连接请求。协调器接收到连接指示原语后,根据自己的资源情况(存储空间和能量)决定是否同意此ZED的加入请求,然后给ZED的MAC层发送响应。(3)等待ZC处理。ZC给ZED的MAC层发送响应时,ZED会设置一个等待响应时间来等待ZC对其加入请求命令的处理,若ZC的资源足够,ZC会给ZED分配一个16位的短地址,并产生包含新地址和连接成功状态的连接响应命令。若ZC资源不够,等待加入的ZED将重新发送请求信息。(4)发送数据请求命令。如果ZC在响应时间内同意ZED加入,那么将产生关联响应命令并存储这个命令。当响应时间过后,ZED发送数据请求命令给ZC,ZC收到后立即回复ACK,然后将存储的关联响应命令发给ZED。(5)ZED收到关联响应命令后,立即向ZC回复一个确认帧(ACK),以确认接收到连接响应命令,此时ZED将保存ZC的短地址和扩展地址,并且ZED的MLME向上层发送连接确认原语,通告关联加入成功的信息。自此,ZigBee网络组网成功。

当组网成功后,ZED将在指定的报告周期时间内,通过zb_SendDataRequest原语向ZC发送状态数据包。ZC通过RS-232接口将数据包转发到Android模块,然后通过Socket或者蓝牙将数据包传递到用户终端。

2.2串口通信

Android模块串口通信主要由下面几步组成,JNI通过init、upload、download三个HAL层函数接口对串口进行初始化、写数据和读数据。写数据时,通过upload在 HAL层中加上包头及CRC位,然后在写线程中写入串口设备节点。读数据时,在HAL层中通过读数据线程从串口设备节点中将数据读出后进行解析和CRC校验,如果CRC校验正常则把解析之后的数据通过JNI层传给java中进行使用。接收数据和解析数据的时候采用buffer控制,在接收数据时采用的环形buffer,容量为1Kbyte,这样做的目的是防止接收数据丢失。

2.3用户与Android模块通信

2.3.1Socket通信

Android平台Socket通信由客户端和服务器两部分组成,当客户端启动时,会向指定IP地址和端口号的服务器发送一个短数据包,服务器接受到数据包后建立起与相应客户端的Socket连接。当ZigBee协调器通过RS-232将数据包传输到客户端,客户端会将接收到的数据进行拆包、解析,然后将比特流(二进制)转换为ASCⅡ码,重新打包,通过Socket服务器转发到终端设备中。同理,终端设备也可以通过Socket服务器将数据发送到客户端,从而将控制信息传送至ZigBee协调器端。

2.3.2蓝牙通信

在Android平台上,蓝牙组网需要设备两端进行LMP配对。Android平台提供的蓝牙API实现蓝牙设备之间的通信,蓝牙设备之间的通信主要包括了四个步骤:设置蓝牙设备、寻找局域网内可能或者匹配的设备、连接设备和设备之间的数据传输。

三、干扰分析

因为基于ZigBee技术的手机智能家居系统需要ZigBee、Wi-Fi网络或ZigBee、蓝牙网络共存,而他们都工作在2.4GHz频段之下。所以,必须对不同网络之间的干扰进行分析,避免它们之间的干扰。蓝牙网络采用了自适应调频干扰避免策略,当出现干扰时,蓝牙设备会自动跳转到一个非重叠的信道,从而避免干扰发生。而ZigBee和Wi-Fi都采用了固定信道碰撞避免策略,所以,为了避免碰撞发生,选取ZigBee网络中的第15、20、25、26信道,则可以有效的避免他们之间的干扰发生。

四、实验过程与实验结果

本实验涉及到2种不同的网络:ZigBee无线传感网和移动通信网,其中ZigBee网络中又分为2种不同的设备:协调器和终端。移动通信网主要是通过Android模块实现。采用Z-Stack协议栈,在实验室环境下开发了温度检测传感器、适度检测传感器与光照检测传感器,终端备通过CC2530芯片对应的I/O口获取相应的数值信息,将数值的每一位转换为ASCⅡ码,并通过RS-232接口将数据传送到Android模块。

五、结束语

进过测试与实际应用表明基于ZigBee技术的手机智能家居系统能够实时完成对家庭环境信息的采集任务,并可以通过继电器对家用电器进行控制,通过红外传感器与嗡鸣器形成家庭安防系统,提高生活的舒适度、和安全感,具有一定的实用性。

参考文献

[1]丁龙刚,基于RFID、Wi-Fi、蓝牙、ZigBee的物联网电磁兼容和干扰协调研究.物联网技术,2011年6月

猜你喜欢

命令蓝牙串口
蓝牙音箱的直线之美
只听主人的命令
浅谈AB PLC串口跟RFID传感器的通讯应用
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
移防命令下达后
紧急:蓝牙指尖陀螺自燃!安全隐患频出
USB接口的多串口数据并行接收方法探索
这是人民的命令
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信