独立空间中温湿度监测系统设计探析

独立空间中温湿度监测系统设计探析

本文设计了一种基于Zigbee和WIFI的无线温湿度监测系统,可实现相对空间中不受环境约束的在任意位置进行温湿度采集,充分检测空间温湿度的数据和变化趋势.文中介绍了系统的总体结构和软硬件设计,通过终端设备、智能网关、实现了温湿数据的无线传输和实时监控.经过实验测试,该系统能够在独立空间中进行稳定的工作。相对独立空间(RIS)是指空间位置独立、内部环境不统一、与外部环境关联性低的空间环境.我们每一个人实际上每天都在这样的环境中进行活动。其中接触最多的是每个人居住的家庭生活空间,这个空间是以家庭的生活的空间作为独立单位、社区中的每一户居民都在自己的家庭环境中生活。除此之外,还有许多的远离人民居住位置的的农作物种植大棚、占地面积宽广的机械工厂、耸立在城市之间提供工作办公的写字楼等等。随着新一代信息技术的发展,相对独立空间也逐渐向智能化的方向进行发展。比如智能农业、智能家居、智慧工厂的目标就是利用物联网、云计算、大数据、移动应用等实现物理空间的关键信息的实时感知、动态监测、深度分析。在这些智慧化推进的过程中,温湿度数据的采集与监控作为其中非常重要的一环也遇到了很多的问题,其中在原有环境中的智能化的升级改造过程中的综合布线、终端设备放置受限、数据采集不均衡无法作为有效诊断数据等矛盾更为突出。面对这种痛点,以及更好的与当前的智能化升级做兼容}P}匹配,本文专门对多点分布式温湿度数据采集、传输、分析的整个过程进行研究和分析,结合现有的物联网技术和硬件设备模块,设计了一套基于Zigbee和WIFI的温度监控系统。

1系统结构

以Zigbee和WIFI为核心研究温湿度监测系统主要由感知层、网络层、应用层三个模块组成。系统结构如图1所示。感知层的每个终端节点在启动运行后会主动扫描并加入Zigbee网络。定时获取传感器数据通过网络实现数据的无线传输,每个终端节点的供电采用锂电池供电,无须额外的布线操作。网络层负责整个Zigbee网络的创建、构建终端设备节点局域通信网络。除此之外还会创建基于AP模式下运行的WIFI网络,可移动设备的APP程序通过WIFI网络与基于Zigbee的无线传感网进行数据的通信。应用层作为整个系统的最上层,按其功能进行划分两种:本地可移动终端,负责温湿度数据的展示和历史记录存储,这个设备会放置在独立空间中。外部可移动终端,是指进入该空间的用户可通过自己手持的终端设备查看实时的温湿度数据。这两种终端设备的运行的软件都是基于Android的APP程序。

2系统设计与实现

2.1系统硬件设计。2.1.1温湿度采集节点硬件设计。温湿度采集节点硬件模块采用模块化的设计方案,以降低系统功耗的同时且满足体积小、功耗低、抗干扰能力强,建立网络节点为出发点进行设计。硬件结构引脚连接图如图2所示。终端节点模块硬件以TI公司推出片上系统CC2530F256,基于此能够降低模块的硬件成本和功耗。该模块同时还结合了业界领先的黄金单元ZigBee协议栈(Z-StackTM),最大可编程输出功率为4.5dBm。电源模块以输出电压为9V的6F22型的电池供电,经过三端稳压器AMS1117-3.3和AMS1117-5.5多路输出5V和3.3V的电压来。温湿度采集模块,为了更好的适应应用环境,选择了含有己校准数组信号输出的温湿度传感器AM2302,该模块应用专用的数字模块采集技术和温湿度传感技术,响应快,抗干扰能力强,通过单总线模式与CC2530F256的P0_6引脚进行串行通信。0.96寸的OLED屏能够在终端模块运行时显示相关的数据信息,通过IIC通信方式与CC2530的P1_6和P1_7引脚之间进行数据传递。串联1KΩ的LED指示灯,标识当前终端模块的运行状态。2.1.2智能网关节点硬件设计。智能网关节点与常见的Zigbee协调器不同,在这里负责创建Zigbee和WIFI网络且这两个网络之间可进行数据的通信,智能网关节点的硬件框图如图3所示。智能网关节点的电源模块和Zigbee模块与终端节点的设计相同。NodeMCU是一个开源的物联网平台,包含的ESP8266基于WIFI协议的无线传输模块,芯片内置32位CPU和固件化的协议栈,其中主要包括Wi-FiDirect(P2P),802.11b/g/n,Soft-AP协议栈以及内置TCP/IP协议栈。由此WIFI工作模式可分为两种情况:STA模式是将WIFI模块加入到已有的WIFI网络中进行通信传输、AP模式是将WIFI模块本身作为服务器,本系统中通过软件层将其设置为AP的工作模式,方便移动终端的的APP软件可以在空间范围内获取传感器数据。智能网关节点的NodeMCU模块采用串口与CC2530进行通信。

2.2系统软件设计。温湿度监测系统软件主要由三部分组成:温湿度采集节点程序设计、智能网关程序设计、可移动终端APP程序设计。温湿度采集节点程序主要完成对温湿度数据的采集,封装和发送等。智能网关程序主要组建Zigbee网络和WIFI网络,接收终点节点数据,并通过WIFI网络进行数据广播等。可移动终端APP程序负责接收WIFI网络中广播数据,并进行解析、显示存储等。2.2.1温湿度采集节点软件设计。温湿度数据采集节点的软件是基于Z-Stack协议进行设计的,使用IAR软件开发环境进行编码,其程序流程图如图4左侧图所示。终端采集上电启动之后,首先会进行节点初始化,这里分为硬件环境初始化和协议栈初始化。硬件初始化包括设置P1DIR,PODIR寄存器来确定CC2530的IIC通信和单总线通信的P16,P17,PO6引脚的IO方向,协议栈初始化主要是配置Z-stack协议相关参数,终端节点在Zigbee网络中工作为RFD设备。初始化结束后,终端节点开始查找当前环境中智能网络的Zigbee网络,发现相应的网络后主动申请加入,如果加入不成功则会继续加入直至进入网络。成功之后则会开启定时器获取温湿度传感器相关的数据,相关数据与节点的身份识别码(16位短地址用于在本地网络中标识设备)封装之后发送到智能网关。发数据过程防止数据丢失会对发送的数据的结果通过与智能网关进行握手验证。以保证数据能够发送成功,否则会重复发送数据。2.2.2智能网关节点。智能网关节点的软件设计分成了两部分:构建Mesh模型的Zigbee网络,新建AP模式的WIFI网络,接收终端节点发送的数据包并反馈信息,基于WIFI网络的广播数据给可移动终端设备APP。其程序流程图如图4右侧两个图所示。Mesh模型的Zigbee网络是由智能网关节点的CC2530芯片基于Z-Stack协议构建的,在系统上电完成,硬件和协议栈初始化完成之后,智能网关节点工作为FFD设备。然后开始扫描信道,寻找合适的信道ID组件Zigbee网络,网络构建完成之后开始监听是否有节点加入网络,如果有则分配相应的地址给节点。同时会开始接受节点发送的温湿度数据信息,并将接收到的消息发送响应包给节点模块,此时接受到的消息通过串口发送给NodeMCU模块。NodeMCU模块在系统上电完成,引脚初始化之后开始配置WIFI网络,并通过数组维护加入网络的可移动设备终端列表,监听串口数据,当接收到相关数据时,根据维护的设备APP地址列表发送数据到可移动终端APP。NodeMCU的软件编码是基于ArduinoIDE进行开发,下列代码为NodeMCU的创建WIFI网络的关键代码。#include<ESP8266WiFi.h>#definesoftAPName“jnzy-wsn”#definepassword“1234567890”voidsetup(){IPAddresssoftLocal(192,168,4,1);//1设置内网WIFIIP地址IPAddresssoftGateway(192,168,4,1);IPAddresssoftSubnet(255,255,255,0);WiFi.softAPConfig(softLocal,softGateway,softSubnet);WiFi.softAP(softAPName,password);//创建AP网络}2.2.3可移动终端。APP软件设计基于Android系统运行的APP为用户提供了查询温湿度数据的用户交互界面、历史记录查询、终端节点设备管理等功能。APP程序的使用多线程的编程模式创建一个网络线程专门负责接收智能网关发送的节点数据,通过回调函数函数机制更新用户界面。并保存温湿度的数据。APP界面基于MaterialDesign的设计风格增加界面的亲和性。使用第三方的MPAndroidChart图形库进行界面的绘制,并通过SQLite数据库保存数据方便历史记录的查询。APP与智能网关的数据包发送格式如表1所示。

3系统测试

将编写的代码程序下载对应的终端节点和智能网关的预备结束工作结束之后。首先对智能网关节点进行系统上电开始创建Zigbee网络和WIFI网络,等待网络创建完成之后。启动终端设备节点和设置可移动设备连接到WiFi网络,并运行APP程序。此时通过APP可查看已经开始工作的终端节点采集的数据,为了更好的标注每个终端节点,APP程序的节点管理功能可让用户给不同节点编辑修改有意的备注名字,在APP显示数据时更能直观的确定哪一个终端节点的数据设备。结语:本文主要提出了一种在相对独立空间中基于无线传输的温湿度采集的解决方案,通过CC2530芯片和Z-Stack协议构建Zigbee网络,负责终端节点的数据传输,NodeMCU模块作为可移动终端APP与Zigbee网络之间数据传递的桥梁,方便更多的可移动设备查看数据创建了AP工作模式的WIFI网络。在可移动终端的基于Android系统的APP程序和NodeMCU进行无线通信,获取、保存温湿度数据并提供非常友好的用户交互界面。通过本解决方案,可以有效的构建一个WSN网络,并且可进一步移植到其它相关环境参数的采集和传输。

作者:李汉挺 单位:济宁职业技术学院物联网研究所