基于zigbee智能无线温湿度采集系统设计
2021-06-16詹晓芸朱娟通讯作者
詹晓芸,朱娟(通讯作者)
(湖北文理学院,湖北襄阳,441053)
0 引言
随着物联网时代的到来,传统数字设备的有线连接已经不再便利,在一定程度上反而限制了人们的生活。无线传感器网络是物联网技术的关键,多个无线传感器可以对各种参数进行实时监测、感知,以便采集各种信息和解决各类复杂细小的问题。zigbee技术是近距离无线传感网络采用的主流技术,目前,zigbee技术已经开始应用在智能农业、医疗、工业生产等各方面,均构建了可靠、稳定的无线传感网络数据采集处理解决方案,实现了各个领域的智能化、精准化、数字化监控,为人们的生活带来了极大便利。
1 系统总体构成
本系统主要分为温湿度数据采集和远程数据传输两部分。如图1所示,zigbee无线网络的第一部分主要由协调器和传感器构成的终端设备组成。在数据采集过程中,终端设备不断从环境中采集温湿度,并将结果发送到协调器。同时,协调器将全方位处理接收到的数据并将其以数据包的形式传输至STM32单片机中。单片机将使用预先设计的算法处理、保存、显示数据,以提高系统数据远程传输的效率和安全性。每次GPRS模块从STM32接收数据包时,都会将数据传输到数据库中。数据管理中心进行维护,通过这种方式,用户可以轻松访问数据管理平台以获取有关当时环境温度和湿度的实时信息。
图1 温湿度采集系统的整体框架图
■1.1 zigbee网络的协调器
所谓协调器,就是网络组织的管理者。对于一般的应用模型,一旦形成了zigbee网络,其主要功能是根据扫描选择合适的参数来建立网络,每个zigbee网络仅允许一个协调器在此网络中找一条通道,随后建立一个网络信号以便于启动网络[1]。由于整个网络的起点是协调器,负责维护整个网络,并且还可以间接地址表,以及设计安全中心并执行其他操作以维持与网络其他成员的通信。如图2所示,本系统以STM32为中心,电源给系统供电后,若想从OLED显示屏上进行某些操作时,STM32会向CC2530发出相关指令,后续操作均由CC2530来控制,指令执行完毕之后,以数据包的形式将数据发送给STM32,显示于OLED显示屏上。
图2 zigbee协调器的硬件框图
■1.2 温湿度传感器模块
DHT11数字温湿度传感器是一款含有已校准数字输出的温湿度复合传感器[2]。它通过采集当前环境的温湿度,同时将数据发送至协调器以便于协调器的进一步处理。此传感器的优势在于它将电阻式感湿元件和NTC测温元件。两器件相结合从而确保传感器能高质量准确运行。所以基于其优势的合理运用,此传感器不仅可用于医疗、家庭自动控制也可以在军事等领域发挥独特作用。DHT11元器件的引脚说明:PIN1用于提供电量3V至5V;PIN2用于串行传输数据;PIN3悬空即可;PIN4接地即可。DHT11电路原理图如图3所示。
图3 DHT11电路原理图
2 系统软件设计
系统软件设计分为两部分,一部分是发射部分,另一部分是接收部分。如图4所示,发射部分用于采集数据,接收部分用于处理传感器经过zigbee网络传输过来的温度数据(数字信号),若发送成功,接收部分会对数据进行进一步处理,若发送失败,数据会等待下一个周期进行重发,数据经过单片机的有效处理后,有效信息将会显示在OLED液晶屏上。
图4 主程序的收发流程图
■2.1 协调器工作过程及节点流程图
如图5所示,协调器上电后,首先完成对STM32、OLED和UART串行通信口的初始化,并在节点被设置为协调器之后,开始建立网络,等待传感器、温度采集终端加入网络后,协调器将开始处理来自终端设备发射过来的采集数据,单片机对是否接收到数据进行一次判断,若正确接收即对数据进行处理和保存;若接受失败,数据将会在等待四个机械周期后进行重发并等待单片机接收。在单片机对数据处理和保存之后,它会将处理过的数据发送至OLED显示屏上,随后进行无线传输直至结束。
■2.2 传感器工作过程及节点流程图
如图6所示,系统的温度采集传感器节点上电启动后,它将会主动扫描指定的网络,并且向协调器发出入网请求和尝试加入网络,如果不成功,则将等待下一次扫描周期的到来,再次扫描加入网络。加入成功后,就与协调器分配的网络地址进行绑定,当传感器没有任务时就进入休眠状态,用以降低系统功耗,可以增加系统使用时间;当系统出现任务时,将会唤醒系统,传感器节点会每隔一段时间周期性的采集数据、读取周围环境温度值,并将数据打包传给父节点[4]。如果数据传输成功,传感器则会进入休眠模式,之后则等待定时唤醒;反之如若未传输成功,则会需要等待数据再次传输,直至传输成功进入循环。
图5 协调器接收过程流程图
温度和湿度是满足居住和生活舒适度的最低要求,温湿度硬件电路主要是由CC2530无线收发模块、温度和湿度传感器、电源模块几大部分组成。温湿度采集分为两个部分,第一部分为室内所有终端设备内的温湿度传感器对温湿度进行采集,若采集成功就通过ADC电压转换,将采集到的电压数据(模拟数据)转换为10进制的数据,同时将数据发送给协调器;若采集不成功就等待两个机械周期重新对数据进行采集并通过ADC转换,在zigbee设备节点进行数据发送,需经过zigbee终端设备检测是否发射成功,发射成功则由zigbee协调器接受,发射不成功则由zigbee设备节点重新发送。第二部分是协调器接收到数据后对所有的数据进行整理,并通过串口将数据传送到外接单片机STM32进行数据处理和保存,同时传给OLED进行显示。
图6 传感器节点流程图
3 系统测试
本系统在IAR EW8051环境下完成基于zigbee2007协议栈的软件开发,实现了星型组网下传感器节点(左)到协调器节点(右)的无线温度传输,测试过程如图7所示。
图7 系统测试图
由测试结果可知,系统上电后传感器节点和协调器节点成功组网后便可以获取 zigbee 网络中的通信节点MAC地址、网络域名、信号强度、链路质量等信息。进一步初始化后,便可对环境的温湿度信息进行实时采集,经测试采集距离可达10米,温湿度数据精度可达0.01。
4 结论
本文实现了基于zigbee智能无线温湿度采集系统设计,运用zigbee无线传感网络技术、STM32嵌入式技术对室内温湿度进行实时监测,具有组网灵活、功耗低,成本低等优点。该系统经扩展后可应用于各种复杂温度监测场景中,解决实时性差、精度低、成本高等问题,具有良好市场应用价值。