基于ZigBee的温室大棚温度检测系统设计

2019-04-08 00:46李昀珅张昊慧
现代计算机 2019年6期
关键词:串口阈值单片机

李昀珅,张昊慧

(淮阴师范学院物理与电子电气工程学院,淮安223001)

0 引言

温室大棚是我国农业生产的重要部分,随着科技的进步与生产力的不断发展,我们对于温室大棚的各种环境因素的要求也日渐提高。传统的温室大棚温度检测主要分为人工检测和有线检测。人工检查不仅劳动强度大,而且准确度与实时性差。有线检测虽然提高了精度与实时性,但整个系统需要在大棚中大量布线,并且要对设备进行集中供电,硬件成本较高[1]。为此,本文基于ZigBee技术,提出了一种温室大棚温度检测系统。既保证了系统的精度与实时性,又降低了硬件成本,还使系统具有较强的可扩展性与可移植性,对提高大棚经济效益具有重要意义。

1 ZigBee技术简介

ZigBee技术是一种广泛使用的无线网络技术。相对于Wi-Fi与Bluetooth通信技术,ZigBee在续航、扩展性、实时性和复杂性方面优势突出,因此在实际使用时可以有效降低人工更换电池的频率,并且可以更方便地加入更多传感器节点与更快地做出响应[2]。本文使用的无线通信模块是基于CC2530芯片使用ZigBee协议实现,可以实现自组织网络,操作简单,抗干扰能力强。

表1 ZigBee技术与主流通信技术区别

2 系统总体方案设计

本系统主要分为传感器节点、汇聚节点与监控终端三部分组成。传感器节点由DS18B20温度传感器、ST89C52单片机系统和ZigBee通信模块组成。温室内的温度主要由温度传感器测量,之后将收集的数据发送到单片机,并在处理后通过ZigBee无线通信模块发送。汇聚节点只由ZigBee通信模块组成,负责采集各个传感器节点的数据。监控终端由串口屏组成,与汇聚节点直接连接,可以观察到各点温度的实时信息与状况、温度变化趋势、温度阈值信息。这三个模块协同工作,实现温室温度的远程监控。

图1 系统整体结构图

图2 传感器节点方框图

3 系统硬件设计

3.1 传感器节点电路设计

(1)单片机系统电路设计

本设计中的单片机系统主要包括ST89C52单片机晶振电路,复位电路。STC89C52单片机基于英特尔8052标准的新一代高性能、低功耗的单片机,与8051系列单片机兼容。由于其功耗低、性能强、价格低的优点,非常适合作为本设计的数据处理中心[3]。

(2)温度检测电路设计

本设计采用DS18B20作为温度传感器,作为数字温度传感器,可直接输出数字信号。它与单片机的P2.2直接连接,无需外接A/D转换电路,见图3。温度测量的范围设定为0~120℃,分辨率为0.125℃(显示时只保留两位小数),误差为±0.5摄氏度。

图3 DS18B20连接示意图

(3)报警电路与键盘电路设计

每一个温度检测模块中都有独立的报警电路,在显示模块中可以观察到每个节点的温度是否异常。当节点的温度不在阈值范围内时,单片机的P2.0引脚将产生低电平信号,蜂鸣器则会持续发出报警信号。本设计还使用两个LED灯来分别表示高温异常与低温异常两种状态。它们分别与单片机的P1.0和P1.1口相连接。当温度过高时,P1.0口输出低电平,连接的LED灯点亮,表示高温异常;当温度过低时,P1.1口输出低电平,表示低温异常;当温度正常时,两个I/O将输出高电平,LED灯将熄灭[4]。键盘电路采用的是四个独立按键,分别对应着上限值与下限值的加减操作。当按下按键时,单片机的I/O端口将检测到高电平并执行相应的功能。

3.2 汇聚节点设计

在该设计中,汇聚节点与传感器节点中的ZigBee模块基本相同,都是基于CC2530芯片与CC2591芯片。CC2530是TI公司生产的无线通信芯片,可支持ZigBee协议,能够方便地实现网络的自组织,具有稳定性高、功耗低、外围器件少等优点。CC2591是一款范围扩展器,其功率增益在11dB左右,可以有效地扩大通信范围[5]。本设计通信频率为2.4GHz,最远通信距离可达1km(天气晴朗条件下),节点之间采用星形拓扑结构,基本满足正常使用需求。

图4 CC2530与CC2591连接示意图

3.3 监控终端设计

本设计中温度信息与状态信息的显示是通过一块400×240的串口屏实现的,它是基于ARM7系列芯片开发的,内置4MB Flash存储空间,同时可以外接SD卡。串口屏的优点在于可通过串口直接接收并执行上 位机发出的指令,可以有效简化终端复杂度。

3.4 电源电路设计

本设计还包括了电压转换电路。此次供电模块采用USB供电,但由于ZigBee无线通信模块接口电压为3.3V,因此需要采用稳压电路。图5是最基本的5V转3.3V稳压输出,采用的是AMS1117芯片。该芯片提供过热保护和限流功能[6]。应注意至少并联10uF电容的在输出端以提高稳定性和瞬态响应。

图5 电压转换电路

4 系统软件设计

4.1 传感器节点软件设计

传感器节点是在Keil uVision软件开发环境下用C语言编程设计。首先STC89C52通过一定延时来确保温度传感器的温度转换完成。在转换完成之后,通过无线通信模块发送温度数据。若需要修改温度阈值,则再通过串口发送修改温度阈值指令。若温度超过阈值,则再发送报警指令,流程图见图6。

图6 温度检测模块工作流程图

4.2 ZigBee模块设计

本设计中ZigBee模块主要分布于传感器节点与汇聚节点中,采用星形拓扑结构,功能基本相同,主要负责信号的采集与转发,区别是汇聚节点转发处理的数据量更大,所以需要消耗更多的电量。当汇聚节点的ZigBee模块通电后,首先进行初始化,寻找一个空闲信道并组建一个新的网络,接着扫描周围的传感器节点,并等待其加入网络。之后开始数据的采集与转发。

图7 汇聚节点通信流程图

图8 传感器节点通信流程图

4.3 监控终端软件设计

监控终端的串口屏显示模块是在USART HMI开发环境下制作完成的,主要显示的内容有:温度信息及其变化趋势、温度状态信息、温度阈值以及其他字符,主要用到了文本、变量和曲线控件。在温度显示模块主程序中,单片机以一定的时间间隔将转换后的温度以及阈值信息通过串口发送给屏幕显示,从而达到刷新显示的效果。温度正常与异常是通过两个相互重叠的文本实现的,温度正常时,单片机会发送指令把温度异常的文本设置为隐藏,温度异常时则反之。曲线控件是由转换后的温度赋值给变量,从而添加到曲线中,界面见图9与图10。

5 实地测试

为了验证本系统功能,选择在同一时间的不同地点检测温度,系统实际运行如图11与图12(两个节点发送数据延时不同,会造成曲线长短不同)。

6 结语

图9 串口屏主界面

图10 串口屏幕修改阈值界面

图11 运行主界面

图12 温度阈值界面

本文设计一种基于STC89C52单片机的温度检测系统,实现了温度的多点远程测量、自动报警、温度显示等功能,用户可以对各节点手动设定温度上限与下限值,最终可以在显示屏上观察到每个节点的温度变化趋势。本设计具有精度高、实时性强等优点,能够有效减少人工劳动量,有利于生产效率的提高,符合农业现代化的需求。

猜你喜欢
串口阈值单片机
改进的软硬阈值法及其在地震数据降噪中的研究
土石坝坝体失稳破坏降水阈值的确定方法
基于小波变换阈值去噪算法的改进
单片机在电子技术中的应用和开发
改进小波阈值对热泵电机振动信号的去噪研究
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
MCS—51单片机中的多串口通讯技术的应用