智能家居是在传统住宅的基础上,利用现代科学技术,诸如网络通信、安全防范、自动控制、音视频等技术将家居生活有关的各种家居设施集成,构成的高效、便利、舒适、节能环保的家居环境。随着无线移动网络的快速布局,现代的智能家居只要有一个无线智能设备,即能通过客户端实时查看到住宅中的一切动态。在目前,智能家居控制系统中,有基于面板和红外遥控器或蓝牙的智能家居控制终端解决方案,也有完全基于PC机的智能家居控制终端解决方案,同时还有采用手机作为家居控制终端,利用GSM电话网络通信,实现短信或者语音控制。而以上多种技术的应用,催生了各种智能控制模块的研究和生产,因此导致了当前智能家居控制系统的标准无法统一,各个系统和模块之间难以实现互联互通。针对以上问题,本文提出了一整套的智能家居控制系统解决方案,该方案采用Android智能手机作为控制终端,在STM32F107移植μC/OS-II操作系统和LwIP协议栈搭建嵌入式服务器,通过搭建ZigBee无线传感网络,采用改进的ZigBee路由算法,制定完善的通信协议,提高网络通信性能,最终实现手机对智能家居的远程和本地的实时监控。
1 系统总体设计
本文所设计的智能家居控制系统主要包括嵌入式服务器,Android客户端和ZigBee无线模块节点。移动控制终端和ZigBee无线模块节点通过嵌入式服务器进行通信实现信息交互。即用户采用Android客户端程序发送指令通过互联网或局域网传输到智能家居嵌入式服务器,服务器在接收到控制命令后再通过ZigBee无线传感网络发送到对应的终端节点,终端节点接收到命令后进行相应的操作,比如采集温湿度信息并将信息反馈到服务器,服务器再将信息通过局域网或互联网发送到Android客户端进行显示。系统总体结构图如图1所示。
图1 系统结构图
2 系统硬件设计
2.1 设计原则
嵌入式服务器在整个系统中起着至关重要的作用,其实现的主要原则应从下面几点出发:(1)允许Android客户端远程登录到服务器,并能够保存登录用户的基本信息,实现多用户登录,为每个用户都能提供相应的服务。(2)能够正确接收客户端发送的控制命令,并能够返回相应信息。(3)能够与ZigBee协调器实现信息交互,完成命令传输和信息采集。嵌入式服务器启动后,采用socket通信方式接收客户端的登录命令,验证通过后为客户端提供相关服务。
2.2 服务器硬件设计
本次研究采用ST公司生产的Cortex-M3为内核的微处理器芯片STM32F107VC进行扩展搭建嵌入式服务器硬件平台,硬件结构图如图2所示。根据需求,外围需扩展的功能模块主要包括与ZigBee协调器通信模块和与控制终端实现网络通信硬件模块。其中与ZigBee协调器通信采用串口通信方式实现。而STM32F107内部集成了以太网MAC控制器,因此本次设计采用RMII接口连接以太网PHY(物理层)芯片DM9161。
图2 嵌入式服务器硬件结构图
2.2.1 网络通信接口
网络通信接口是服务器与控制终端实现网络通信的桥梁。STM32F107内部集成了一个以太网MAC,并有专用的DMA控制,实现内部数据的高速传输。STM32F107还同时支持MII和RMII两种物理层接口,因此只需外界一片物理层收发器,即可实现以太网帧的发生和接收,实现网络通信。所以本次设计采用高性价比的DM9161A作为10M/100M以太网PHY芯片,采用RMII接口与处理器STM32F107内部的IEEE1588 MAC连接,并与标准RJ45接口HR911105A连接,支持平行交叉网线自适应,实现以太网通信功能。网络接口硬件接口设计如图3。
图3 以太网通信接口
2.2.2 ZigBee无线模块节点
智能家居中,家居内部无线网络通信方式的选择至关重要。在本次智能家居控制系统设计中,家庭内部网络采用ZigBee数传模块组网技术。在智能家居网络中,ZigBee无线模块节点被分为主节点和从节点,主节点主要负责建立无线网络,分配从节点网络地址,并与从节点和嵌入式服务器实现指令的发送和接收。
ZigBee无线模块从节点主要嵌入到终端设备中用于采集检测信息发送到主节点,或者接收控制命令实现对终端设备的控制,ZigBee网络结构图如图4。
图4 ZigBee网络结构图
ZigBee无线模块节点采用TI公司的CC2530作为主控制器芯片。该芯片是用于2.4GHz IEEE 802.15.4、ZigBee和RF4CE应用的一个真正的片上系统解决方案。它结合了领先的RF收发器的优良性能,基于51内核,系统内可编程闪存,8KB RAM和许多其它强大的功能。
ZigBee数据采集节点主要包括一些通过传感器实现的信号采集类模块,比如温湿度采集,可燃气体泄漏或者火灾发生时的信号ZigBee数据采集并报警。设备控制节点主要嵌入到家电设备中,以实现门禁系统、灯光控制、智能窗帘、智能热水器、智能空调、摄像头云台等的远程控制。
3 系统软件设计
本系统的软件主要包括3个部分:嵌入式服务器软件平台、ZigBee节点控制程序、控制终端的Android应用程序。
3.1 嵌入式服务器软件实现
嵌入式服务器软件平台的搭建根据以下2点需求来进行:(1)服务器要实现实时多任务操作。(2)服务器要实现TCP/IP网络通信功能。因此,本系统选择移植实时操作系统μC/OS-II作为服务器操作系统,移植LwIP实现TCP/IP网络通信。
3.1.1 操作系统移植
μC/OS-II是一个可移植、可固化、可剪裁、抢占式多任务实时内核。它适用于多种微处理器,微控制器和数字处理芯片,是和很多商业操作系统性能相当的实时操作系统。
在移植μC/OS-II系统过程中,需修改以下几个文件:汇编文件OS_CPU_A.ASM,与处理器相关C文件OS_CPU.H和OS_CPU_C.C,系统配置文件OS_CFG.H。
3.1.2 LwIP协议栈移植
LwIP是TCP/IP协议栈的一个实现。它的目的是减少内存使用率和代码大小,使LwIP用于资源受限系统,本次设计的嵌入式系统正属于此列。因此,为实现嵌入式服务器的TCP/IP网络通信功能,有必要移植TCP/IP协议栈,综合考虑,本次设计选择移植开源的LwIP协议栈。为移植LwIP,主要工作是需针对本次设计中的目标系统μC/OS-II修改模拟层实现。移植后的系统软件框架如图5。
图5 服务器软件框架
3.1.3 应用程序编写
本次设计中,嵌入式服务器实现对远程用户登录注销、用户信息管理和数据传输两大主要功能。服务器依据客户端指令分别实现客户端的登录注销、用户信息管理、终端设备控制三种功能。用户登录时服务器创建服务,注销时结束服务并切断与客户端的通信。用户信息管理允许用户通过客户端修改用户信息,终端设备控制功能允许用户使用客户端来实现远程监控家居环境。控制功能由服务器与ZigBee协调器通信实现。服务器工作流程图如图6所示。
图6 服务器主线程工作流程图
服务器启动后进行系统初始化,初始化主要包括设置STM32系统时钟、串口、以太网、GPIO、中断控制器NVIC、LwIP栈。系统初始化完毕创建2个任务,优先级为3的任务内容是实现socket通信,注册数据接收回调函数,当接收到数据时在回调函数中进行数据接收处理,其中要使用socket接口必须包含API头文件socket.h。优先级为4的任务完成串口数据的接收,在任务中不断查询串口数据接收完成或缓冲区溢出标志USART_Rx_Done,当数据接收完毕或缓冲区溢出时,此时在中断服务程序中设置全局变量USART_Rx_Done为1,即表示通知主线成串口数据接收完毕,主线程将接收到得数据以网络通信的方式发送的客户端。服务器中断程序流程图如图7。
图7 中断服务程序流程图
3.2 移动控制终端Android应用程序设计
Android客户端应用程序主要实现三个部分功能,程序功能界面、与家居服务器通信和处理相关信息。
3.2.1 功能界面设计
应用程序界面设计包括登录界面和功能界面。功能界面采用底部导航栏分栏显示,包括主页、设备控制、信息中心和系统设置四个方面。主页主要显示当前住宅内部温度和湿度以及安防信息;设备控制主要包括灯光控制、家电控制、门窗控制和情景模式,通过安检选项进行控制;消息中心主要显示住宅环境的一些家居状态消息,比如当住宅发生火灾时传感器检测到危险信号后服务器会发送信息到消息中心显示,并且手机根据消息命令会自动实现报警和提醒用户等;系统设置主要包括设置一些用户权限和网络通信配置。设计好的界面如图8所示。
图8 登录及主界面
3.2.2 网络通信实现
移动Android应用程序设计中主要涉及两个方面的数据通信,一个是界面Activity组建与后台Service组建间的通信,另一个是Android客户端与嵌入式服务器间的通信。在Android应用程序中,Activity主要负责前台页面的展示和用户指令的接收,Service则主要在后台负责长时间执行的任务比如监控任务。移动客户端应用程序中数据通信架构如图9。
图9 数据通信程序架构
在Android中,Activity主要负责前台页面展示,Service主要负责需要长时间运行的任务。在图9中, 参考And roidIPC通信机制,在Activity中通过Intent启动后台Service,Intent中传递了Activity从用户动作中接收到的数据。Service在后台启动后创建一个Socket服务子线程与嵌入式服务器实现网络通信,并将服务器返回的数据通过Binder对象传递给Activity。另一方面,Service在程序登陆后创建一个循环子线程实现每隔一分钟向服务器发送一次更新数据指令,以便实时更新主页面显示数据。
4 结束语
本文利用ZigBee数传模块对智能家居信息进行ZigBee数据采集,将Android客户端安装到手机,并搭建服务器平台,在实验环境下进行试验和调试。实验结果表明系统运行稳定,Android手机客户端可以通过无线网对家居设备实现远程控制,并且能够实时接收并显示住宅环境信息,当检测到异常时能够及时的发出警报。
本次设计的智能家居控制系统,采用了当下最流行也最实用的智能手机实现对家居环境的实时监控。这种方式通用性强,操作便捷,易于安装推广,运行稳定可靠。达到了对家居设备智能化管理的目的。同时,本次设计在功能上可以加以改进,比如可以在后续的工作中加入视频监控、智能服务等内容。
在智能家居的环境监测、矿井的环境监测、粮仓的环境监测、农业大棚的环境监测中,如果采用传统的有线监测方法,会导致布线繁琐、建置成本高、维护不方便以及系统的可扩展性和移动性差等问题。无线监测系统不仅省去了大量的布线工作和维护费用,而且网络部署更加规范。近年来,无线技术以它优越的灵活性和便捷性在网络应用中发挥着日益重要的作用。
1 系统设计
1.1 ZigBee无线网络
ZigBee数传网络一般由协调器(Coordinator)、路由器(Router)节点和传感器(End-Device)节点组成。协调器是一个全功能设备FFD(Full Function Device),负责创建、维护整个ZigBee无线模块网络,并为加入网络的节点分配地址,每个网络必须有而且只能有一个协调器。路由器也是全功能设备,负责信号的路由,根据实际情况设定个数。
传感器节点,又称终端设备,是一个半功能设备RFD(ReducedFunction Device),负责信号识别和数据发送,由多个组成。
根据节点的组合不同可以形成星型、树形和网状型三种网络拓扑结构,它对于网络管理、网路节点间的数据传输起着很重要的作用。ZigBee无线模块网络构架后,进行数据通信时,需要为每个设备分配一个网络地址,地址的分配取决于整个网络拓扑结构,并由三个值决定:网络的最大深度、每个父节点拥有的最大孩子节点个数和每个父节点拥有的最大孩子节点中路由器的最大个数。但网络地址无需人为计算,系统会自动分配。
1.2系统设计
本系统采用星形无线传感器网络结构,由一个协调器节点和若干传感器节点组成,结构如图1所示。上位机通过USB转RS232与协调器节点有线相连,协调器通过ZigBee无线数传方式与传感器节点相连。协调器建立ZigBee数传模块网络后,传感器节点上电后将自动与协调器对话,匹配成功后加入ZigBee无线网络。然后通过ZigBee数传模块将传感器节点数据传输至协调器,协调器再将数据传输至上位机,由上位机完成数据处理和保存,实现环境参数的ZigBee数据采集。
图1 网络结构图
2 硬件设计
本系统的硬件设计主要涉及两类节点的设计,传感器节点和协调器节点。目前ZigBee无线模块节点一般有两种模式:一种是将整个系统集成在一块模块上;另一种是将ZigBee射频收发模块设计成单独模块。前者系统集成性比较好、体积小,但兼容性比较差,后者扩展性比较好,可与其他的无线射频模块使用,也可用于其他用途的无线网络系统。本系统就采用第二种方式,传感器节点和协调器节点采用相同的ZigBee无线模块。
2.1传感器节点
系统采用CC2530单芯片,它是基于IEEE 802.15.4标准和ZigBee技术应用,结合了RF收发器、增强型的8051 CPU、存储器和ZigBee协议栈等,只需稍加外围电路和内部编程即可完成无线组网通信和ZigBee数据采集。基于CC2530芯片设计无线射频模块,体积小、功耗低、通讯可靠、效率高,结构如图2所示。
图2 传感器节点硬件结构图
2.2协调器节点
协调器节点采用图2传感器节点硬件结构图是整个系统的核心,负责各传感器节点的工作,还要把传感器节点的数据发送给上位机。因此在协调器节点设计中除了采用与传感器节点相同的ZigBee数传模块外,还应具有与上位机通讯的电路,如图3所示。
图3 协调器节点硬件结构图
3 软件设计
3.1上位机
本系统控制由上位机执行,上下位机有问有答,无答不执行。上位机操作界面由VB编写,形象直观、操作方便。上位机工作时首先进行串口初始化,然后检测是否有网络存在,如果存在就采集环境参数,具体流程如图4所示。
图4 上位机工作流程
3.1协调器节点
协调器上电配置物理信道主动扫描,选择合适的物理信道和网络号,建立起网络。协调器根据来自上位机采集数据的命令,根据网络地址进行数据发送和接收,具体工作过程如图5所示。
图5 协调器节点主流程图
3.2传感器节点
传感器节点上电后,根据配置物理信道被动扫描,选择合适的物理信道和网络号并加入网络。
根据来自协调器命令,进行数据采集和发送,具体工作过程如图6所示。
图6 传感器节点主流程图
4 调试与应用
本测试系统由上位机和下位机组成。下位机主要由1个协调器节点和3传感器节点组成,协调器和传感器节点1放在室内,传感器节点2放在走廊,传感器节点放在室外,并在不同时间点对该系统进行了温度和光度的测试,结果如表1所示。
表1 温度测试对比表
5 结束语
本文构建了一个基于CC2530的ZigBee无线网络系统,并对温度、光度进行了ZigBee数据采集测试,结果表明,系统可靠、测量结果精确。该系统不仅可以测量温度,还可推广测量其他环境参数,如湿度、烟雾等,同时该系统还可以推广至其它领域的应用,如校园的安防系统、老年公寓的监护系统等。
目前,城市路灯监控与防盗系统的技术比较落后,成本也较高。为此,笔者以单片机为控制核心,借助已有的GSM 移动通信网络,设计了路灯监控与防盗系统,通过终端控制器分布式监测,以主控中心为核心的软件系统实施全方位管理,从而实现城市路灯的高效控制和管理。
1 系统总体架构
城市路灯监控与防盗系统总体架构主要由以下3 部分组成:第1 部分是RTU,其包括系统的ZigBee无线模块终端控制设备和电缆智能防盗设备;第2 部分是GSM 网,用于数据传输及报警;第3 部分是主控中心的监控软件部分,其功能为实现对RTU 端的远程控制以及数据传输与存储,是整个智能城市路灯监控与防盗系统的指挥中心。系统总体架构图如图1 所示。
图1 智能路灯监控防盗系统总体架构图
2 系统硬件设计硬件设计
结构框图如图2 所示。
图2 硬件设计结构框图
2.1 中央处理模块
中央处理模块采用美国德州仪器(TI 公司)的低功耗微处理器MSP430,该芯片是一种混合信号处理器,其将模拟电路模块、数字电路模块及微处理器模块集成其上,具有精简指令集和16 位超低功耗,因而具有超强处理能力、高速运算能力、超低功耗、丰富的片内资源以及方便高效的开发环境。
2.2 GSM 无线通信模块
该系统监控终端设备和主控中心之间的通信采用基于GSM 的无线通信技术,因而GSM 模块是实现无线通信的关键。目前,市面上可供选择的GSM 无线通信模块有TC35 系列、WISM02 模块等,前者是来自于西门子公司,后者来自于Wavecom 公司,这些模块都可以进行二次开发,是标准的GSM 通信模块,可以直接通过串行接口直接连接微处理器,操作方便,为此选用Wavecom 公司的WISMO Quik Q2403A 无线通信模块,依据GSM07.05 定义的AT 指令规范,完成系统无线信息传输与数据管理任务。
2.3 射频芯片
采用Chipcon 公司生产的CC2430 作为ZigBee无线模块射频芯片,该芯片延用了CC2420 芯片的架构,在此基础上集成了1 个8 位MCU (8051)、128KB 可编程闪存、8KB 的RAM,还包含ADC、定时器、AES128 协同处理器等,其与Chipcon 公司的先进的ZigBee 协议栈、工具包和参考设计相结合,因而具有良好的集成开发环境。
2.4 电源芯片
采用选择LM2575 系列芯片提供5V 电压源电压,固定振荡器直接集成在芯片的内部,电路简单且连接方便,电压稳定,工作效率高。
2.5 其他辅助电路
为了满足可操作性与可维护性的需要,该系统还设计了人机接口电路,选用了LCMI2864 芯片作为LCD 液晶显示模块,通过3 个按键来完成对路灯各参数的设定以及修订工作。采用HRS4H-SDC12V继电器,其最大切换电流为10A。
2.6 电缆防盗子系统
电缆防盗子系统由1 个电缆防盗主控端和N 个监控末端构成,主控端位于配电箱内,其主要工作原理如下:白天时,路灯断电情况下,线路的主控端发送一个低压直流信号,监控末端根据接收的信号判断线路的完好性;夜晚时,监控末端通过检测线路的50Hz 交流电判别线路是否正常。监控末端白天采用蓄电池的方式供电,夜间则对蓄电池进行充电,防盗主控端与监测末端主要通过ZigBee无线模块网络进行信息传输,可将监控信息通过GSM 网络发到整个系统的主控中心统一管理,可以实现多变电站统一防盗监控。该子系统对末端监测模块的数量没有限制,一个电缆防盗中控模块可同时监控多条电缆,任何一条电缆出现故障,都能实现即时报告故障地点及时间,以便管理人员及时做出处理。电缆防盗子系统结构图如图3 所示。
图3 电缆防盗子系统结构图
3 主要软件设计
3.1 中央处理软件
中央处理软件借助IAR Embedded Workbench软件开发平台,这是一种支持多个目标处理器,采用项目模式对应用程序进行管理,为用户提供便捷窗口界面的开发环境,开发与调试方便快捷,通用性好,功能强大。中央处理软件流程图如图4 所示。
图4 中央处理软件流程图
3.2 电缆防盗软件
城市路灯监控与防盗系统终端控制器通过对防盗模块监控端巡检,如果发现电缆末端电压检测信号异常,RTU 立即向主控中心发出报警信号。电缆防盗软件程序流程图如图5 所示。
图5 电缆防盗软件流程图
4 结语
根据GSM无线通信技术与微处理器技术,并结合ZigBee无线模块组网技术,设计了城市路灯监控与防盗系统。该系统改变了传统城市无线路灯控制器的管理方式,实现了城市路灯的实时监控、节能调控以及远程报警功能,具有技术先进、价格低廉、维护便捷的特点,在城市路灯监控与防盗方面有很好的应用潜力。
0 引言
目前,我国一些地方利用从国外引进的农业节水灌溉系统,对于灌溉水平和水资源利用率的提高起到了一定的积极作用,但由于系统成本过高、参数标定不完整、缺乏相对应的高级决策功能、系统维护和更新难以保证等众多的问题限制了农业节水灌溉系统的使用和大面积推广。针对目前的现状开发基于ZigBee无线模块的智能节水灌溉系统,对提升节水灌溉农业技术的高科技含量,建立适合我国国情的节水灌溉农业技术体系。
本文以ZigBee无线模块技术、GPRS技术为核心,实时采集田间土壤温度、湿度等数据进行ZigBee数据采集,完成智能节水灌溉系统的应用研究,监测土壤的墒情和农作物的生长,实现节水灌溉管理智能化的设计思想。
1 ZigBee简介
ZigBee 技术的前身是“HomeRFlite”技术,其核心协议由2000 年12 月成立的IEEE 802.15.4 工作组制定的,高层应用、互联互通测试和市场推广由2002 年8 月组建的ZigBee 联盟负责。ZigBee 强调低成本、低耗电、双向传输、感应网络功能等特色。IEEE 终将ZigBee 接纳为IEEE 802.15.4 的标准与ZigBee 联盟共同致力于WPAN的标准制定。ZigBee 作为一种无线连接,可工作在2.14GH(全球流行)、868MHz(欧洲流行)和915MHz(美国流行)3 个频段上,分别具有最高至250 kbit/、20 kbit/s、40 kbit/s 的传输速率,它的传输距离在10~75m的范围内,但还可以继续增加。依据发射功率的大小和应用模式而定,1台ZigBee设备可以连接多达254个同类的设备。
2 智能节水灌溉系统的总体方案设计
智能节水灌溉系统以ZigBee无线传感器技术为核心,综合利用无线网络技术、GPRS技术、Internet 技术、节水灌溉技术和应用自动化控制技术进行精准农田信息(田间土壤水分、温湿度、雨量、蒸发量等)采集,通过Internet 网络平台、网络平台灌溉管理系统,实时远程监测作物的需水和生长状况,智能决策并实现节水灌溉系统电磁阀实现自动控制,使传统的灌溉系统实现了由静态向动态“人工智能”的转变。智能节水灌溉系统总体方案结构如图1所示。
图1 ZigBee 智能节水灌溉系统结构图
3 系统功能模块设计
3.1 灌溉实时数据采集模块
系统灌溉实时ZigBee数据采集系统由田间土壤水分监测传感器系统、温湿度监测传感器系统、雨量蒸发量监测传感器系统组成。这个系统的功能是,实时采集灌溉区域各个传感器数据,通过ZigBee数传模块网络传递到数据接收系统。
系统由温度、湿度ZigBee数据采集与数据发送端和数据接收端两部分组成,发送端由测温电缆、采集器、检测分机组成,接收端由微型计算机、检测主机组成。每一个采集器可接多个传感器,一台检测分机最多可驱动16 个采集器。接收端的微型计算机主要进行温度数据存储、分析、管理,检测主机根据计算机给出的检测命令向各检测分机按顺序发出各种命令,同时接收各分机发送的传感器数据传给计算机。通信采用时分复用技术,既检测主机通过扫描的方式与各个发送端进行点对点双向通信。
3.2 数据通信模块系统
ZigBee 无线监测主要由分布在监测区域的各种水位计、雨量计和闸位计组成,各测量单位都配备有低成本的ZigBee无线模块远端节点用于无线网络上传数据; 监测区域内也按照距离的需要分布有ZigBee无线模块路由节点组成了无线ZigBee数传网络,所有的水文数据都可以通过这一网络上传到ZigBee 中心节点,其覆盖范围几乎可以无限的扩展;它无距离限制,且无需网络规划、几乎不需要维护;所构建的ZigBee 网络既可以是星形拓扑,也可以是网状网络拓扑,不论是哪种拓扑结构的ZigBee 网络,根据实际的组网需要,设计合理的网络结构。接收来自ZigBee无线传感器的采集数据,或发送来自网络传递的数据,通过数据转换,传输到远程计算机系统或接受远程监控命令。把数据接收系统采集的雨量蒸发量值、温湿度等数据和嵌入式计算机系统的内根据不同作物的土或灌溉对象设置灌溉参数值进行数值分析计算,决定是否灌溉,把判断结果输出到数据发送系统。由采集数据数值计算与处理系统的功能是将计算机判断与结果输出的结果转换成无线控制指令,发送到控制系统。
3.3 GPRS数据终端模块系统
本系统数据采集主要由GPRS 数据传输终端、监控终端、GPRS网络以及地面监控中心等部分协作完成。其中,灌溉系统监控终端完成数据的采集与处理工作,采集到的数据通过ZigBee 无线传感器模块与GPRS数据传输终端相连接,并通过GPRS数据传输终端内置的嵌入式处理器进行处理以及协议的封装,然后发送到GPRS网络,GPRS网络通过串行通讯方式与地面监控中心进行通信,监控中心接收到数据后对数据进行分析处理,并将有效数据保存到监控中心数据库中。GPRS模块主要包括数据处理模块、通信模块、模数转换模块和显示模块四部分。数据处理模块包含CPU芯片,CPU用于处理与通信模块、模数转换模块和显示模块间的数据传输,为保证数据不因为断电而丢失,采用Flash器件对数据进行存储。
4 无线测温系统的软件设计
本系统软件设计比较复杂,整个软件系统的流程如图2 所示,主要有以下几个关键函数:DS18B20 初始化及温度采集函数、发送(接收)函数、数据显示函数、串口通信函数等。
图2 无线测温系统软件流程
5 结论
本文提出一种基于ZigBee无线模块的传感器网络技术的节水灌溉系统的软件设计与实现方法,以ZigBee 数传模块为核心,结合嵌入式技术和节水灌溉技术,实现了田间土壤水分、温湿度、雨量、蒸发量等各种数据的实时ZigBee数据采集,由ZigBee无线传感器网络传输数据,通过开发节水灌溉决策系统软件计算,输出指令,自动控制灌溉的智能节水灌溉系统。
一 、温湿度度采囊系统的总体设计
协调器上电后,能够建立ZigBee无线网络,接着终端节点能查找并自动加入该ZigBee数传网络中,这时就建立起了协调器和终端节点的通信。
终端节点能够定时进行ZigBee数据采集温湿度数据,并将其通过ZigBee无线模块发送给协调器,协调器收到温湿度数据后,通过RS232通信串口传输上到PC机。系统设计原理图如图1-1:
图1-1 系统设计原理图
1.无线传感网络节点设计
针对ZigBee无线模块传感器网络的功能和组成,将传感器节点大致分成如下几个部分:ZigBee数据采集单元、处理单元、通讯单元、电源单元。无线传感器网络节点的模块如图l-2:
图1-2 无线传感器网络节点的模块
2.系统设计的主要任务
2.1硬件平台的搭建:基于符合ZigBee标准的CC2530和温湿度传感器DHTll相结合,实现系统对温湿度的ZigBee数据采集、存储和收集功能,并通过RS232与PC机相联,把收集到的温湿度数据传输到PC机中进行分析处理。
2.2软件平台的搭建:在IAR开发环境下进行传感器节点程序的编写和编译,实现无线传感器网络对温湿度数据的采集,还能实现传感器节点之间的数据传输功能。
二、温湿度采集系统的硬件设计
1.系统采集单元设计
鉴于本实验测量环境的特殊要求,需要对温湿度高精确度的测量和长期的保持工作。而温湿度传感器DHTll具有超小的体积、极低的功耗、超长的信号传输距离和卓越的长期稳定性的特点。而且DHTll是单线制串行接口,使系统集成变得简易快捷。
下表对DHTll的引脚说明作介绍:
表2-1 SHT11引脚说明
2.系统处理单元
结合本系统设计的要求和先进性,符合ZigBee标准的CC2530必然成为系统设计的核心。无线单片机CC2530是用于2.4GHz IEEE 802.15.4、ZigBee和RF4CE应用的—个真正的片上系统(SOC)解决方案。CC2530有很多个功能单元,每个功能单元模块都有自己的特性以及功能,CC2530的模块图如图2-1,但是总的来说,分为三大类:
2.1CPU和闪存:CC2530的核心是高性能和低功耗的8051微控制处理器内核,32、64、128的系统内可编程闪存。还包括一个调试接口和看门狗,片上稳压器的存在使得CC2530的工作电压稳定。
2.2外设、时钟和电源管理:CC2530用一个1.8V的低差稳压器来对数字设备和内核进行供电,具有较强的DMA功能。2个支持多种串行通信协议的强大USART保证了CC2530能够快速的进行数据传输。高级加密标准(AES)协处理器使得CC2530具有非常强的保密性。CSMA/CA选通处理器保证了数据传输具有一条良好的传输途径。
2.3无线电:CC2530使用了—个IEEE 802.15.4的兼容RF收发器。另外,通过RF内核来控制模拟无线模块。同时它提供了数据包过滤和地址识模块,这为数据的正确传输提供了保证。
图2-1 CC2530的模块图
3.通讯单元
数据采集包括温湿度传感器数据采集以及PC对数据采集和处理。系统采用的是RS232接口,它是一种双工串行通信接口,目前广泛运用于数据采集通信系统。
三、温湿度采集系统的软件设计
1.协调器的软件设计
协调器的任务主要是组建ZigBee数传网络、允许终端节点加入网络、绑定终端节点、将温湿度数据传给PC机。
首先给协调器上电,这时协调器会对硬件进行初始化,完成系统初始化,并通过搜索信道,一般是搜索特定的免费开发信道同时进行协调器地址和相关网络参数的设定,建立ZigBee无线网络。接着协调器会一直工作等待相关节点的加入,当有节点加入网络时,如果该节点发送的信息正确,协调器会同意该节点加入网络,同时分配给节点—个地址,这时该节点会发送请求绑定,协调器会响应节点的绑定请求,这样就实现两个节点的组网。对接收到的数据,在接收数据的同时,协调器还要通过通讯串口RS232将数据发送给PC机,来检测测量的结果是否符合设计的要求。协调器工作的流程图如图:
图3-1 协调器的程序流程图
2.终端节点的软件设计
终端节点的主要功能如下:自动加入网络、定时接收数据、处理和发送数据。
首先给终端节点上电,这时系统进行硬件的初始化,主要是无线单片机中微处理器的初始化。通过一系列的初始化,完成终端节点的系数设置、寄存器工作模式的设置。系统初始化完成后,终端节点会搜索网络,如果搜索到了网络,这时节点会发送加入网络的信号,在接受的协调器发送的允许节点加入网络的信号后,接着向协调器发送绑定请求,从而使协调器和终端节点建立了点与点之间的通信,最后进入时间循坏模式,节点定时进行温湿度数据的采集,并把数据发送给协讽器。在没有事情发生的情况下。
终端节点会自动进入低功耗模式。终端节点工作的流程图:
图3-2 终端节点的程序流程图
四、结论
在实验室的环境下,由—个协调器和—个终端节点构成的星型网络结构。在IAR开发环境下,通过对ZigBee无线模块的编程,实现网络的组建和ZigBee数据采集,并通过串口发送到PC机上。
经测试,系统各模块工作正常,可以实现系统组网和数据通信,能够及时、准确的获得各节点的温湿度值,实现了预期的功能。本设计利用ZigBee数传模块实现了无线温湿度采集系统方案,并完成了整个系统的软硬件设计,对ZigBee项目的应用研究具有一定的参考价值。
0 引言
ZigBee数传技术是一种应用于短距离、低传输数据速率下的新一代无线通信技术。它具有功耗低、数据传输可靠、网络容量大,兼容性、安全性强,实现成本低等特点,而被广泛应用于监控领域。通用分组无线业务(GPRS)是一种基于GSM系统的无线分组交换技术,具有充分利用已有网络、资源利用率高、始终在线、传输速率高、资费合理等特点。
GPRS通信模块可应用于远程数据监测系统、远程控制系统、无线定位系统等。近年来,随着无线传感器网络技术的迅猛发展以及人们对环境保护和环境监督提出的更高要求,越来越多的企事业单位研究环境监测系统的无线传感器网络技术。
本文采用无线传感器网络技术,使用铅尘检测装置检测空气中的铅含量,借助于ZigBee无线模块无线通信技术,传输和收集局部区域多点铅含量数据,利用移动通信网络GPRS,将局部区域的检测数据实时传输至监测中心,构建了城市空气铅尘含量的无线实时监测系统。
1 系统概述
基于ZigBee与GPRS的无线铅尘监测系统是通过高精度的铅尘传感器,采集空气中的有害物质铅,自动分析其含量;利用高速存储器将这些数据存储起来,再利用ZigBee无线模块通信技术将采集的数据传到一个集中控制点;通过数据汇总分析,形成高质量的监测数据,结合一定的有害物质指标控制数据自动报警;使系统在无人值守的条件下实时监控,逐步替代人工取样的检测方式。
2 系统分析
基于ZigBee与GPRS的无线铅尘监测系统实现了区域铅尘含量ZigBee数据采集、数据传输、监控中心数据管理与分析等功能,改进了Pro部分协议,增强了通信的稳定性,延长了ZigBee无线模块的在网时间。该系统结构见图1。
图1 基于ZigBee的铅尘无线监测系统总体结构图
其中区域ZigBee数据采集模块负责小范围区域的铅含量检测、数据汇总,而ZigBee数传模块模块将区域数据传到监控中心,同时也负责监控中心向区域传送数据。监控中心接收所有区域数据采集模块发送的数据,并能向它们发送一定的控制指令,同时还向用户提供一定的铅尘信息;它能够在无人值守情况下可靠运行,在污染严重的情况下告警。
2.1 区域数据采集模块
区域ZigBee数据采集模块主要实现检测有害物质分布较多的子区域有害物质含量的功能。本系统用于整个城市的铅尘检测,铅尘污染通常分布在城市的部分区域(例如大型冶炼厂附近)。根据污染企业分布,将城市划分为若干个污染区域,在每一个区域内设置若干个ZigBee数据采集模块;每个模块检测本区域的铅尘含量,并收集、存储相关数据。
区域数据采集模块包括大量的铅尘传感器以及ZigBee无线模块,它的稳定运行对系统来说是至关重要的,其结构如图2所示。
图2 区域采集模块结构图
图2中网状纹路的节点是由ZigBee无线模块和铅尘传感器构成的;铅尘传感器负责检测节点附近区域的铅尘,形成一定的数据量,保证稳定、不失真地传输数据;而ZigBee无线模块则负责将铅尘传感器采集的数据传送到其他地方。通过在厂区以及厂区周边布设若干个这样的节点,能够监测厂区及其附近的环境。因铅尘传感器的检测范围非常有限,为了提高检测精度,通常在小范围内布设多个铅尘传感器。
ZigBee数传模块的最远通信距离只有70 m,为了延长ZigBee数传模块通信距离,在采集节点的边缘区域再布设一个只负责传送数据而不负责采集数据的ZigBee数传模块。对某个小范围采集区域而言,该节点通常只设置一个起到数据路由作用的路由节点,图2中的空心节点就是路由节点。为了延长ZigBee传送距离,可以再布设更多的路由节点,不断增强它的传送能力,图2中虚线连接的节点便是这样的节点,通过布设这些节点,基本上满足了厂区及其周边环境铅尘的检测需求。图2中虚线连接的节点不仅起到延长传输距离的作用,而且保证了信号传输的可靠性。这里采用网状结构,将路由节点两两连接,任意两个路由节点之间都存在通路,只要采集区域中的路由节点能够接入路由网络,那么,它必能通过路由网络将数据传到目的地。只要有少数几个路由节点正常工作,路由网络便可保证采集数据的正常传输。另外,采用网状结构也给数据传输提供了若干条通道,避免出现单路传输拥塞、数据丢失等现象,也提高了通信线路的使用率和分时复用率,在一定程度上提高了通信效率和检测频率。
节点数据经过采集节点采集、路由节点传输,汇集到区域数据采集模块的核心位置即协调节点,图2中的黑色实心节点为协调节点。协调节点汇集了区域各采集节点的所有数据,经简单处理后,发至监控中心。协调节点数据处理能力是有限的,只对数据进行一定的裁剪、装帧发送。协调节点直接与外部网络连接,其他节点只在本区域模块中使用,和外部没有联系,因此,协调节点是与其他模块连接的关键。它协调其他节点,为其他节点提供安全管理、网络建立等服务。
2.2数据传输模块
ZigBee数传模块仅适于检测厂区及其周边环境的铅尘。为了满足远距离通信需求,需要加入数据传输模块。数据传输模块由GPRS模块以及GPRS网络构成。GPRS网络是中国移动公司提供的无线通信网络,本系统仅使用了它的网络传输功能。只有通过GPRS网络,区域采集数据才能高速、安全地传到监控中心。如果没有该网络,GPRS无线模块将无法工作。
GPRS模块是该系统的关键部件,区域数据在协调节点汇总后,通过GPRS模块转发至监控中心。GPRS模块转发的是某个区域的所有检测数据,这些数据只是单个区域数据的汇总,如果将这样的数据直接发至监控中心,则监控中心无法区分数据来自哪个区域模块。为了区分不同区域的数据,在发往监控中心之前,对数据进行汇总、装帧处理。
在数据帧中添加帧头、帧尾、帧长和区域标识,以便区分数据来自哪个区域。考虑数据传输的可靠性,还可在数据帧中加入帧序、时间戳等,以便在数据传输出现延迟时重传数据。
GPRS无线模块可以采用短消息方式和数据链路方式传输数据。短消息方式又分为传统的短信和承载在GPRS网络之上的彩信业务两种方法,为了保证实时传输数据,本文采用彩信传输方法。单次采集的数据可以一次发送完毕,这样既可消除因多次发送数据出现的误码现象,降低数据重传的概率,也便于监控中心对区域一次数据的处理。
2.3监控中心模块
监控中心模块是系统的集中控制中心,它包括数据服务器以及由路由器、集线器构建的功能子网,它的功能结构如图3所示。
图3 监控中心结构图
监控中心模块主要负责收集各个区域的数据,并分析、处理收集的数据,同时,也能设置通信模块参数、区域ZigBee无线模块及铅尘传感器的参数。数据采集器负责收集各区域监测数据,并将收集的数据存储到SQL SERVER数据库中。它与GPRS模块直接相连,数据采集频率较高,为了保证数据采集的实时性,它只具有数据采集及存储功能。
就数据采集而言,数据采集程序需要专门设置一个线程,以单独实现采集功能;采集频率要控制在秒级以下,防止因数据采集频率过低而丢失数据。对于采集器程序来说,除了采集线程、存储线程外,不要开辟过多的线程,以免影响采集线程。
另外,在系统的起初设计阶段,监控中心只需要一个GPRS模块,所有的区域数据通过这个GPRS模块传输数据;这将造成数据采集的负担,容易引起数据丢失。为了消除这种现象,可以在监控中心增加多个GPRS模块,将GPRS模块划分为若干个子模块,实际上增加的GPRS模块只是逻辑上的模块,监控中心的一个GPRS模块对应一个逻辑模块。这样可以减轻单个GPRS模块的压力,提高数据采集效率。
该部分设计可由图4说明。监控中心数据采集程序控制m个GPRS无线通信模块,这m个模块负责传输采集点区域模块采集的数据。每一个区域模块包含若干个采集区域,例如,区域模块1包含区域A、B、C,模块2包含区域D、E、F;与之对应的是监控中心模块1负责与区域模块1通信,即区域A、B、C的数据发到模块1。这样划分,监测的26个区域分别由监控中心的m个模块负责,分区域传输数据,提高了传输效率。但要注意,划分监测区域后,发送数据时,数据帧格式需要附加逻辑模块标识,以保证各模块数据之间的协调性。在采集监测区域数据后,数据采集器可采用原始数据存储方式存储这些数据。
图4 通信模块绮构图
另外,由于监控中心要向监控区域下发控制指令,而传输下发指令仍然要使用GPRS模块,需要该程序具有下发指令功能。可将控制指令分发在数据库中,附加相应的标识,让采集程序判断是否需要下发指令数据,如果需要下发则自动下发。数据采集器主要负责检测数据的采集、控制指令的自动下发,而数据分析控制器主要负责采集数据的分析以及控制指令的生成。数据分析主要是实时显示区域数据,以便直观地看到污染数据,当实时数据超过指标控制阈值时,立即告警。另外,它还可汇总实时数据,绘出污染的阶段曲线。数据采集器、数据分析控制器的稳定运行有赖于数据服务器。数据服务器主要存放系统使用的数据库。该数据库主要包含实时数据、统计数据以及控制指令。另外,也需要重视数据库的日常管理,特别是告警的使用。
为了能够远程地使用该系统,监控中心还设置了其他计算机及网络互联设备,所有接入监控中心服务器的计算机都可以浏览监控信息,并发送一定的控制指令,但对于数据浏览以及控制指令下发需要严格控制,需要设计用户权限,以便合理控制。
3 系统实现
本系统主要分硬件、软件两部分。硬件部分采用铅尘传感器及ZigBee无线模块,主要完成接口电路设计、ZigBee协议修改任务和实现通信模块串口控制、铅尘数据监测等功能;软件部分实现区域、城市数据采集及分拣、数据分析及显示等功能。铅尘数据监测及节电控制选用韩国SYHITECH的DSM501粉尘传感器。该款传感器采用粒子计数原理,输出PWM脉宽调制信号,可灵敏地检测直径1um以上的粒子,如香烟、灰尘、霉菌、孢子等。
铅尘数据监测依赖于被检信号,本系统使用传感器提供的PWM信号,通过检测PWM信号获得铅尘含量数据。
通过检测占空比即检测正负脉冲时间,实现PWM信号检测功能。考虑到节电效果,需要在指定时间开启/关闭传感器,在开启传感器时间段内测量占空比。占空比测量过程见图5,等待正跳变到来时开始记录时间,直到负跳变到来时停止记录正脉冲时间;等下一个正跳变到来时停止记录单周期时间。用正脉冲时间除以单周期时间即得占空比。
图5 铅尘监测流程图
一般一个周期为30 S,为了增强测量的准确性,测量多个周期的占空比。将检测数据装帧并发至服务器端的协调器,数据帧格式及说明见表1。
表1 数据帧格式及数据说明
系统通过配置ZigBee协议,实现硬件节电控制。ZigBee协议中主要设置预编译选项POWER_SAVING以及将f8wConfig.cfg中的RFD_RCVC_ALWAYS_ON设置为FALSE。另外,需要设置预编译NV_RESTORE,让终端能够记录网络状态,防止断网再次重新搜索。系统通过ZigBee的IO口继电器实现传感器的通断电功能。
3.1 区域数据采集及分拣
通过与串口连接的多个协调器采集区域数据,传感器终端通过路由或直接将数据通过ZigBee协议传至协调器,协调器通过串口将数据传至计算机。
区域数据采集模块首先为每个串口开辟线程,轮询访问串口,读缓冲;如果有数据则按照字节接收数据,按照上报数据帧格式处理数据。解析格式正确的数据帧,并存至数据库中。详细流程如图6所示。
图6 区域数据采集及分拣流程图
3.2 区域数据分析及显示
该部分实现了实时显示监测数据及告警功能,也能查询历史数据的图形界面,可以灵活配置相关图形。实时监测界面如图7所示。
图7 区域数据分析及显不
3.3 区域数据上报及城市数据接收与分拣
该部分通信利用GPRS网络,相应成本较高,只选择上报告警数据。将多个告警数据依次装帧,在不突破短信限制的前提下,尽量装入同一帧,以减少通信成本。主要技术有手机初始化配置、短信接收提醒、短信接收、短信发送等。手机初始化设置包括移动信号检测、短信模式设置、存储位置设置、短信中心号码设置、新短信体型模式设置等。数据接收部分需要开辟线程,接收新短信提醒。如有新短信到达,开始读短信,并解析短信数据帧,将数据正确入库
。
图8 GPRS接收端界面
数据上报部分同样需要开辟线程,定时判断是否有新的告警数据。如有,将告警数据装帧,并通过短信发至服务端。相关程序截图如图8所示。城市数据分析及显示与区域数据分析及显示部分相似,在此不再赘述。
4 结束语
本文利用传感器技术与ZigBee无线模块技术,研究了无线监测系统。采用ZigBee数传模块和网状拓扑布设传感器节点,实现了某高污染企业厂区及其周边环境的ZigBee数传采集监测功能;利用GPRS技术,综合无线监测了多个企业厂区及其周边环境,实现城区环境污染的无线监测功能;采用实时远程监控,提高了工作效率,节省了人力资源;采用无线方式,增强了数据传输的可靠性;采用ZigBee无线模块通信方式,扩大了监控范围,降低了能耗,节约了能源。
本系统可实现无线远程监测高污染企业及其周边环境的功能,为环保部门治理环境提供了技术支持。使用结果表明,系统运行稳定、操作简便,提高了铅尘监测工作效率,具有重要的推广应用价值。
1 引言
在温室农业生产过程中,温度与湿度等环境参数直接影响到作物的生长。因此,环境的监测与控制是保证温室生产优质高效的重要手段。而大部分的温室监控系统采用PLC温室控制和现场总线控制系统,这些系统具有布线费时、抗干扰性差和成本高的缺点,制约了其推广应用。再加上目前针对特定地区(如我国最北部地区)气候存在着温度低、昼夜温差大、光照强度大等条件研究较少,使得环境监测的可靠性、稳定性成为急需解决的问题。
结合实地考察与测量,引入ZigBee数传技术到温室栽培中,建立温室环境监控系统,可以极大的节省劳动力,再加上低功耗、低成本等优势,可广泛应用于现代工农业自动控制,是信息技术在农业应用中的极佳选择。
2 系统总体方案
为保证在监测过程中数据稳定,避免局部数据代表温室数据,所以在每个温室中将安装多个ZigBee无线模块传感器节点,每个ZigBee无线模块节点采集2种环境参数。总体系统架构如图1所示。
图l 温湿度监测系统
每个温室的不同地方都有ZigBee数据采集终端节点,作为移动数据检测节点,每个ZigBee数据采集节点具有采集环境数据并发送给路由的功能。且在每个温室包括一个路由器,用来转发数据,并识别和自组网络节点。
路由器将本温室的传感节点数据接收后并发送给协调器。协调器负责整个ZigBee无线网络的建立和维护,收集ZigBee网络中各个ZigBee无线模块节点发出的信息,通过RS232接口把数据传到上位机。PC主要负责处理数据并显示,同时通过发送指令控制整个系统的运行。(如果监测节点距离太远时还可以考虑增加一个Router节点用于路由转发)。
3 系统硬件设计
整个系统硬件设计主要包括ZigBee网关(协调器)和终端节点2部分。
3.1 ZigBee网关节点
模块网关节点包括CC2530模块、电源模块、串口模块、USB接口、调试接口和3.3与5.0V电源转换模块。其中电源模块通过电压转换盒给节点提供3.3V工作电压。采用的是可;即联科技的JL13 ZigBee2530模块,选取支持最新的ZigBee协议,移植Z-Stack协议栈较为方便的CC2530射频芯片。该温湿度监测系统的硬件构成如图2所示。
图2 ZigBee网关硬件
3.2 ZigBee终端节点模块
在终端传感器节点中,除了网关节点原有模块之外,只需在CC2530的I/0 增加一个传感器。采用温湿度传感器SHT10。根据需要,终端传感器节点分布在监测环境中,通过SHT10实时进行环境参数的ZigBee数据采集,经CC2530处理后由射频芯片发送。电路如图3所示。
图3 SHT10连接
P1的2、3引脚对应CC2530的13、12引脚。为了确保芯片和电源系统工作的稳定性,采用BL8555低压差线性稳压器,在1.2V~5.0V输出电压范围内给电路提供多种固定电压。
4 系统软件设计
整个监控系统软件设计由ZigBee网关软件和终端节点软件2部分组成。协议栈的设计直接关系到整个网络系统的运行。根据ZigBee星型网络,协调器与终端设备在网络中的功能、地位有所不同。ZigBee网关软件和终端节点软件这2部分都需要向其ZigBee无线模块移植ZigBee协议栈(Z-Stack),尤其是与硬件底层密切相关的PHY层和MAC层的实现,它为上层通信应用提供API接口函数。温湿度采集系统程序设计是基于Z-Stack协议栈的SampleApp实验进行的,在协议栈的基础上,实现无线网络的组网及通信。在节点软件设计中,为了方便下载与调试,加入了ISP编程接口,可以对采集的数据信息进行处理。
4.1 网关节点程序设计
ZigBee的通信方式主要有点播、组播和广播3种。
在本设计中采用了周期定时广播发送的方式。其主要负责将终端节点采集到的数据发送给网关节点(协调器),再由协调器通过RS232串口上传到PC串口调试助手上。
协调器节点启动后,根据自身的IEEE地址随机确定一个PAN ID,并自动形成网络,同时允许其他节点加入到该网络,并负责给加入网络的设备分配一个16位短地址、配置网络参数、维护网络正常运行、接收路由器和终端节点发送来的数据。协调器作为整个网络的核心,主要任务即是搭建ZigBee数传网络,实现数据的发送与接收。发送部分协调器在建立网络过程中,需要登记事件、定义任务ID、设置事件编号和设定发送周期。接收部分需要完成2个任务:读取接收到的数据;把数据通过串口发送给PC。协调器节点工作流程如图4所示。
图4 协调器节点工作流程
4.2 传感器SHT10程序设计
终端节点主要功能是加入已经存在的ZigBee数传网络,接收命令发送数据,但是不能转发数据。温湿度信息采集一般分为自动采集和手动采集。将终端定时器设定一个初值,然后启动定时器,每次到达定时设定值时触发中断,开始测量温湿度,测量结束后由CC2530将数据发送出去,此后终端进入低功耗模式,定时器重新装载,计时继续,周而复始,实现自动采集;手动采集是由PC发指令给指定终端,终端识别出该指令后启动传感器,开始温湿度采集,将数据处理后再传给PC。下面对传感器节点主要代码进行说明。
1)传感器的启动传输程序传感器上电后,进入11 ms的“休眠”状态。首先采用一个延时命令来完成系统初始化延时,然后由CC2530给SHTl0发送“启动传输”时序,唤醒芯片。随后,SHTl0接收由CC2530的微控制器发送的命令。
数据传输初始化由一组“启动传输”时序来表示。用0表示低电平,l表示高电平时,当SCK时钟为1时DATA翻转为0,紧接着SCK变为0,在下一个SCK时钟为1时DATA翻转为1。这部分主要由void s_transstart(void)函数完成。
2)SHTlO写数据时序系统采用按位写的方式改变控制线SCK和DATA的状态。对于SHT10,DATA在每个SCK时钟下降沿之后写入一位数据来改变状态,并仅在SCK时钟上升沿有效。数据传输期间,在SCK时钟为高电平时,DATA必须维持稳定。否则可能出现写数据时序的错误。写数据时序主要由char s_write_byte(unsigned char value)函数来完成。
3)SHTl0读数据时序读数据程序主要由函数char s_read_byte(unsignedchar aek)完成。ack为读数据确认控制字,初始变量i=0x80,val=0。当向SHTl0传感器写入测温控制字0x03这个8位数时,系统将进行温度的测量工作,当写入0x05时,系统将进行相对湿度的测量。
4)通信复位程序假如与传感器SHT10的通信发生中断,可以通过随后的信号序列将串口复位,保持DATA为1,触发SCK时钟9次或更多。在下1次指令执行前,发送1组“启动传输”序列。这些程序序列只对复位串口有效,而状态寄存器内容仍然保留。该复位程序由void s_connectionreset(void)函数来完成。
5)SHTl0温湿度信息处理该程序读取指针p_shiduzhi、p_wenduzhi中的湿度值和温度值。该部分由void calc_shtl0(float *p_shiduzhi,float *p_wenduzhi)函数来完成。信息处理中设置SHTl0的工作精度为14位温度和12位湿度测量,进行相对湿度计算。
至此,ZigBee数据采集传感器节点程序设计完成。ZigBee数据采集传感器节点作为温室监测系统的基本组成单元,需要具备环境的参数采集、数据收发、数据处理、无线通信等功能。在实际的应用中只需将CC2530模块+传感器即可组成EndDevice节点或者Router节点。这2种节点均可与Coordinator直接通信进行数据采集,故将以上2种节点统称为传感器节点。
5 系统测试与分析
本测试阶段是在实验室环境中完成的。在实验室内部署了3个ZigBee无线模块,包括1个主节点,2个子节点。
首先需要按图5所示将硬件系统连接起来,接着需要做的就是把源程序下载到无线ZigBee开发系统中并检验系统是否正常工作。
图5 无线ZigBee开发系统下载连接示意
然后,采用星型网络拓扑结构组成一个简单的ZigBee网络。这3个ZigBee数传节点(协调器与PC连接,路由器增加ZigBee数传网络的传输距离,终端节点采集温湿度信息)的短地址随机分配。节点之间的通信距离为10 m,系统启动后自动形成网络。打开串口终端COM5(串口号根据硬件驱动接口的差别而有所不同),设置波特率为38 400 b/s、无奇偶校验、8位数据位、1位停止位、无硬件流模式,终端节点发送来的温湿度数据如图6所示。
图6 终端节点温湿度数据
图6是一个终端节点接入网络时的通信情况。文中所采集的数据均为空气中的温、湿度信息,从图中可以看出,终端设备的短地址为0x796F,温湿度的精确度达到小数点的后4位。定时器周期为5000 ms,温湿度间隔5 S采集数据一次,该系统实现了环境温湿度数据采集功能。与系统采集数据时的实际情况相比较,其实际温度测量误差为0.8℃,相对湿度测量误差为4%RH。由于在测试过程中会有一些硬件电路的内部因素存在,所以该系统测得的温度比实际温度值高0.7~1.2℃。这与SHTl0温湿度传感器技术指标吻合,可以实现系统温湿度数据采集的功能。
6 结论
结合实地考察的温室环境,采用ZigBee无线模块技术应用于温室监控系统。利用无线ZigBee数据采集传感器网络对温室温湿度等信息进行采集,设计了无线传感器组网方案,完成了传感器节点软硬件设计,从而实现无线ZigBee数据数据采集与传输功能。测试试验表明:采用ZigBee数传模块进行组网和数据采集,有较好的稳定性和良好的实用性。对不同规模的温室,该系统可以灵活改变网络规模,能够满足温室监测系统的需要。由此可以得出:将ZigBee数传技术为基础的监测和控制系统引入到现代农业温室监测系统是一个很好的解决方案。
节能减排是我国长远的政策方针,而对于供热行业来说,节能的潜力又是巨大的。长期以来,我国城市室内采暖系统在设计上基本上都采用单管水平串联的系统方案进行设计,然而该方案不便于住户进行热量调节,并且现今绝大部分的暖气费用是按面积进行集中收取,存在很大的不合理性,这两个主要因素造成了极大的供热用热浪费。随着人们生活水平的不断提高和供暖行业的不断发展,对供暖系统实现分户计量和独立控制的呼声越来越高,本文针对分户计量中的无线测温系统提供一个可靠的设计方案。
ZigBee数传技术是一种短距离、低功耗、低复杂度、短时延、低速率的大容量无线网络技术,是目前短距离无线传感器网络的首选技术之一。ZigBee数传模块组网方式丰富灵活,可根据实际应用来选择。
1 系统架构设计方案
该设计以CC2530 无线单片机为核心, 整个收发系统由主站( 监控中心)和子站( 测温终端)组成( 如图1所示) 。在正常环境下,将温度传感器采集到的温度数据处理后通过ZigBee无线模块发送给主站节点,完成主站节点与子站节点的通信过程。结合串口通信技术,通过RS-232 串口线连接主站上位机( PC) ,上位机接收并存储数据后,根据住户在冬季实际获得的温度值,结合一系列算法以及当地制定的收费标准,就可以简单地计算出住户在冬季的真实采暖费用,真正做到收费公平合理。
图1 收发系统
2 硬件设计
子站( 测温终端)由ZigBee数据采集、无线通信和处理器等模块构成,其任务是采集待测点的温度,并将温度数据通过无线通信网络发送至主站中。主站是由微处理器和无线通信模块组成,主要负责接收各节点的温度信息,并通过RS232 串口将其传送至服务器上进行显示和处理。另外,根据实际需要,也可在终端节点上安装显示模块或报警模块,以方便网络安装测试。
2.1 数据采集模块
数据采集模块又称温度采集节点,温度传感器选用美国Dallas 公司生产的DS18B20,它可直接将温度转化成串行数字信号进行处理,无需进行模数转换,处理器可以直接读取温度数据。该温度传感器测量范围为-55℃~+125℃,温度转换位数可以选择9~12 bit ,对应的温度分辨率分别为0.5℃、0.25℃、0.125℃和0.062 5℃( 温度/数据关系如表1 所示),电压范围为3.0 V~5.5 V,可用数据线供电。DS18B20 具有微型化、精度高、低功耗、响应时间短和抗干扰能力强等特点,适用于本设计的温度采集模块。值得注意的是,与CC2530 的I/O 端口连接时,需要上拉一个4.7 k赘的电阻,原理图如图2 所示。
表1 DS18B20 温度/数据关系
图2 温度采集节点原理图
2.2 ZigBee无线模块
ZigBee无线模块是基于CC2530 芯片实现的( 如图2 所示) 。其主要特点是体积小、高性能、低功耗、具有优良的无线接收灵敏度和强大的抗干扰性。CC2530 是一个兼容IEEE 802.15.4 的片上系统, 支持专有的802.15.4协议,此外还集成了符合ZigBee技术2.4 GHz 频段RF无线电收发模块。CC2530 工作电压范围内2.0 V~3.6 V,工作温度为-40 ℃~+125 ℃, 休眠时功耗电流可降低至0.6 uA。本设计中的网络通过ZigBee数传模块将多个温度采集节点组建成星形网络( 如图3 所示) ,将各个ZigBee数据采集节点采集的温度数据实时发送至协调器,并由协调器通过串口汇聚到主站上位机中,从而实现温度数据的实时采集。
图3 星形网络结构示意图
3 软件设计
系统的软件设计包括数据采集、通信控制和监控中心3 个部分。其中,数据采集程序运行在子站的微处理器上,其主要任务是负责采集温度数据并实现无线收发;通信控制程序运行在主站的微处理器上,该程序需要实时地处理从子站节点传来的温度数据,并且还要控制它们按照上位机的操作指令进行工作,它是整个系统程序的核心;监控程序运行在上位机中,它会监视节点的工作状态,对子站发送的温度数据进行有效处理。
3.1 温度采集节点软件设计
图4 DS18B20工作流程图
DS18B20 工作流程图如图4 所示, 其主程序( 仅测温)如下。
void main ( )
{
……;
init ( ) ;
while ( 1 )
{temp_tran ( ) ;
value1=get_tmp_value ( ) ;
temp1=abs ( temp_value1 ) ;
}……;
}
另外,向DS18B20 内写数据函数编辑如下( 严格按照时序图进行编程) 。
void write_byte ( unsigned char dat )
{……;
for ( j=0 ;j<8 ;j++)
{
b=dat & 0x01 ;
dat>>=1 ;
if ( b )
{
ds=0 ;
i++; i++;
ds=1 ;i=8 ;
while ( i>0 )
i--;
}
else
{
ds=0 ; i=8 ;
while ( i>0 )
i--;
ds=1 ;
i++; i++;
}
}
值得注意的是,在温度转换函数中,需要添加“跳过序列号”命令,即:
void temp_tran ( )
{
……;
write_byte ( 0xcc ) ;
……;
}
本设计于每日5:00 、13:00 和21:00 3 个时段进行温度采样,采用DS12CR887 时钟芯片进行计时。参考该芯片的技术手册,依据DS12CR887 时钟芯片的时序图,可写出对应总线( 选用intel 总线)读数据与写数据的函数,如下所示。
void write_ds ( uchar add ,uchar dataa )//intel 总线写数据
{
ds_cs=0 ;ds_as=1 ;
ds_ds=1 ;ds_rw=1 ;
P0=add ;
ds_as=0 ;
ds_rw=0 ;P0=dataa ;
ds_rw=1 ;
ds_as=1 ; ds_cs=1 ;
}
uchar read_ds ( uchar add )
{
uchar ds_dataa ;
ds_cs=0 ;ds_as=1 ;
ds_ds=1 ;ds_rw=1 ;
P0=add ;ds_as=0 ;
ds_ds=0 ;
P0=0xff ;
ds_dataa=P0 ;ds_ds=1 ;
ds_as=1 ;ds_cs=1 ;
return ds_dataa ;
}
另外,该时钟芯片时、分、秒的读取函数分别为shi=read_ds( 4 ) 、fen=read_ds ( 2 )和miao=read_ds ( 0 ) 。
温度节点作为终端节点,通电后加入由协调器建立的ZigBee网络,其中协调器负责建立网络和接收终端节点加入。温度采集节点和网络协调器之间构成简单的星形网络( 如图3 所示) ,温度采集模块的工作流程如图5 所示。
图5 温度采集模块工作流程图
3.2 协调器设计
协调器的主要功能有:收集各个节点的温度数据, 并将其通过串口传至上位机中进行数据处理;将上位机的监控需求传到协调器中,并通过ZigBee网络发送到终端节点上,图6 仅展示上述第一种功能的流程图。
图6 网络协调器工作流程图
接收系统接收到ZigBee数据采集的温度数据后,再通过RS-232 串行通信接口与上位机相连,将接收的温度数据实时存储在上位机中并显示在上位机界面上,方便后期处理。上位机数据处理流程如图7 所示。
图7 上位机数据处理流程图
4 系统测试
由于家用水暖系统有进出水管,为了测量温度差,将两个温度采集节点标号后分别贴附在进水管和出水管上,把每次测得的两组数据发送到上位机端, 我国供暖时间( 不计特殊情况)为11 月15 日至次年3 月15 日,供暖时间为120 天,进水管和出水管的数据均为360 个,结合供暖热量算法以及当地供暖收费标准,将这些数据在上位机中做最优计算,再根据每家每户的最终数据进行精确收费。
本设计采用串口调试助手V3.7.1 进行系统测试,端口参数如下:比特率为9600 b/s ,数据位为8 bit 、停止位为1 bit ,校验位为NONE。为了验证该设计能否正常工作,搭建了如图8 所示简易场景进行测试。
图8 测试场景示意图
从串口调试助手窗口中,可以看到两个节点的温度,如图9 所示。
图9 测试结果
通过分析了ZigBee网络相关特性, 以CC2530 为核心、DS18B20 为温度节点, 设计实现了基于ZigBee无线模块的温度采集与传输,阐明了硬件框架设计以及ZigBee数传模块网络组建流程,完成了对多个不同位置的温度ZigBee数据采集数据采集的设计要求。本系统具有通信可靠性高、结构简单及成本低的特点,通过实验验证,在此基础上经过系统后期完善与调试之后,便可投放给用户进行使用。
摘要: 本文以声发射技术为依托,设计了一种基于Zigbee无线模块 的无线声发射信号采集系统,通过声发射信号的特征参数分析,对气体泄漏的严重性进行评估,取得了很好的效果。 1 系统构建概述 容器泄漏引起内部介质与泄漏孔的摩擦而激发应力波,携带泄漏源信息(如泄漏的大小、位置等)的应力波沿管壁传播,利用声发射传感器采集该应力波信号,并分析处理,就提取出管道泄漏信息,从而实现声发射泄漏检测的目的。 图1 系统...
阅读全文
摘要: 0 引 言 随着社会的不断发展及城市数字化进程的不断加快,城市的设施建设也是越来越多。如埋于地下的电力电缆管线,给水排水管线,天然气、煤气管线,通信电缆等。为了方便对其进行检查和维修,所以每隔一定的距离就设有一个检查井。大量的检查井构成了城市里随处可见的井盖群。然而井盖的破损及丢失会带来严重的安全隐患:如汽车陷入检查井,路人落井等,给我们的人身安全和财产安全带来了严重的威胁。为了减少灾难性事故的发...
阅读全文