雷文礼,张 鑫,任新成,曹新亮,魏建朝
(1.延安大学陕西省能源大数据智能处理省市共建重点实验室,陕西延安 716000;2.延安大学附属医院,陕西 延安 716000)
传统农业通过人工感知和经验对大棚环境进行管理往往不能及时调整大棚的环境,从而影响了农作物的快速生长[1-4]。随着科学技术的飞速发展,我国农业发展相较传统的农业模式也已经发生了天翻地覆的变化,正在逐步被智能化、自动化的农业模式所取代。温室大棚已经成为种植蔬菜水果的主要方式,但是与其他国家相比,智能化水平仍然相对较低。
针对温室大棚内各种环境参数监测不方便,不准确的问题,该文设计了以ZigBee为核心的大棚环境监测系统[5-8]。系统通过初始程序设置了大棚内环境参数的阈值,当大棚内环境参数超过阈值,利用蜂鸣器报警提醒管理者及时调整,从而尽可能地减少损失[9]。
该设计以STC89C52 单片机为核心控制器,匹配ZigBee 模块、输入部分和输出部分等组成大棚环境监测的整个系统。作为中控部分的STC89C52单片机的主要作用是获取输入部分数据,经过内部处理,控制输出部分。大棚环境监测系统框图如图1 所示。
图1 大棚环境监测系统框图
1)STC89C52 单片机电路设计模块:它是一款高速、低功耗、超强抗干扰、价格低廉的单片机[10-11],电路原理图如图2 所示。
图2 单片机原理图
2)按键复位电路设计模块:该模块可以使系统进行初始化,其中RES 是复位引脚,在通电以后电路给电容充电,此时RES处于高电平并且形成了一个回路,10 kΩ的电阻开始消耗电量;当按键S1 按下时,RES直接连接到VCC上,电容开始放电并且会放完所有电,当按键松开时会出现两边都是断路的情况,RES此时处于低电平开始复位,当VCC 给电容充满电重新连通之后,复位完成[12-13]。按键复位电路原理图如图3所示。
图3 按键复位电路原理图
3)晶振电路设计模块:晶振电路是单片机系统必须要用到的,因为单片机的运行必须依靠稳定的时钟脉冲信号。晶振电路中连接谐振电容,其作用是使晶振两端的等效电容等于或接近负载电容,以便晶振电路可以正常工作。
ZigBee 模块的作用是确保主机和从机之间相互通信,其中ANT 是天线部分,P1.2 引脚的功能是用来指示模块是否连接网络,连接网络时是低电平,未连接网络时为高电平;P1.3 引脚是模块正常运行指示灯引脚,正常运行时是低电平,未正常运行时是高电平。该模块采用了3.3 V 电源供电。ZigBee 模块电路如图4 所示。
图4 ZigBee模块电路
显示模块采用LCD1062 显示屏,它是字符型显示屏,只能显示数字、字母和符号。
蜂鸣器电路中采用三极管作为鸣响控制器。三极管相当于一个开关,当基极的高电平使三极管导通时,就会发出声音。当基极的低电平使三极管截止时,蜂鸣器停止鸣响。
CO2监测电路采用SGP30 模块实现,此模块用于室内空气监测,它是将多个传感元件集成在一个芯片上的金属氧化物气态感应器,能提供空气质量的详细信息,包括CO2和挥发性有机化合物VOC 的含量。
温湿度监测电路采用DHT11 数字型温湿度传感器采集大棚温湿度信息,其采用特殊的数字模块采集技术和湿度传感技术,是一个温度和湿度复合感应数字信号输出模块。
系统采用光敏电阻和土壤湿度传感器采集土壤湿度和光照强度,并通过ADC0832 数模转换芯片将数据送单片机处理。ADC0832 是一个八位分辨率的A/D 转芯片。其高分辨率可达256级,能满足模拟量转化的一般要求。当ADC0832 不工作时,它的CS 输入端为高电平,此时芯片被禁用;进行A/D 转化时,CS 使能终端必须设置在低电平,直到转换完成。
光敏电阻器是一种利用半导体光电导效应制成的电阻,其电阻值随入射光强度的改变而改变,又称光电导探测器。当入射光强时,电阻减少,而当入射光弱时,电阻增大。土壤湿度传感器又被称为土壤水分传感器,不锈钢探针和防水探头构成了土壤水分传感器,适用于长时间埋在土壤里,可用于深层土壤水分的定点监测和在线测量。与数据采集器相结合,可作为定点监测或移动测量工具,测量土壤体积含水量。土壤湿度和光照强度监测电路如图5所示。
图5 土壤湿度和光照强度监测电路
该设计所用到的编程软件为Keil5,它比其他软件编程环境更轻、更快、更易于操作[14-15]。Keil5 支持各种芯片,包括51 单片机、STM32、HC32、NXP等,可生成通过刻录器直接烧录到单片机的HEX 文件。此外,Keil5 编译有三种方式,分别是Translate、Build和Rebuild,为开发人员提供更多的选择,编译结果显示在界面的底部,方便开发人员查找错误[16]。
在主程序中首先对各个模块进行初始化,随后进入while 主循环,在主循环中,首先进入第一个按键函数,该函数主要分为两部分,第一部分为调用按键扫描函数获取按键键值,第二部分通过键值进行相应的处理操作,比如切换界面,调整温度、湿度、土壤湿度、光照、二氧化碳阈值等;接着进入第二个监测函数,该函数主要通过温湿度监测模块、土壤湿度监测模块、光照监测模块、二氧化碳监测模块监测当前的温度、湿度、土壤湿度、光照和二氧化碳值;最后进入第三个显示函数,该函数通过不同的显示标志位显示不同的界面,包括主界面显示当前的温度、湿度、光照、土壤湿度、二氧化碳值,其他界面显示温度阈值、湿度阈值、土壤湿度阈值、光照阈值、二氧化碳阈值等,系统的主流程图如图6 所示。
图6 系统主流程图
按键设置函数首先通过按键扫描函数,获取按键按下的键值,通过不同的键值,进行相应变量的改变。如果获取的键值为1,则进行界面切换。如果获取的键值为2,在界面1且温度阈值小于40 ℃时,温度阈值+1;在界面2且湿度阈值小于阈值最大值99%时,湿度阈值+1;在界面3 且光照阈值小于阈值最大值99%时,光照阈值+1;在界面4且土壤湿度阈值小于阈值最大值99%时,土壤湿度阈值+1;在界面5且二氧化碳阈值小于阈值最大值500时,二氧化碳阈值+1。如果获取的键值为3,在界面1且温度阈值小于40 ℃时,温度阈值-1;在界面2 且湿度阈值小于阈值最大值99%时,湿度阈值-1;在界面3且光照阈值小于阈值最大值99%时,光照阈值-1;在界面4且土壤湿度阈值小于阈值最大值99%时,土壤湿度阈值-1;在界面5且二氧化碳阈值小于阈值最大值500时,二氧化碳阈值-1。
显示模块流程如图7 所示,系统通过不同的显示标志位显示不同的界面。当界面为0时,显示当前环境内的温度、湿度、光照值、土壤湿度和二氧化碳值;当界面为1时,显示之前设置好的温度阈值;当界面为2时,显示之前设置好的湿度阈值;当界面为3时,显示之前设置好的光照阈值;当界面为4时,显示之前设置好的土壤湿度阈值;当界面为5时,显示之前设置好的二氧化碳阈值。
图7 显示模块流程图
在进行硬件测试时,首先检查电路是否连通,经检测电路正常运行,电源正常供电。然后测试网络是否可以连接,首先给从机供电,然后按下从机复位键S1 让系统初始化,当从机D1 和D2 两个指示灯变亮,说明从机已经产生网络;接着给主机供电,当主机D1 和D2 两个指示灯变亮,说明主机与从机之间运行正常已经连上网络了。
系统正常运行后,LCD1602 显示屏分两行显示内容,第一行从左到右分别是温度、湿度和光照强度,第二行从左到右分别是土壤湿度、二氧化碳浓度。当系统供电正常运行后,由于光照强度一般情况下会比设置的阈值高,蜂鸣器会进行报警处理,测试时挡住光照传感器,蜂鸣器就会停止报警并且可以观察到LCD1602 显示屏上光照强度的参数明显降低;土壤湿度传感器和温湿度传感器随环境变化采集到的数据会发生变化并显示在显示屏上。
该文使用Keil5 来编译和调试代码,测试代码能否正常运行,有没有指令使用错误以及语法错误等。经过测试可以看到程序错误为零,警告为零。
系统用Proteus 7 Professional 软件进行仿真测试,观察系统能否实现设计的功能。经过测试,仿真软件中系统可以实现所设计的功能,且通过仿真按键进行控制,各项参数都发生变化。
所设计的系统可实现从环境中采集实时的温湿度、光照强度、二氧化碳浓度、土壤湿度数值,并通过ZigBee 自组网络传输,在显示屏上显示出来,还可以通过按键进行阈值设置实现报警功能。实验表明,基于ZigBee 的大棚环境监测系统确保了农作物的生长环境,有效地调节了温室大棚环境参数,避免了灾害损失,同时为温室大棚环境的自动化监测提供了参考。