智慧农业环境监控系统设计

作者: 范明民

智慧农业环境监控系统设计0

[摘 要] 针对传统温湿度监控系统智能化程度不足的问题,可利用嵌入式技术设计一款智能化数字式环境温湿度动态监控系统。该系统采用STC89C52作为主控芯片,采用DHT11作为湿度传感器,采用DS18B20作为温度传感器,采用LCD1602作为液晶显示屏实时显示温湿度,采用直流电机作为主要调节设备,实现温湿度的智能监测与控制。预设阈值,当监控环境指标超过阈值时,该系统会自动报警且驱动直流电机工作,从而将温湿度控制在阈值范围内。该系统能对周围环境温湿度等指标进行高精度的调节,为现代化农业生产的环境控制提供准确可靠的参数,且系统设计预留拓展接口,方便后续功能更新和升级,可在当前生产生活中广泛推广使用。

[关键词] 智慧农业;环境监控;温湿度

[中图分类号] S126 [文献标志码] A [文章编号] 1674-7909(2022)15--4

0 引言

环境温度和湿度等会对农业生产产生极大影响[1],如会影响仪器设备的使用寿命,影响作物生产质量等。要想提高农业和畜牧业的产量,就必须使环境温度和湿度相对稳定、可调控[2]。因此,设计一款可自动调节的智能数字化温湿度监控系统对促进农业发展极具价值。笔者设计的智慧农业环境监控系统不仅能实时监测和显示温湿度,还能在温湿度超过阈值时启动自动调节装置,降低人力成本,促进农业现代化发展。

1 系统总体设计方案

合理的系统总体设计方案能够让产品在市场中更有优势。此系统的设计主要包含电源电路、温湿度检测电路、微处理器AT89C52主控制电路、液晶显示电路、报警电路、键盘电路和风机调节电路等。同时,该系统预留了拓展接口,方便后续功能的完善和升级。

1.1 系统总体设计框图

系统采用STC89C52作为主控芯片,用于分析、处理转换温度和湿度传感器采集的信号,实现系统实时数据的采集和数字显示[3]。当环境温度超过预设的阈值时,报警器报警,同时输出驱动信号调节直流电机风叶旋转,改变周围环境参数,起到自动调节温湿度的效果。系统总体设计框图如图1所示。

系统主控芯片起到中枢神经控制作用,处理传感器的模拟信号和输出数字信号。以小麦生长为例,小麦在不同的生命周期对环境温度和湿度有不同的要求,小麦发芽适宜的温度和湿度分别为15~20 ℃和50%RH~70%RH,小麦灌浆适宜的温度和湿度分别为20~22 ℃和70%RH~80%RH。该系统默认周围理想环境温度为15~30 ℃,湿度为45%RH~65%RH。控制电路的工作原理是当系统检测到的指标超过或者小于阈值时,启动风机调节电路,使周围环境达到适宜的温湿度[4]。温湿度检测电路主要通过高精度的传感器测量农业生产环境的温度和湿度,显示电路主要通过LCD1602显示,复位电路即为系统初始化或者需要重新设定系统参数时的电路,电源电路主要将市电220 V交流电转换成工作时稳定的5 V直流电压,报警电路则是在系统参数超过阈值时控制二极管间断闪烁及蜂鸣器报警,键盘电路提供人工设定温湿度上、下限和报警参数值等功能,风机调节电路主要是通过驱动直流电机自动调节温湿度等参数。

1.2 主控芯片选型

选用合适的控制芯片能保障通信系统的可靠性和稳定性。因此,笔者采用新推出的微型、高速、低功耗、可靠性高的CMOS 8位STC89C52处理器。此次设计有2种芯片方案选择。方案一为成本和功耗都较低的STC89C52型号。该芯片具备4 K字节只读存储器、128字节随机存取存储器、1个双工通信串口和4个8位并行接口,功能完善。方案二是以Cortex-M3为内核的STM32。该芯片集成了512 KB的flash存储器,有多达112个快速I/O口,功能强大,但其缺点是成本更高及控制较复杂。由于农业生产对成本有着苛刻的要求,故选取低成本的STC89C52芯片。笔者设计的单片机核心原理图部分如图2所示。

2 硬件设计

2.1 电源电路

由于监控系统采用的电路均为5 V稳定直流电压,因而要将市电220 V交流电(AC)转换为5 V直流电(DC)。此研究采用的电源电路方案如下:首先将220 V交流电通过变压器降压转变为9 V交流电,9 V交流电通过整流桥变为脉动直流电,通过滤波电容滤波后,再利用三端集成稳压器LM7805得到带纹波的5 V直流电,最后经由滤波电路输出平稳工作的5 V直流电。

2.2 温度传感器

此系统采用精度较高的三端集成器件DS18B20作为温度传感器。该传感器的优势在于只需要一根线就可以连接到单片机,实现互相通信,不需要众多的外围电路支撑。用多个DS18B20并联可以实现多点组网。该拓扑组网方式灵活且方便,且可实现多点测温。其测温范围为-55~125 ℃,在-10~85 ℃时精度为±0.5 ℃;可编程的分辨率为9~12位,最高可分辨温度可以达到0.062 5 ℃,在农业生产中可实现高精度测温[5]。测量结果直接输出数字温度信号。由于采用串口方式将温度传感器连接到单片机,故其有较强的抗干扰能力,测温数值的可靠性较高。

市面上的温度传感器主要有直插式和探头式2种。结合农业生产环境,此系统采用后者。探头式温度传感器为不锈钢金属材质的防水性封装,能极大地防止腐蚀。不仅如此,该传感器的内部还集成了一个存储效率高的内存RAM和掉电后数据不丢失的EEPROM芯片,可通过重新编程设定数据或者断电保留上一次的数据,即插即用,使用方便。该系统正常工作时会显示所监控环境的温度,管理员使用按键电路实现温度最大值和最小值的设定。该系统会自动把设定好的温度上、下限阈值存储到EEPROM中,纵使断电,下一次系统通电正常工作后也能够恢复上一次设定的温度阈值,不需要手动重复设置上、下限阈值。该传感器维护便捷,成本低廉,非常适合应用于现代农业生产。

2.3 湿度传感器

湿度传感器也是该监控系统的关键核心设备。该系统使用高精度、体积小、能耗低的三端口单总线数字传感器DHT11作为湿度传感器。DHT11是一款已经在标准的湿度校验室校准好的数字信号输出传感器。该产品出厂时的测量湿度范围是5%RH~95%RH,湿度误差±5%RH;温度范围是-20~60 ℃,温度误差±2 ℃,满足农牧业生产使用条件。该湿度传感器内部集成了1个电阻式感湿器件和1个NTC测温元件,在实验室条件下测试,信号有效传输距离可以超过20 m。

2.4 直流电机调节电路

该监控系统采用电压为5 V的直流电机,转速约20 000 r/min。该系统采用五线四相的直流电机,采用的驱动模块为ULN2003芯片(是一个超大电压、超大电流的复合晶体管阵列集成的芯片电路,含有7个硅材料NPN复合管,能够驱动蜂鸣器和直流电机)[6]。该电路是独立的,芯片的输入通过J46端子提供,芯片的输出由J47端子引出。J46输入对应J47输出。温度或者湿度超出阈值会自动触发一个驱动信号给直流电机,电机开始工作,直至指标稳定电机才停止工作,达到自动控制效果。

2.5 报警电路

该监控系统采用电磁式蜂鸣器和发光二极管作为报警核心电路。温湿度超过阈值,发光二极管以1 s为间隔不断闪烁红光,同时启动蜂鸣器报警,提醒管理员处理。

3 系统软件设计

3.1 设计思路

系统软件采用模块化设计,系统复位后可以获取当前温度和湿度并且通过A/D转换实时显示。假如将温度和湿度上限分别设置为30 ℃和90%RH,当设定好上下限阈值时,系统即会把当前的温湿度数值与设定的上限阈值作对比:如果当前参数高于温度或者湿度上限阈值任一项,则启动风机降温除湿,同时二极管闪烁及蜂鸣器报警;如果当前环境的温湿度处于下限和上限之间,风机转动停止且报警消除。同理,设定下限时的工作机制也一样,从而自动把温湿度控制在阈值范围内。系统主程序流程图如图3所示。

给系统上电时先自动初始化,读取当前环境温湿度。用户可以通过键盘手动输入温湿度上、下限及启动直流风机的指标,并且通过LCD1602显示。该系统本质上为一个负反馈电路。

3.2 设计实现

通过Keil uVision4工具编写模块化C语言源程序,软件设计部分主要包括温度模块、湿度模块、显示模块、直流电机驱动模块、键盘扫描模块和报警模块等6个子程序。

3.2.1 温度模块设计。DS18B20作为国内应用广泛且稳定性高的数字温度传感器,其输出信号为数字信号。编写温度模块程序时,时序要求最为严格,必须十分精确。该模块通过ds18b20init()函数进行初始化,通过ds18b20wr(uint8 dat)函数进行写数据,通过ds18b20rd()函数进行读数据。读取温度时先要进行复位,同时要注意温度有正负值及保留1位小数。

3.2.2 湿度模块设计。DHT11软件程序设计先要注意检查是否有该硬件,通过DHT11_Check()函数判断是否存在,有即返回1,否则为0。使用前也必须先将其初始化,程序通过DHT11_Init()函数对湿度传感器初始化。DHT11_Read_Bit(void)函数表示从湿度传感器按位读取数据,DHT11_Read_Byte(void)函数是指从传感器中按字节读取数据。为了避免读数据出错,程序设定函数返回值为1是正常,返回值为0是失败,每次读取数据的时间不能太短,否则会不准确,系统设置不少于100 ms。

3.2.3 显示模块设计。该系统通过LCD1602显示温度和湿度。通过lcd_init_display()函数对LCD初始化显示,data_pros()函数处理温度和湿度显示并且对有效位数进行处理,可以显示切换的温度、湿度上限和下限。

3.2.4 报警模块设计和直流电机驱动模块设计。报警模块主要是驱动发光二极管和蜂鸣器电路。设计通过baojinpros()函数进行报警处理。发光二极管分降温湿指示灯和升温湿指示灯2种,当系统检测温度或者湿度高于设定上限值时,降温湿指示灯亮;检测温度或者湿度低于设定下限值时,升温湿指示灯亮;两种情况下蜂鸣器均会报警提示用户。直流电机驱动主要是通过单片机控制ULN2003D模块输入、输出。报警时,系统会输出一个信号给直流电机,可以通过motospeed(uint16 i)函数进行风机的速度调节,并且温度和速度范围可以通过键盘程序进行设置。此外,该监控系统以10倍范围设置了3个挡位速度,便于快速反应。

3.2.5 键盘扫描模块设计。程序通过key_pros()函数进行按键处理,包括对温度和湿度上、下限的加法减计算。

4 系统软硬件调试

该监控系统采用C语言编程,通过proteus软件仿真测试和keil软件烧录进行运行,运行效果良好。

传感器采集、接收环境参数并进行AD转换,将单片机处理后的信号通过LCD1602显示,超过预设阈值触发报警,提示管理员及时处理。如果未触发报警,则系统继续采集数据,比对系统阈值。该系统精确度高,能耗小,系统可靠性强,传输的数据误差较小,能满足普通农业生产需求。单片机系统目前已经稳定运行一个多月,未出现错误。

5 结语

该系统经过试验测试,各指标均满足生产生活需要,适用于农业生产的智能化温湿度监控。系统可拓展性强,误差小,稳定性强,功耗低,针对复杂环境温湿度监控具备自动测试调节能力,可以在降低成本的同时提高精度。此外,该系统可以通过采用精度更高的传感器,增加更多必要的功能,持续优化,为我国农业、畜牧业健康发展提供支撑。

参考文献:

[1]邓昌建,王保强.总线式自动气象站温湿度采集器设计[J].电子测量技术,2011(1):94-98.

[2]常子欣.基于labVIEW的温室大棚测控系统设计[J].中国科技信息,2019(9):74-75.

[3]陈卫东.基于USB数据采集卡的设计与实现[J].大连民族学院学报,2006(5):56-58.

[4]李家荣.基于单片机控制的大棚温湿度监控系统的设计[J].江苏农业科学,2016(8):424-427.

[5]周光海,郑日荣,张长春.基于Linux的温度传感器DS18B20驱动程序设计[J].单片机与嵌入式系统应用,2010(1):24-26.

[6]邱日錞,朱向庆,薛勇,等.多点无线温湿度监控系统设计[J].嘉应学院学报(自然科学),2015(8):38-42.

经典小说推荐

杂志订阅

友情链接