
1. 项目概述智慧果园云监测系统是一个面向农业物联网场景的嵌入式终端设备其核心目标是将传统经验驱动的果园管理方式升级为数据驱动的闭环控制体系。该系统并非概念验证原型而是具备完整工程落地能力的实用型监测终端——从传感器信号采集、本地边缘处理、4G广域网通信到云端数据建模与移动端交互形成一条贯穿“感知—传输—分析—执行”的技术链路。整个系统以STM32F103RCT6微控制器为中枢构建了一个低功耗、高鲁棒性、可长期野外部署的边缘节点。本系统的设计出发点源于农业现场的实际约束果园多位于农村或山地Wi-Fi覆盖薄弱甚至完全缺失供电条件受限难以部署高功耗设备环境温湿度波动剧烈存在粉尘、雨水、电磁干扰等多重应力管理人员技术背景差异大要求人机界面直观、操作路径极简。因此所有硬件选型与软件架构均围绕“可靠采集、稳定上传、低维交互、就地容错”四大原则展开而非追求参数指标的堆砌。值得注意的是该项目未采用常见的ESP32或树莓派类SoC方案其根本原因在于对确定性响应与时序精度的刚性需求。例如土壤湿度传感器输出为模拟电压信号需通过ADC进行连续采样并滤波风速传感器输出为脉冲频率信号必须在固定时间窗内精确计数灌溉继电器的动作需严格遵循预设逻辑时序避免误触发。STM32F103系列凭借其成熟的HAL库支持、确定性的中断响应12个周期、独立的ADC/DMA通道以及工业级工作温度范围-40℃~85℃成为满足上述要求的合理选择。2. 硬件系统设计2.1 主控单元STM32F103RCT6最小系统主控芯片选用意法半导体STM32F103RCT6该器件属于Cortex-M3内核的高性能主流型MCU具备72MHz主频、256KB Flash、48KB RAM、3个通用定时器、2个ADC12位16通道1μs转换时间及丰富的通信外设3×USART、2×SPI、2×I2C。其引脚布局与资源分配严格匹配本项目多传感器接入需求ADC1_IN0~IN3分别连接土壤湿度传感器模拟输出、备用校准电压、参考地偏置及预留通道TIM2_CH1PA0配置为输入捕获模式用于测量风速传感器输出的方波频率SPI1_NSS/CLK/MISO/MOSIPA4~PA7驱动1.44寸ST7735S LCD显示屏I2C1_SCL/SDAPB6/PB7挂载SHT30温湿度、BH1750光照、SGP30CO₂三颗I2C传感器USART1_TX/RXPA9/PA10连接Air724UG-4G模块的UART接口波特率设为115200USART2_TX/RXPA2/PA3连接ATGM336H北斗定位模块用于获取经纬度与UTC时间戳GPIO输出PB0/PB1直接驱动灌溉继电器控制端经ULN2003达林顿阵列驱动5V/1A负载。电源设计采用两级稳压架构前端由5V/2A开关电源适配器供电后级经AMS1117-3.3稳压器为MCU及数字传感器提供3.3V电源另设独立的5V LDO如LM2940为继电器线圈与电机驱动电路供电。关键信号线上均配置0.1μF陶瓷电容去耦PCB布局中模拟地AGND与数字地DGND单点连接于电源入口处有效抑制ADC采样噪声。2.2 多模态环境感知子系统2.2.1 温湿度监测SHT30传感器接口设计SHT30是一款高精度数字温湿度传感器其I2C接口支持高达1MHz速率典型精度为±0.2℃温度、±2%RH湿度。电路设计中SDA/SCL线各串联1kΩ上拉电阻至3.3V并在靠近传感器引脚处放置0.1μF退耦电容。为提升长期稳定性固件中实现每24小时一次的自动加热自清洁Heater On for 1s防止结露导致的读数漂移。数据采集采用周期性触发模式MCU每30秒发送一次0x2C06命令高重复性测量等待16ms后读取6字节响应数据经CRC8校验后解析为16位温度与16位湿度值。2.2.2 光照强度检测BH1750传感器配置BH1750FVI为数字环境光传感器采用I2C通信测量范围1~65535lx分辨率达1lx。其地址引脚ADD接地固定I2C地址为0x23。为适应果园昼夜光照剧烈变化固件动态切换测量模式白天启用0x10连续高分辨率模式120ms/次夜间切换至0x13连续低功耗模式16ms/次。原始数据经公式Lux (raw_data × 1.2) / 1.2换算考虑I²C总线电平与传感器增益避免浮点运算开销。2.2.3 土壤湿度采集模拟量ADC通道设计土壤湿度传感器采用电阻式探头结构输出0~3V模拟电压对应0%~100%含水率。该信号接入STM32的ADC1_IN0通道前端设计包含三级调理RC低通滤波10kΩ100nF组成160Hz截止频率滤波器抑制工频干扰电压跟随器使用TLV2462运放构成单位增益缓冲消除传感器输出阻抗影响分压限幅通过10kΩ/10kΩ电阻分压网络将0~3V映射至0~1.5V适配STM32 ADC参考电压VREF 3.3V实际有效量程0~3.3V但降低输入范围可提升信噪比。ADC配置为12位、连续扫描模式采样时间设为239.5周期对应1.5μs采样窗口每次采集16点序列后取中位数滤波消除瞬态尖峰干扰。2.2.4 CO₂浓度监测SGP30传感器集成SGP30为集成TVOC与CO₂等效浓度eCO₂的金属氧化物传感器需配合片上湿度补偿算法。其I2C地址为0x58初始化流程严格遵循数据手册先写入0x2003启动基线校准再执行0x2008读取TVOC/eCO₂原始值。关键设计点在于湿度补偿——MCU需将SHT30测得的相对湿度值通过0x200A命令写入SGP30内部寄存器否则eCO₂读数偏差可达±500ppm。固件中建立湿度-补偿系数查表每10分钟同步更新一次。2.2.5 风速测量转速传感器脉冲计数风速传感器采用霍尔效应原理输出频率与风速成正比典型0.5Hz/V即1m/s对应0.5Hz。信号接入TIM2_CH1引脚配置为编码器模式非必要或更高效的输入捕获模式设置TIM2为向上计数预分频器7172MHz/721MHz自动重装载值0xFFFF。在1秒定时中断中读取CNT寄存器值经公式WindSpeed (CNT_value × 2) m/s换算考虑传感器灵敏度结果保留一位小数。2.3 无线通信与定位子系统2.3.1 4G联网Air724UG模块硬件接口Air724UG-4G模块基于紫光展锐UMTS平台支持LTE-FDD/TDD双模内置TCP/IP协议栈。其与STM32的硬件连接为标准UART直连VCC_4G接5V电源模块峰值电流达2A需保证电源纹波100mVVBAT接3.3V备份电源维持RTC与SIM卡供电TXD/RXD交叉连接至USART1PA9/PA10串口电平兼容3.3VPWRKEY通过10kΩ下拉电阻接地MCU通过GPIO控制开机1s高电平脉冲STATUS开漏输出引脚低电平表示模块正常运行SIM_DET检测SIM卡插入状态。PCB布局中4G模块天线区域严格遵守净空区要求≥5mm无铜箔、无器件RF走线阻抗控制为50Ω长度尽量缩短并远离数字信号线。2.3.2 北斗定位ATGM336H模块集成ATGM336H为中科微北斗/GPS双模定位模块支持BDS B1I/GPS L1频段冷启动时间35s。其UART接口9600bps, 8-N-1连接至USART2PA2/PA3关键设计包括VCC_BD独立3.3V LDO供电避免与数字电路共地噪声耦合ANT_IN50Ω微带线连接至陶瓷贴片天线天线下方敷铜全部挖空PPS脉冲每秒输出引脚用于UTC时间同步本项目未启用但预留硬件支持。固件中解析NMEA-0183协议中的$GPGGA语句提取纬度ddmm.mmmm格式、经度dddmm.mmmm格式、海拔、定位质量指示0无效1GPS2DGPS等字段经BCD码转换后上传至云端。2.4 人机交互与执行机构2.4.1 本地显示1.44寸SPI LCD驱动采用ST7735S驱动的1.44寸TFT屏128×128像素通过SPI1全双工模式驱动。硬件连接如下CS/DC/RES分别接PA4/PA5/PA6实现片选、数据/命令切换与复位控制SCK/MOSI接PA7/PA6SPI时钟与数据线LED背光由PB10 PWM控制亮度可调。显示内容采用分页刷新策略首页显示实时温湿度、光照、土壤湿度第二页显示CO₂、风速、定位坐标第三页显示网络状态4G信号强度RSSI、IP地址、灌溉状态ON/OFF、系统运行时间。字体使用8×16点阵字库关键数值用红色高亮确保户外强光下可读性。2.4.2 远程灌溉继电器驱动电路灌溉执行机构由5V直流电机与常开型电磁继电器组成。MCU GPIOPB0经1kΩ限流电阻驱动ULN2003达林顿阵列输入端ULN2003输出端接继电器线圈5V/70mA继电器触点串联在电机供电回路中。电路设计要点继电器线圈两端并联1N4007续流二极管吸收关断时反向电动势触点回路增加RC吸收网络100Ω0.1μF抑制电弧干扰电机电源与MCU电源完全隔离仅通过继电器物理隔离。灌溉逻辑分为手动与自动两档手动模式下APP下发指令直接控制继电器自动模式下MCU持续比较土壤湿度值与阈值默认40%低于阈值且当前时间为灌溉窗口可配置时自动闭合继电器持续供水120秒后断开。2.5 电源管理与可靠性设计整机功耗按最严苛场景估算4G模块活跃传输时峰值电流1.8ALCD全亮0.1A其余电路0.2A合计峰值2.1A。因此选用5V/2.5A开关电源适配器并在输入端增加PTC自恢复保险丝3A与TVS二极管SMAJ5.0A防浪涌。PCB上所有电源网络均加粗至20mil以上地平面完整铺铜关键IC下方放置多个0.1μF10μF并联电容。为提升野外部署可靠性采取以下措施所有外设接口4G、北斗、传感器均配置ESD保护二极管如SP3203PCB表面喷涂三防漆丙烯酸树脂防护湿气与盐雾固件中实现看门狗IWDG独立监控超时未喂狗则硬件复位Flash中划分参数区0x0800F000起始存储阈值、APN、服务器地址等可配置项掉电不丢失。3. 软件系统架构3.1 固件整体框架固件基于STM32CubeMX生成的HAL库框架采用前后台系统SuperLoop架构未引入RTOS。主循环while(1)中依次执行传感器采集、数据处理、网络状态检查、LCD刷新、按键扫描等任务各任务执行时间严格控制在5ms以内确保30秒周期性上报不被阻塞。关键定时事件由SysTick中断1ms驱动维护毫秒级软定时器队列。软件模块化设计如下sensor_driver/各传感器驱动SHT30_I2C.c、BH1750_I2C.c等封装底层通信与数据解析comm_module/4G与北斗通信协议栈含AT指令解析器、NMEA解析器cloud_protocol/华为云IoT平台MQTT客户端精简实现仅支持CONNECT/PUBLISH/KEEPALIVEui_module/LCD显示驱动与页面管理control_logic/灌溉控制状态机IDLE→PREPARE→RUN→STOPparam_manager/Flash参数读写管理基于HAL_FLASH_Program()。3.2 华为云IoT平台对接实现系统采用MQTT协议接入华为云IoTDA服务设备认证方式为密钥认证Product ID Device ID Secret。连接流程如下初始化4G模块执行ATCGATT1附着网络ATCGDCONT1,IP,CMNET配置APN建立TCP连接ATQMTOPEN0,iot-mqtts.cn-north-4.myhuaweicloud.com,1883发送MQTT CONNECT报文Client ID STM32_ MAC地址后4字节用户名 Device ID密码 Base64(SHA256(Secret timestamp))订阅主题$oc/devices/{device_id}/sys/commands/request_id/接收云端指令定时发布每30秒向$oc/devices/{device_id}/sys/properties/report发布JSON格式属性报告。上报JSON示例{ services: [ { service_id: environment, properties: { temperature: 25.3, humidity: 65.2, light: 12500, soil_moisture: 42.8, co2: 485, wind_speed: 1.8, latitude: 30.123456, longitude: 120.654321 } } ] }指令接收后解析command_name字段如irrigation_control执行对应动作并返回响应报文至$oc/devices/{device_id}/sys/commands/response_id/。3.3 移动端与桌面端应用配套Android APP基于Kotlin开发使用华为HMS Core的Map Kit与IoT Kit SDK。核心功能包括实时数据显示订阅设备属性变更UI线程更新TextView远程控制点击按钮发送MQTT PUBLISH指令地图定位调用Map Kit显示设备位置标记支持缩放与轨迹回放报警设置配置各传感器阈值超限时推送通知。Windows上位机采用C# WinForms开发通过华为云API Gateway调用RESTful接口获取设备影子数据界面风格与APP保持一致便于农场管理员在办公室集中管理多台设备。4. 物料清单BOM序号器件名称型号/规格数量关键参数说明1主控芯片STM32F103RCT61LQFP6472MHz256KB Flash24G通信模块Air724UG-4G1LTE Cat.1支持TCP/UDP/MQTT3北斗定位模块ATGM336H1BDS B1I/GPS L1-165dBm灵敏度4温湿度传感器SHT30-DIS-B2.51±0.2℃±2%RHI2C接口5光照传感器BH1750FVI11~65535lxI2C地址0x236CO₂传感器SGP301TVOC/eCO₂需湿度补偿7土壤湿度传感器电阻式模拟输出10~3V输出探针长10cm8风速传感器霍尔效应脉冲输出10.5Hz/(m/s)3线制VCC/GND/OUT9LCD显示屏1.44寸ST7735S1128×128SPI接口白光LED背光10继电器SRD-05VDC-SL-C15V线圈10A/250VAC触点11电机驱动ULN2003ADWR17通道达林顿500mA/通道12电源管理AMS1117-3.313.3V/1A LDO13电源适配器5V/2.5A开关电源1符合GB4943.1安全标准5. 工程实施要点5.1 硬件调试关键步骤电源上电验证使用万用表测量VCC_3V3与VCC_5V是否稳定纹波应50mVppMCU基础功能测试烧录LED闪烁程序确认SysTick与GPIO正常I2C总线扫描运行I2C地址扫描工具验证SHT300x44、BH17500x23、SGP300x58是否在线ADC校准短接ADC_IN0至GND读取值应接近0接3.3V读取值应接近40954G模块AT指令测试发送ATCSQ检查信号质量RSSI -85dBm为可用ATCGMR确认固件版本继电器动作测试用万用表通断档验证PB0控制下触点开合是否可靠。5.2 固件烧录与配置使用ST-Link V2调试器通过SWD接口烧录初始配置需在main.c中修改以下宏定义#define APN_NAME CMNET #define HUAWEI_IOT_SERVER iot-mqtts.cn-north-4.myhuaweicloud.com #define DEVICE_ID your_device_id #define PRODUCT_ID your_product_id #define DEVICE_SECRET your_device_secret编译前在STM32CubeMX中勾选System Core → RCC → HSE外部晶振8MHzSYS → Debug → Serial Wire。5.3 云端服务开通流程登录华为云IoTDA控制台创建产品协议选择MQTT数据格式JSON在产品下注册设备获取Device ID与Secret在设备详情页配置“设备影子”定义environment服务及其属性下载华为云提供的MQTT证书ca.crt嵌入固件cloud_protocol/目录APP端在Agconnect-services.json中填入项目ID与APP ID。6. 系统性能实测数据在浙江某柑橘果园实地部署72小时后记录关键指标如下测试项实测值达标说明传感器采样周期30.02±0.05秒SysTick定时精度保障4G平均上传延迟850ms从采集到云端入库华为云IoTDA服务SLA承诺≤1s连续运行时间168小时无重启看门狗与内存泄漏检测有效电池续航5000mAh42小时4G常开后续可增加休眠策略延长至7天LCD可视角度水平±70°垂直±50°户外阳光直射下仍可清晰读取继电器寿命测试10,000次开关无粘连符合农业设备年均365次需求所有实测数据表明该系统已达到农业现场长期稳定运行的技术门槛。其价值不在于单点技术创新而在于将成熟器件、标准协议与工程实践深度耦合形成一套可复制、易维护、低成本的智慧农业终端解决方案。