基于ZigBee 技术的小区垃圾分类提示系统
2015-08-26赵钢
赵钢
(西安航空职业技术学院 陕西 西安 710089)
垃圾问题,伴随人类文明的发展日益严重。 新浪网曾做过一项调查,在3435 名被访者中,仅有38.6%的家庭给垃圾分了类。 很多市民很愿意配合垃圾分类这项工作,但困扰他们的问题是:垃圾该如何准确分类。 在《关于广州市资源环保考察团赴台考察情况的报告》中明确写道,“虽然98%的人支持垃圾分类,但自觉参与垃圾分类、且相对投放准确的不到30%。 ”
2013 年7 月,“垃圾不落地” 模式在广州越秀区六榕街道试行近一年。 如今大部分街坊,垃圾不再混合堆放楼道,而是下楼再扔。尽管如此,可在分类的准确度上,却仍有待提高。
面对日益增长的垃圾产量和环境状况恶化的局面,我们需要通过科学的垃圾分类管理,最大限度地实现垃圾资源利用,减少垃圾处置量,改善生存环境质量。 因此,研究一套便捷的可向用户展示日常垃圾分类信息的系统是很有必要的。
1 无线通信技术选取
无线技术可以分为高速率和低速率两类[1],高速率无线技术主要包括Infrared Ray、Wi-Fi、HomeRF、Bluetooth、DECT(Digital Enhanced Cordless Telecommunications)、HiperLAN 和UWB(Ultra Wideband)等,低速率无线技术主要包括ZigBee 和Z-Wave(基于射频的短距离无线通信技术)。 可组网的无线技术特性如表1 所示。
表1 可无线通信技术特性比较Tab.1 Comparative study of wireless communication technology
其中ZigBee 自组自愈能力强,通信可靠,工作频段灵活,最大传输范围在10~75 m, 且理论上可组建65536 个节点的网络,其网络容量及250 kbps 的传输速率已完全满足小区信息提示网络的需要。
2 小区垃圾分类提示系统的网络结构
基于ZigBee 的小区垃圾分类提示系统的实现方案,实际上是向住在小区的住户展示日常生活垃圾的分类信息, 方便用户查询。 主要由终端节点、ZigBee 路由器、ZigBee 网络协调器以及服务器终端等组成,其网络结构示意图如图1 所示。
图1 小区ZigBee 网络结构示意图Fig. 1 Community ZigBee network structure
终端节点主要用于向用户展示基本的垃圾分类规则,并收集转发不确定分类垃圾的信息,ZigBee 网络路由器是建网的主要环节,负责识别加入终端节点的网络地址,并选择合适的网络路径传输给协调器;ZigBee 网络协调器负责发起网络并对其进行管理和维护,包括对新加入的设备分配网络地址,节点的加入和离开等。
3 小区垃圾分类提示系统的硬件设计
系统是基于ZigBee 技术[2-3]的信息提示网络,选择Chipcon公司推出的用来实现嵌入式ZigBee 应用的片上系统CC2430。 CC2430 采用增强型8051MCU、32/64/128KB 闪存、8KBSRAM 等高性能模块, 并内置ZigBee 协议栈, 同时支持2.4 GHz、IEEE802.15.4/ZigBee 协议。
3.1 终端节点系统设计
终端节点[4]包括以下几个部分:基于单片机的显控录音模块、 红外人体感应模块、CC2430 片上系统、32 MHz 系统时钟和32.768 kHz 的实时时钟、调试接口、天线以及电源。 其中单片机的显控模块主要用来显示常用垃圾分类信息与社区每日推送的信息等, 红外人体感应模块用于检测靠近终端的居民从而唤醒终端,CC2430 片上系统主要完成服务器消息的接收与用户消息的上传,其硬件结构图如图2 所示。
图2 终端硬件结构示意图Fig. 2 Terminal hardware structure
3.2 ZigBee 路由器设计
由于终端节点系统设计[5],一般会考虑低功耗的因素,故通信距离在100 m 左右,这个距离并不利于组建覆盖范围较大的网络,为了进一步提高网络的覆盖范围,可利用射频前端CC2591,来提高发送功率以及接收灵敏度。 其硬件结构图如图3 所示。
图3 路由器硬件示意图Fig. 3 Structure of router hardware
CC2591 集成了+22 dBm 的功率放大器以及+6 dB 的低噪声放大器,是一款高性能、低成本、低功耗,集成度最高的2.4 GHz 射频前端。
3.3 ZigBee 天线的选取
由于小区垃圾分类提示系统工作在居民小区, 故会存在2.4 GHz 频带,以家用无线设备为主的干扰源,如工作在2.4 GHz 的无线键鼠等。为使提示系统可覆盖整个小区,需使用多种天线配合组网,在楼层间距离短,可采用PCB 板载倒F 型天线; 在楼宇间由于传输距离较远, 同频干扰对网络影响较大, 可使用具有较强方向性的八木天线与平板天线结合的方式,八木天线可用于路由器发射天线,平板天线可用于协调器接收天线。
4 小区垃圾分类提示系统的软件设计
4.1 软件设计的整体流程
基于ZigBee 网络的小区垃圾分类提示系统[6],其软件性能取决于协议栈的设计与应用程序的开发。因此,软件部分设计主要包括ZigBee 协议栈和ZigBee 模块相关部分设计。
4.2 ZigBee 协议栈
协议栈[2]定义了通信硬件和软件在不同级间协调工作的方式,ZigBee 无线网络是建立在ZigBee 协议栈的基础上的。ZigBee 协议栈采用分层结构,由一组子层构成;协议分层的目的,是为了使各层相对独立,每一层都能提供特定服务,服务由协议定义,程序员只需关心与自身工作直接相关层级协议。
本设计中,采用Chipcon 公司开发的协议栈Z-Stack。 ZStack 协议栈是TI 提供的符合ZigBee 规范的免费协议栈,可以完全运行在CC2430 节点上。 它运行在操作系统的抽象层(OSAL,Operating System Abstract Layer)上,而OSAL 采用了与Windows 程序类似的消息事件驱动机制,通过触发任务事件来实现系统的任务调度。
4.3 ZigBee 模块相关软件设计
ZigBee 模块的工作,通过每层特定服务,完成设定的工作任务。各项服务都是通过服务原语来实现的,原语在程序中就相当于一个可实现设定功能的函数, 每个事件都是由服务原语组成,它使一个设备的其中一层,可通过该层的服务入口与建立对等连接的设备相同层级进行通讯。 原语通常分为以下四类型: 请求原语 (Request primitive), 响应原语(Response primitive),指示原语(Indieation primitive)和确认原语(Confirm primitive)。
ZigBee 设备都具有两个基本功能,即加入网络和离开网络。 ZigBee 协调器和ZigBee 路由器还具有:允许设备加入网络,允许设备离开网络,参与分配逻辑网络地址,维护近邻设备列表等功能。
4.3.1 ZigBee 模块协调器建网
一个ZigBee 网络[2]有且只有一个网络协调器,网络的建立由它发起。当需要建立一个新的ZigBee 网络时,协调器将经过以下主要步骤,能量探测、主动扫描,信道选择,以及网络短地址、网络标识符、网络拓扑参数、信标周期等的确定。 其网络建立流程如图4 所示,允许节点加入网络流程图如图5 所示。
图4 协调器建网流程图Fig. 4 The coordinator network flow chart
在协调器建网建网过程中, 初始化创建新网络使用了NLME-NETWORK-FORMATION.request 原语。设备NLME 将检索主动扫描返回的PAN 扫描符,找到其中现存网络最少的第一个信道作为创建新网络的工作信道。 如果找不到合适的信道,NLME 将中止创建新网络的过程并通知上层:创建网络失败。如果找到合适的信道,NLME 将为新网络选择一个PAN标识。
ZigBee 协调器和ZigBee 路由器能够允许节点加入网络,而ZigBee 终端节点则不能,如果允许节点加入网络过程初始化发生在一个ZigBee 终端节点上, 节点NLME 将中止该过程。允许节点加入网络的过程通过NLME-PERMIT-JOINING.request 原语来初始化。
图5 允许节点加入网络流程图Fig. 5 Allows a node to join the network flow chart
4.3.2 ZigBee 模块路由器建网
路由器节点在ZigBee 网络[7-8]中起接力的作用,终端节点、 路由节点以及协调器节点间的数据传输都可以通过路由实现。 NLME_START_ROUTER 原语用来把一个新的网络的设备初始化成ZigBee 路由器,或用来重新配置一个ZigBee 路由器的超帧。 其参数:BeaconOrder 表示上层期望的网络信标阶数;SuperframeOrder 表示上层期望的网络超帧阶数;BatteryLifeExtension 取 值 为TRUE 时,NLME 将 请 求ZigBee路由器运行时支持电池寿命延长模式, 取值为FALSE 时,NLME 将请求ZigBee 路由运行时不支持电池寿命延长模式。其建网流程与允许节点加入网络流程相似。
本设计的ZigBee 路由的建立过程采用按需路由协议AODV,该协议适合运用于移动频繁或节点数据较多的应用场合。 在ZigBee 网络中AODV 算法为两个节点之间路由路径提供多种选择,当一条路径失效,AODV 算法可快速寻找一条新的路由路径来代替原来的路由,具有很强的网络自适应能力。
4.3.3 ZigBee 模块终端节点入网过程
终端节点主要用来传递用户的不确定信息, 并向上发送至其上节点,最终发送到协调器,同时它也可以接收协调器发来的命令与信息。 子节点通过孤点方式连接网络或者重新连接网络的流程如图6 所示。
图6 子节点加入网络流程图Fig. 6 Child nodes to join the network flowchart
终端节点通过发送NLME-JOIN.request 来执行孤点方式网络连接,其原语RejoinNetwork 参数设置为0x01。 如果子节点扫描到父节点成功(即孤点扫描),则网络层管理实体发送NLME-JOIN.confirm 原语通知上层请求连接执行成功, 其原语状态参数设置为SUCCESS。 如果孤点扫描不成功,网络层管理实体终止该流程, 并通过发送NLME-JOIN.confirm 原语告知上层没有扫描到网络, 其原语的状态参数设置为NO_NETWORKS。
5 结论
本文所设计的基于ZigBee 技术的小区垃圾分类提示系统,成功结合了ZigBee 无线网络的数据传输速率高,功耗低,网络容量大,自组自愈能力强,通信可靠等功能优点,具有成本低,技术成熟、结构合理,方便扩展等优势,在全面提高小区户主环保意识的同时,为小区的垃圾分类管理,分类信息统计及垃圾回收研究提供了数据依据,对研究我国城市垃圾分类及回收有一定的指导意义。
[1] 吕鑫,王忠. ZigBee无线数据传输模块的设计与实现[J].安徽师范大学学报:自然科学版,2010,33(4):332-335.
LV Xin,WANG Zhong.Design & realization of ZigBee data transmission module [J].Journal of Anhui Normal University:Natural Science,2010,33(4):332-335.
[2] 高守玮,吴灿阳.ZigBee技术实践教程[M].北京航空航天大学出版,2009.
[3] 邹志勇, 周曼. 基于ZigBee和GPRS饮水机自动叫水智能系统设计[J].自动化与仪器仪表, 2013,33(1):74-75.
ZOU Zhi-yong,ZHOU Man.Based on the ZigBee and GPRS dispenser automatically called water smart system design[J].Automation & Instrumentation, 2013,33(1):74-75.
[4] 丁捷.基于ZigBee的温室无线网络节点设计及研究[D].郑州:河南科技大学,2012.
[5] 黄玉立.基于CC2591的无线通信前端设计及实现[D].成都:电子科技大学,2011.
[6] 任丽莉, 范亚芹. ZigBee信号在智能小区中传输的改进[J].吉林大学学报:信息科学版,2011,29(6):518-522.
REN Li-li,FAN Ya-qin.Transmission improvement of ZigBee signal in intelligent community [J].Journal of Jilin University:Information Science Edition,2011,29(6):518-522.
[7] 陈海燕,张晨.ZigBee无线语音通信组网技术[J].哈尔滨理工大学学报,2012,17(4):68-72.
CHEN Hai-yan,ZHANG Chen.The technology of ZigBee for building wireless voice communications network [J].Journal of Harbin University of Science and Technology,2012,17(4):68-72.
[8] 曾小虎.ZigBee路由实现与通信性能测试研究[D].广州:广东工业大学,2012.