基于LoRa的智慧果园墒情监测系统研究与设计
2022-06-16杜青青
杜青青
(兰州石化职业技术大学 电子电气工程学院,甘肃 兰州 730060)
0 引言
我国苹果、梨等果园主要分布在北方地区,土地干旱,自然环境恶劣。温度、湿度都对水果的产量和质量有较大影响,在实际种植中,由于果园占地面积大,部分山地果园地形更是复杂,很难实现对温度、湿度等环境参数进行实时监测并自动控制。远距离无线电(Long Range Radio,LoRa)是一种新型远距离通信技术,它具有低成本、低功耗、抗干扰性强等优点,国内外开展了一系列对LoRa应用设计的研究[1-2]。姚引娣等[3]提出了一种基于B/S(Browses/Server)架构的LoRa远程温室监测系统。周成状等[4]以STM32F103C8TB单片机为控制器,通过传感器模块获得室内细小颗粒物(PM2.5)浓度、甲醛及挥发性有机物(VOCs)含量。海涛等[5]设计了低功耗广域网(LPWAN)物联网云平台的茶园监控系统,该系统能实时采集茶园空气温湿度、土壤温湿度等参数。Ibrahim等[6]在智慧蘑菇屋中采用了LoRa技术,实现了屋内的环境参数控制,进而达到控制蘑菇的产量和质量。
该文根据山地果园分布范围广、占地面积大、土地贫瘠干旱的实际情况,基于LoRa技术构建了果园自动监测与控制系统,以STM32H743XI芯片为控制器,设计土壤湿度信号调理电路,环境温湿度和LoRa模块接口电路,以及LoRa模块配置和收发程序设计,采集节点定时发送采样数据,汇聚节点利用循环队列异步解析接收数据,并发送至上位机进行统计分析。该果园土壤墒情监测系统的设计方案,具有通信可靠性高、采集实时性高、系统稳定性好以及易于扩展等优势,为今后LoRa应用提供技术支撑。
1 系统总体设计
系统总体结构如图1所示。该系统采集节点主要由STM32H743XI处理器、土壤湿度传感器、4~20 mA信号调理电路、环境温湿度传感器、TFT-LCD液晶显示屏以及LoRa无线通信模块等组成,土壤湿度传感器输出的4~20 mA信号经调理电路转换后输出为0~3.2V电压信号。采集节点采用STM32H743XI处理器片内ADC采样量化土壤湿度传感器信号调理电压信号,通过IIC接口读取环境温湿度传感器AM2315C数据,UART接口与LoRa无线模块通信,将节点具体信息和采集数据采用MODBUS协议组包发送至汇聚节点。汇聚节点将接收到的数据采用循环队列存储至缓存,解析后的数据通过USB-UART发送至上位机软件,上位机统计分析数据并存储至数据库,以便用户查询历史数据,也可给采集节点发送控制命令。
图1 系统总体结构图
2 系统硬件设计
该文STM32H743XI处理器硬件设计主要分为土壤湿度信号调理电路、环境温湿度电路设计和LoRa模块接口电路设计。
2.1 土壤湿度信号调理电路设计
土壤湿度传感器通过测量土壤的介电常数,以反映各种土壤的真实水分含量。该文所采用模块输出信号为4~20 mA,量程为0~100%,分辨率为0.1%,精度为±3%。土壤湿度传感器调理电路如图2所示。图2中,将土壤湿度传感器输出电流信号isen经100 Ω采样电阻接入第一级运算放大器AD820同相端,放大输出电压为:
图2 土壤湿度传感器调理电路
(1)
若土壤湿度传感器输出电流信号isen为4~20 mA,则有:
V1= 110×(4~20)mV = (440~2200)mV
(2)
第二级差分放大器AD820的反相输入端调节偏置电压为440 mV,那么输出为:
(3)
式(3)中,0.0~3.2 V对应湿度0~100%RH,将输出电压V0通过STM32H743XI处理器片内ADC采样可得到,那么实际土壤湿度RH与采样电压Vsamp的对应关系为:
(4)
式(4)中:N为ADC转换位数,Nadc为ADC采样值。
STM32H743XI处理器片内ADC有16位、14位、12位、10位和8位可配置,该文采用16位转换位数,则得到土壤湿度RH值为:
(5)
式(5)中:刻度系数为e=0.000 157 3%/字,即测量得到的土壤湿度分辨力为0.000 157 3%。
2.2 空气温湿度电路设计
AM2315C是奥松公司一款半导体管道式温湿度传感器,内部配置ASIC专用芯片、MEMS半导体电容式湿度传感元件和一个标准的温度传感元件,具有长期的稳定性和更高的可靠性,在高温高湿的极端恶劣环境条件下,也能够保持优异的性能。AM2315C采用标准IIC接口,供电电压为2.2~5.5 V,温度测量为-40~+80 ℃,精度为±0.3 ℃,湿度测量为0~100%RH,精度为±2%RH。AM2315C温湿度传感器硬件连接如图3所示。
图3 AM2315C温湿度传感器硬件连接图
图3中,AM2315C主要是通过串口数据SDA进行通信,为了使之更好的传输数据,需要连接5.1 kΩ的上拉电阻,SDA传输数据时,SDA拉低不少于30 μs,再升高不少于30 μs,接收到处理器信号后,传感器一次性从SDA高位先出发送40位数据,依次为湿度高位、湿度低位、温度高位、温度低位和校验位,其中校验位=湿度高8位+湿度低8位+温度高8位+温度低8位。
2.3 LoRa无线通信模块设计
LoRa无线通信模块采用SEMTECH公司SX1268射频芯片的无线串口模块E22-400T30D,TTL电平输出,供电电压为5 V,兼容3.3 V与5 V的10口电压,工作温度为-40~85 ℃,支持0.3 k~62.5 kbps的数据传输速率,频段410.125~493.125 MHz,最大发射功率22.0 dBm(可选择10,13,17,22 dBm),发射长度240 Byte(可选择32,64,128,240 Byte),缓存容量1000 Byte,工作频段410.125~493.125 MHz,接收灵敏度-147 dBm@0.3 kbps,空中速率为0.3 k~62.5 kbps,通信接口为UART,具有自动中继、空中唤醒、无线配置、载波监听、通信密钥、分包长度设定等功能,支持定点传输、广播传输、信道监听,超远距离通信时可采用多级中继方式,该模块传输距离更远,速度更快,功耗更低,体积更小。
SX1268射频模块工作电压为5 V,处理器STM32H743XI工作电压3.3 V,为使二者IO接口电平匹配,采用双通道数字隔离器ADuM1201AR芯片,其硬件电路如图4所示。
图4 LoRa模块硬件连接图
图4中,AUX用于指示模块工作状态,唤醒外部MCU,上电自检初始化期间输出低电平,不使用时可悬空。M0和M1决定该模块传输、WOR、配置和深度休眠模式4种工作模式(不可悬空,不使用时可接地),其中传输模式有广播透传、中继组网和WOR定点传输方式。采用广播透传方式时,通信双方需速率等级、信道、目标地址相同或参数值保持一致,LoRa数传终端可收到同速率、信道、目标地址下的所有LoRa数传终端发出的数据,需协议的容错处理,若将LoRa数传终端的目标地址设为广播地址,则其他同速率同信道的LoRa数传终端均可接收到此LoRa数传终端发送的数据。
采用WOR定点传输方式时,有WOR发送方和WOR接收方,支持空中唤醒,WOR发送方发射数据前会自动增加一定时间的唤醒时间,通过串口输入数据,模块会启动无线发射,WOR接收方模块无线接收功能打开,收到无线数据后会通过串口TXD引脚输出。采用中继组网方式时,切换到一般模式中继可开始工作,中继模式地址(ADDH/ADDL)不再作为模块地址,分别对应网络地址NETID的转发配对地址,中继模式下,中继器自身的网络地址无效,不能发送和接收数据,也无法进行低功耗操作。
3 系统软件设计
该文STM32H743XI处理器软件设计主要分为土壤湿度、环境温湿度和LoRa模块数据传输程序设计,以及TFT-LCD液晶显示程序设计。
3.1 系统主程序设计
系统主程序流程如图5所示。
图5 系统主程序流程图
3.2 LoRa模块配置程序设计
LoRa无线通信模块程序设计流程如图6所示。图6中,可将LoRa无线传输模式配置为广播透传、中继组网和WOR定点传输方式。该文采用广播透传方式,其配置数据结构如下:
图6 LoRa无线通信模块程序设计流程图
typedef struct
{
uint8_t addr_high;
uint8_t addr_low;
uint8_t netid;
uint8_t serial;
uint8_t power;
uint8_t channel;
uint8_t trans_mode;
uint8_t crypt_high;
uint8_t crypt_low;
}LoRa_para_t;
3.3 LoRa模块收发数据程序设计
LoRa模块透传方式发送或接收数据时模块无采集节点信息,为了标识节点具体信息,将模块地址、网络地址、发射功率、频率信道、功能码、时间信息、数据以及校验数据采用MODBUS通信协议组帧传输,定义其数据结构为:
typedef struct
{
uint16_t HEAD;
uint8_t ADDRH;
uint8_t ADDRL;
uint8_t NETID;
uint8_t POWER;
uint8_t CHANNEL;
uint8_t TRANSIMISSION;
uint8_t FUNC;
s_LoRa_time TIME;
uint8_t DATA[32];
uint32_t CRYPT;
}s_LoRa_datapacket;
s_LoRa_time为采集数据的时间信息,包含年月日、时分秒。LoRa汇聚节点定时间隔发送时间戳,各采集节点及时更新时间数据。
LoRa模块透传方式接收数据时采用循环队列,将接收数据存储至队列缓存,等待解析数据指令,流程图如图7所示。
图7 LoRa模块透传方式解析数据指令流程图
4 系统测试及结果分析
该文采用处理器STM32H743XI采集土壤湿度和环境温湿度数据,通过LoRa无线模块广播传输方式,将采集数据利用MODBUS协议组包发送至汇聚节点,汇聚节点接收数据存储至循环队列,解析接收的数据,通过USB-UART发送至上位机统计分析。为验证果园土壤墒情监测系统的稳定性和可靠性,将实验环境设置为8个采集节点部署在200 m×100 m的果园区域内,对比人工检测和系统检测各节点的数据,实验测试结果如表1所示。
采用Python设计上位机监测软件,统计分析从汇聚节点接收到的数据信息,并将数据存储于分布式文件存储的数据库MongoDB,以便进一步查询、处理历史数据。经统计分析得出,该果园土壤墒情自动监测系统的土壤相对误差为1.34%,环境温度相对误差为0.91%,环境湿度相对误差为3.17%。
5 结语
该文设计了一种基于LoRa技术的果园土壤墒情自动监测系统解决方案,以STM32H743XI处理器为核心,采用片内ADC采样土壤湿度传感器调理后的电压信号,读取环境温湿度传感器AM2315C数据,与LoRa无线通信模块通过UART接口交互数据,LoRa模块采用透传方式发送或接收数据,汇聚节点定时间隔发送时间戳,以校准采集节点数据时间信息,采集节点将节点标识信息、采样数据通过MODBUS协议组帧传输,利用循环队列异步解析接收数据,并发送至上位机进行统计分析。为提高系统运行的稳定性和可靠性,程序设计中充分考虑了异常处理措施。经统计分析得出该果园土壤墒情自动监测系统的土壤相对误差为1.34%,环境温度相对误差为0.91%,环境湿度相对误差为3.17%。实验结果表明,该果园土壤墒情监测系统实时性、稳定性和可靠性高,能够有效地满足山地果园远程监控的实际应用需求,具有较好的实用意义和广泛的应用前景。