基于STM32单片机的新农业智能控制系统设计

2024-01-04 11:58邹双鸾张梦瑶陈晓登李桂梅
电脑知识与技术 2023年32期
关键词:网关串口单片机

邹双鸾,张梦瑶,陈晓登,李桂梅

(湖南工商大学智能工程与智能制造学院,湖南 长沙 410205)

农业是我国的传统产业,也是国家支柱产业之一。相关研究表明:我国农业劳动力成本日趋增高,农业劳动力老龄化与短缺问题逐渐凸显,农业智能化的需求日益增加。而农作物的产量与温度、湿度、光照强度、CO₂浓度息息相关。为能够根据农作物不同生长周期所需的环境进行智能调整,满足其合适的生长环境,提高农作物产量和农业管理的效率,笔者设计了新农业智能控制系统。

1 硬件设计

本控制系统由单片机模块、空气温度监测模块、土壤湿度监测模块、光照强度监测模块、CO₂监测模块、通信模块、驱动模块和显示与控制模块共8个模块组成,其系统框图如图1所示。

图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 补光灯珠模块

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.2 网关板系统主程序设计

主程序初始化时钟、IO 口、定时器、串口、OLED、LORA 模块、Wi-Fi 模块,连接热点后,网关板部分进入第一次连接网络,若成功,则进入工作循环部分,定时发送串口接收的数据至云端,如图3所示。

图3 网关板主程序流程图

2.3 光照强度调控过程

根据传入的数值与设定阈值比较结果,为了避免反复操作或判断异常,决定根据光照强度的返回值设置区间,分为表示低、中、高,当返回值是0~10 000,为“低”,当返回值是10 000~35 000 时,为“中”,35 000~59 577时,为“高”。当判定为低时,通过旋转舵机,打开遮阳板并且同时打开补光灯,判定为“中”时,仅通过旋转舵机打开遮阳板,判定为“高”时,不进行操作,即舵机不旋转,避免光照强度太高对植物造成伤害,如图4所示。

图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所示。

图5 通信部分示意图

2.8 LORA模块工作过程

初始化时,单片机通过结构体的方式,将LORA模块的各个参数如地址、信道、工作方式、发射功率等打包配置好,并发送相应设置指令,然后通过串口发送测试指令给LORA,当接收到LORA 模块返回的“OK”之后,完成验证,网关板或节点板就可以通过串口发送或接收相应的数据,如图6所示。

图6 LORA模块工作流程图

2.9 MQTT协议设计

MQTT 是一种基于发布/订阅模式的轻量级通信协议,使用MQTT 协议连接ONENET 云平台,可以实现通过互联网进行远程监控和控制的应用。

MQTT 协议的传输模型总体分为2 部分,即消息代理端和客户端,分别对应服务器和网关。其中,网关作为发布者通过MQTT 协议与服务器连接并上传来自节点的传感器数据。服务器作为消息代理端接收和保存来自发布者的入网消息,并通过存储转发功能将消息从发布者推送到订阅者。网关作为订阅者通过控制报文与服务器进行消息交互,在向服务器发送等级0的订阅消息后便能收到服务器订阅主题上推送的消息,包括子设备和网关参数、传感器数据以及设备状态等。

连接中国移动ONENET 云平台采用MQTT 协议的具体步骤如下:

1)注册账号和创建设备:在中国移动ONENET平台上注册账号,并创建一个新产品,在产品下创建一个新设备,获取设备的ID和产品ID以及鉴权信息。

2)选择MQTT 连接方式:在设备管理页面中选择使用MQTT 方式连接设备。此时会显示一些连接参数,包括MQTT 连接地址:183.230.40.39,端口号:6002,等信息。

3)配置MQTT 客户端连接:使用支持MQTT 协议的开发工具或硬件模块,编写程序代码或配置相应的连接工具,将设备的ID 和访问密钥等参数输入进去,建立MQTT连接。

4)订阅和发布主题:当连接成功后,设备即可通过MQTT 协议向ONENET 平台订阅或发布主题。具体可以根据业务需求设计相应的主题结构,例如设备状态信息、传感器数据等。

5)接收数据:即下行数据可以通过订阅指定的主题来进行接收。例如,可以订阅设备状态控制主题,当云平台下行了指令时,设备就会收到指令并进行相应操作。

6)上报数据:通过MQTT 协议上报传感器实时数据或设备状态信息等,直接调用相关函数即可。

网关节点与OneNet 云平台之间的数据传输采用MQTT 通信协议,数据协议规定采用JSON,将变量中的数据赋值给字符串中相应位置,将此字符串发送至云端后,根据JSON 数据协议,自动提取数据,分给名称相同的数据流呈现数据。

3 测试方案与测试结果

3.1 测试方案

1)硬件测试:在上电后,观察各个模块是否正常运行,例如OLED是否能够显示,在调试连接ONENET上,是否能正常看到设备的在线显示,LORA模块是否正常初始化。

2)软件测试:本系统程序由主程序和若干个子程序构成,先将单片机内部资源的驱动程序配置好,然后将各个子模块驱动程序配置好,包括光照强度传感器模块、温度传感器模块、土壤湿度传感器模块、CO₂传感器模块、显示模块、无线通信模块、Wi-Fi 模块和驱动控制模块等,然后再编写系统功能程序,使各个功能合作。

3)软件硬件联调:通过编写程序连接硬件,观察单片机寄存器内部参数是否正常并反复测试系统功能是否准确。

3.2 测试结果及分析

设计安装的新农业智能控制系统,环境参数检测功能和驱动设备功能良好、稳定性强。在预设的农作物温室里,传感器检测的环境参数准确率99.5%,根据环境参数和预设的阈值判断准确率100%,并通过相应的设备对环境进行改善,以达到农作物最佳生长环境,系统可靠性99.8%,稳定性强。

4 结束语

本文设计的基于STM32F103 单片机的新农业智能控制系统,利用温度传感器、光照强度传感器、土壤湿度传感器、CO₂传感器感知环境参数;利用LORA模块实现网关板与节点板的无线通信;通过PWM 波驱动舵机、电机、半导体制冷片等设备对环境进行智能调整。同时,网关板通过Wi-Fi模块,采用MQTT协议发送数据至ONENET云服务器,实现远距离实时监控目的环境的各种参数。利用LoRa技术可无线传输远距离和抗干扰能力强的优点解决了农业场景中面积大、多在偏僻地区且移动信号差的问题。

与当前传统农业模式相比,新型农业智能控制系统既可以节省劳动力,又能够节约水资源,符合可持续发展战略要求,系统稳定性高、可扩展性强,能对农作物的生长环境进行实时记录与监测,有利于提高农作物的产量,具有良好的市场价值。

猜你喜欢
网关串口单片机
浅谈AB PLC串口跟RFID传感器的通讯应用
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
应对气候变化需要打通“网关”
Microchip推出两个全新PIC单片机系列
基于并行控制的FPGA多串口拓展实现
一种实时高效的伺服控制网关设计