基于AI技术的智能农业生态环境监控系统
2021-02-23田苗苗崔维娜吴沿燊
田苗苗 崔维娜 吴沿燊 刘 鹏
1.吉林师范大学信息技术学院,吉林 四平 136000
2.长春信息技术职业学院汽车机电学院,吉林 长春 130103
农业生态体系中,大面积的农作物难以监管,既无法及时了解当前环境是否符合农作物的生长要求,无法及时了解当前生态的各项指标,因此,不能及时调节农作物的生长环境成为农作物养殖者的痛点。但是,需要在农业大棚中饲养的农作物往往都对环境有着极高的要求。大面积的养殖意味着高成本的人工投入,而仅凭借人工监控又往往伴随着各种失误以及不够严谨造成的错误。因此,在现阶段的农业发展中已经越来越多地融入了科技元素,包括智能灌溉、智能排水等[1-2]。伴随着农业的迅速发展,一个能够远距离大面积监控环境生态,能在生态不符合预期情况时及时进行调节的系统就显得尤为重要。将AI技术与农业生产结合到一起,极其适用于需要实现现代化的农业大棚或生态园。为生态环境优化提供先进的科学手段,将计算机技术、传感器技术、控制技术及通信技术应用于现代农业,进一步提高农业现代化及管理现代化水平,无论是对其管理水准还是经济利润都有较大程度的提升。
1 系统组成
系统由主控单元、显示单元、控制单元3个部分组成。主控单元连接各类传感器,主要负责采集数据,将数据和消息传输至其他单元。显示单元是人机交互界面,连接串口屏幕,便于监管人员查看实时数据。控制单元负责调节生态环境,连接各类设备的开关。系统主要应用光照传感器、温湿度传感器、一氧化碳传感器、超声波液位传感器等来采集所处环境的光照强度、温度、湿度、可燃气体含量和积水程度。通过以上几个数据的采集,来确定农业大棚当前的环境信息是否符合农作物的生长需求[3]。系统原理框图如图1所示。
图1 系统原理
2 系统硬件设计
通过STM32程序中预先设置的阈值,在收到传感器数据后,判断数据是否在设置的范围内。若数据不在阈值内,系统将控制继电器实现智能控制。在温度较高时打开冷气扇;在湿度过高时打开烘干机;在光照强度不符合时打开或关闭遮光帘;在CO浓度过高时控制警报灯报警;在液面高度过高时控制排水阀排水防止涝灾。
主控单元整体模块的电路图如图2所示,STM32主控单元是本系统的核心组成部分。它的主要功能包括驱动传感器、解析传感器数据、实现智能控制、I/O口控制继电器及传数据给CC2530等[4-5]。
图2 STM32主控单元整体模块
图3是主控单元的电源电路,左侧是电源电路的输入部分。输入直流电后首先经过保险丝防止输入过流损坏电路,其原理是当输入电流超过1500 mA后其会自动熔断,冷却后会再次导通,之后经过一个防止接反的二极管,再经过储能电路到使能脚让芯片使能,芯片使能后输出5 V电压。
图3 STM32主控单元电源电路
下面介绍信号检测电路的设计。图4和图5是温度、湿度检测电路,其核心DS18B20是单总线的温度传感器,它的所有信号都在同一条总线上,通过代码可以读取温度值。它会实时发送数据,可以选择如何处理它的数据。湿度传感器是ADC形式,它的形式类似于光敏电阻,HR 202L根据湿度改变电阻值,分压电路的电压值就会改变。通过读取电压值就可以知道当前湿度的值以及变化。
图4 温度检测电路
图5 湿度检测电路
图6是光照强度检测电路。传感器的核心组件为光敏电阻GL5528,是采用硫化镉或者硒化镉制成的,它的电阻值会随着光照强度的变化而变化。光照强度大时,GL5528的电阻值会减小;光照强度小时,GL5528的电阻值会增大。电阻值发生变化时分压电路的电压会随之变化,通过读取电压数值来读取检测到的光照度。
图6 光照强度检测电路
气体检测部分采用的是烟雾传感器,传感器的核心组件为MQ-2。当有可燃性气体在它所处的环境时,它的电导率会伴随着可燃性气体浓度的增大而增大,该电路的输出信号就会随着它的电导率变化而变化,就可以检测空气中的可燃性气体。其对液化气、氢气、丙烷的灵敏度相当高,对于天然气和其他可燃性蒸气的灵敏度也十分不错。气体检测电路如图7所示。
图7 气体检测电路
系统的控制模块共有5个,分别控制的设备为窗帘电机、制冷风扇、烘干机、声光报警灯和排水电机。将这些模块接到继电器上(常开口),再将控制模块的I/O口分别与继电器上对应设备的I/O接口相连接。这样在触发智能控制时主控单元发出的指令会通过CC2530芯片透传给对应的控制模块,实现对设备的控制。本系统中的设备控制使用的是STM32的普通I/O口,其对应的原理图如8所示。
图8 控制器电路原理图
报警电路是负责在系统监测到的生态环境各项数据不符合预期时能够通知监管者而设计的电路,核心是控制三极管的导通和截止,如图9所示。以火灾隐患报警为例,在软件设计中可以设定烟雾浓度大于10判定为有火灾隐患,当主控单元接收到烟雾传感器数值时,会与设定的阈值进行判断。如果判断为报警,则给信号到报警电路,三极管导通,蜂鸣器会鸣叫报警。另外,输入不稳定时,下拉电阻会保证三极管是截止状态,保证不会乱报警。
图9 报警电路
显示模块主要由STM32、CC2530以及一块串口屏幕构成。在主控单元解析数据后会通过CC2530将数据发送给显示模块的CC2530。显示模块收到数据后再连接串口屏幕到STM32的串口上实现显示实时数据。串口屏幕的驱动电路原理图如图10所示,在系统中串口屏幕驱动显示电路只负责驱动串口屏幕,串口屏幕显示的内容则由串口屏幕决定,具体的内容可以通过USART HMI上位软件编写烧录。
图10 串口屏幕驱动显示电路
系统主程序需要对STM32进行开发,使用IAR对程序进行编写、烧录。其中主程序的设计主要是为了初始化芯片、计算各个任务的堆栈以及开始各个任务的调度。其中IAR使用 7.2版本进行开发,主要对主控单元的代码进行编写和修改。
主程序软件设计主要包含以下几个部分:①主任务编写,上电自动开启工作模式,包括对初始化芯片、各部分的调度等。②复位程序的编写,当系统主控单元出现漏洞时可以使用复位按钮对其进行复位操作。③蜂鸣器程序,包括上电自动鸣叫等。④传感器驱动部分,包含各个传感器的驱动程序。⑤串口驱动部分,系统中大量使用串口通信、收发数据,该部分主要是为了初始化串口,使串口正常工作等[6-8]。主程序流程如图11所示。除此之外,还有串口驱动子程序设计、报警子程序设计、CC2530程序设计和传感器驱动子程序设计等,这里不再详细叙述。
图11 主程序流程
系统的调试主要分为以下3个部分:①对STM32的数据接收调试。主要分为以下几步:测试串口与STM32的通信是否正常;测试STM32与串口二的通信是否正常,通过串口二下发符合通信协议数据格式的指令给STM32,查看返还给串口二的数据是否正确,正确则说明串口二与STM32通信正常。②对ZigBee节点间通信以及网络配置进行调试。主要包括以下内容:测试其他芯片与STM32的协同功能是否正常、AT指令对其他芯片的配置和修改。③系统对于继电器的控制调试。主要是测试在不符合阈值时系统是否能正确进行自主控制,开或关继电器。通过上述方法对系统进行部分模块化调试,系统各项调试结果正常、系统的预期功能也全部实现。主要调试通过功能包括主控单元数据接收、ZigBee远程数据接收、串口屏幕数据显示、继电器控制测试等。
3 结 语
本文将AI技术、智能农业、远距离无线通信结合到一起后,可以在人力成本很低的状态下完成对大面积农业场景的环境生态监控。通过传感器采集环境和生态的数据,利用STM32完成数据的解析过程以及智能控制,利用ZigBee通信方式完成数据的传输。监管人员可以在远距离的屏幕上监控农业生产环境,与此同时,当环境生态不符合预设值时,可以通过智能控制继电器来调节并改善环境。