基于STM32单片机的新农业智能控制系统设计
作者: 邹双鸾 张梦瑶 陈晓登 李桂梅
关键词:温湿度传感器;光照传感器;云平台;智能控制:远程监控:Lora
中图分类号:TP391 文献标识码:A
文章编号:1009-3044(2023)32-0110-05
农业是我国的传统产业,也是国家支柱产业之一。相关研究表明:我国农业劳动力成本日趋增高,农业劳动力老龄化与短缺问题逐渐凸显,农业智能化的需求日益增加。而农作物的产量与温度、湿度、光照强度、CO₂浓度息息相关。为能够根据农作物不同生长周期所需的环境进行智能调整,满足其合适的生长环境,提高农作物产量和农业管理的效率,笔者设计了新农业智能控制系统。
1 硬件设计
本控制系统由单片机模块、空气温度监测模块、土壤湿度监测模块、光照强度监测模块、CO₂ 监测模块、通信模块、驱动模块和显示与控制模块共8个模块组成,其系统框图如图1所示。
1.1 单片机模块
单片机选用STM32F103,STM32F103微控制器具有高性能、丰富的外设和接口、灵活的存储容量选择、低功耗特性以及安全功能等特点。功能较为完善,可以满足此次设计需要。
1.2 空气温度监测模块
DS18B20 是一种“单总线”接口的温度传感器。DS18B20通过测量温度对其内部器件电阻值,从而实现温度的检测。DS18B20内置有一个温度感应器和一个处理模块,当温度发生变化时,感应器的电阻值也会发生变化,这个变化被传递给处理模块,经过一系列运算之后最终以数字信号的形式输出。整个过程由芯片内部自动完成,当系统需要获取传感器的数据时,需要从信号引脚DQ输入特定的指令,传感器会对指令进行解析,并向DQ引脚输出相应的温度数值。
1.3 土壤湿度监测模块
采用YL-69土壤湿度传感器,其原理为湿敏电容,当环境的湿度发生改变时,会使得湿敏电容存在环境中的介质发生改变,导致湿敏电容中的电容数值产生变化,电容的数值正比于湿度值。由于湿敏电容有着很高的灵敏度、响应速度快、滞后量小的特点,所以湿敏电容很容易小型化和集成化。此传感器发送的不是数字量而是模拟量,因此配置内部外设AD接收数据,再通过数值转换变成一个易于理解的较为直观湿度数据。
1.4 CO₂监测模块
采用CO₂传感器TGS4160,它是一种电化学型气体的敏感元件,当该元件暴露在CO₂气体环境中时,就会产生电化学反应。CO₂的敏感原件由2个固态电解质组成,结合一个印制在基板上的RuO2加热器。通过监测S(+)、S(-)两个电极之间所产生的电势值,通过检测两个电极之间电动势的变化来测试CO₂的浓度。TGS4160将检测到的CO₂浓度信号经运算放大器处理后,再将OUT信号送入A /D转化器转化为数字信号。
1.5 光照监测模块
采用BH1750 芯片,BH1750 的内部由光敏二极管、运算放大器、ADC采集、晶振等组成。光电二极管通过光生伏特效应将输入光信号转换成电信号,经运算放大电路放大后,由ADC采集电压,然后通过逻辑电路转换成16位二进制数存储在内部的寄存器中,BH1750引出了时钟线和数据线,单片机通过IIC协议可以与BH1750模块通讯,选择BH1750的工作方式,并将BH1750寄存器的光照度数据提取出来。
1.6 驱动模块
驱动模块包含对温度、湿度、光照强度和CO2浓度等环境变量的改变装置,即半导体制冷制热片、加湿器、遮阳板、补光灯珠、排风扇。
1.6.1 半导体制冷制热片模块
采用TEC1-12706半导体制冷片,通过主控芯片进行PID算法,来达到反馈控制效果。
半导体制冷模块是一种利用半导体材料的P-N 结具有变温效应的特性,以电流为能量源来产生热、冷的技术。半导体制冷模块的工作原理和基本流程是:
1) 双面加热:将制冷模块的两侧分别接通正负电压,并使之通过电流而产生P、N带的高温区域和低温区域。
2) P、N带热交换:半导体单元中电子通过N带进入到P带,同时半导体材料中的热量也可以随着电子从热面传递到冷面,实现冷却效果。
3) 热电子扩散:由于半导体材料中电子浓度会发生变化,所以会出现热电势差,HER(霍尔效应)将热量从高温区推入低温区。
4) 从低端排放热:冷面的半导体结在不断吸收热量,在消耗时间过后,需要排出这些已经累积在单元上的热量,否则会引起过热。
1.6.2 加湿器模块
通过采用USB喷雾模块,来实现提高室内湿度的功能。该模块采用高频振荡,表面上釉,绿色环保,工作静音,续航能力强且体积小,易安装。包括2种工作模式,连续喷雾和间断喷雾,与继电器相连,可通过单片机实现灵活控制湿度。
1.6.3 遮阳板模块
选用的是SG90 9G舵机,能180度旋转从而控制旋动遮阳板,而且驱动较为简单,通过定时器输出一路PWM就可以控制旋转角度。
对于控制光照强度的做法,采用在舵机上加一个遮阳板,遮阳板上有不同的区域,光能透过面积不同,这样舵机通过转动不同的角度,就可以实现不同光照强度的转换了。
1.6.4 补光灯珠模块
在设计中采用红色和蓝色LED补光灯珠满足光照需求。利用PWM波实现LED灯光照强度的准确调控,从而实现对光照强度的准确把控。由于植物光合作用大多数利用的是红光和蓝紫光,反射效应对绿光吸收效率很低,因此为了提升植物光合作用效率,笔者采用红色和蓝色LED补光灯珠。
1.6.5 排风扇模块
通过单片机输出PWM波控制排风扇风速来实现湿度过高时的排湿功能和CO₂浓度过高的换气功能。
1.7 OLED 显示模块
采用OLED,由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异特性,被广泛应用。
OLED屏幕与主板之间的数据传输通过IIC驱动实现,其他的字符输出、清空屏幕等控制命令操作,均可通过相应的IIC命令实现。
1.8 Wi-Fi 模块
本设计使用的联网模块是ESP8266-01s,该模块采用32位低功耗芯片,主频高达160MHz,支持AT指令,同时也支持二次开发。本设计主要通过串口发送AT 指令与ESP8266-01s 模块进行通信,控制ESP8266-01s模块联网和发送数据。
1.9 Lora 模块
ATK-LORA-01_V3.0是一款体积小、微功率、低功耗、高性能远距离LORA无线串口模块。本网关采用LORA无线通信的方式来发送和接收环境数据。
模块设计是采用高效的ISM频段射频SX1278扩频芯片,这种发射芯片的优点是集成度高、功耗低、频段多,既能够实现远距离的户数传输任务,同时抗干扰的能力又比较强,能够使用多种不同频段进行数据传输。模块的工作频率410Mhz~441Mhz,以1Mhz频率为步进信道,共32个信道,可通过AT指令在线修改串口速率、发射功率、空中速率、工作模式等各种参数,并且支持固件升级功能。
ATK-LORA-01在使用时,采用AT指令,通过串口通信的方式,可以配置地址、信道、空中速率、发射功率等参数。在工作时,若传输方式为透明传输,可以实现地址相同、信道相同的LORA模块间的数据传输;若传输方式为定向传输,可以实现地址不同,信道不同的LORA模块间的数据传输,避免数据的混乱或者泄露。本次设计采用透明传输的方式进行数据的传送。
2 软件设计
2.1 节点板系统主程序设计
系统启动后,节点板会持续地通过传感器对各类环境参数进行检测,初始化完成后,就定时将各传感器返回的数据发送给网关板,在驱动部分开始前,会检测是否接收到上位机的命令,根据命令判断是运行自动模式还是手动模式。
自动模式下,每次运行都会依次判断光度,温度,湿度,CO2浓度是否符合设定区间,如果参数值不在设定区间范围内,则按照预先设置好的应对过高或过低2种情况运行驱动模块。手动模式时,操控员可以依据云端显示的数据,按照自己的想法发出命令驱动工作电路,如图2所示。
2.2 网关板系统主程序设计
主程序初始化时钟、IO口、定时器、串口、OLED、LORA模块、Wi-Fi模块,连接热点后,网关板部分进入第一次连接网络,若成功,则进入工作循环部分,定时发送串口接收的数据至云端,如图3所示。
2.3光照强度调控过程
根据传入的数值与设定阈值比较结果,为了避免反复操作或判断异常,决定根据光照强度的返回值设置区间,分为表示低、中、高,当返回值是0~10 000,为“低”,当返回值是10 000~35 000 时,为“中”,35000~59 577时,为“高”。当判定为低时,通过旋转舵机,打开遮阳板并且同时打开补光灯,判定为“中”时,仅通过旋转舵机打开遮阳板,判定为“高”时,不进行操作,即舵机不旋转,避免光照强度太高对植物造成伤害,如图4所示。
2.4温度调控过程
根据传感器返回的数值与所设阈值上下限判断,通过驱动电路来驱动半导体制冷片工作,为了更好地控制温度,采用PID算法,来对PWM输出进行控制。
PID算法过程:模糊PID控制在常规PID基础上,以温度反馈值与目标值的误差e 和误差变化率ec 作为输入,一方面送入模糊控制器用模糊推理的方法计算PID参数的调整系数,进行在线自整定,以满足不同e和ec 对控制器参数的不同要求。
计算欲调整的控制量变化量:将误差代入3个调整项,得到修正控制量的变化值u(t),公式如下:
其中,Kp、Ki、Kd 是指定的3个系数,对应的是比例项p、积分项i 和微分项d。拟定Kp 为2.0,Ki 为0.03,Kd 为0.1,调整项e(t)表示误差,在这里即为当前温度与目标温度之差;∫e(t)dt 表示从起始时刻开始到当前时刻e(t)的时间积分值,也就是误差的累计值;de(t)/dt 表示误差的导数值,用于预测误差随时间的变化趋势。最后输出控制量,用调整的控制量变化量u(t)更新半导体制冷片工作力度,经过调试,限制u(t)值在0~100,然后将结果赋值给控制输入端口,循环重复上述步骤。
2.5 CO₂浓度调控过程
当大棚内CO₂浓度过高时,打开排风扇,通过使空气流动降低CO₂浓度,同时配合CO₂浓度传感器的反馈,实现对CO₂浓度的基本控制。
2.6 湿度调控过程
根据传入的数值与设定阈值比较结果,采用模糊控制算法。获取的土壤湿度数据为模拟量,范围为0~4 095,通过将简单数据处理得到一个范围为0~100比较直观的数据,方便与阈值比较。
对继电器进行初始化,将获取的湿度与设置的阈值进行比较。当湿度较低时,通过控制继电器开启加湿器进行加湿;当湿度较高时,关闭继电器加湿器,打开排风扇进行排湿。
2.7 通信模块调控过程
节点板的单片机将目标数据通过串口通信,利用Lora模块将数据发送至与网关板连接的Lora模块,网关板的单片机也通过串口通信从Lora模块中取得数据并将数据保存,再利用ESP8266-01s模块,通过连接Wi-Fi能实现将数据发送至移动云端,就可以通过PC登录OneNet查看数据并发送数据,如图5所示。
2.8 LORA模块工作过程