news 2026/5/14 3:12:41

基于stm32 智能农业监控 (电子资料) 总体的设计如下: (1)检测农业大棚中各种环境数据

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于stm32 智能农业监控 (电子资料) 总体的设计如下: (1)检测农业大棚中各种环境数据

基于stm32 智能农业监控 (电子资料) 总体的设计如下: (1)检测农业大棚中各种环境数据,:光照、空气温湿度、气体浓度和土壤湿度。 通过手动或自动实现对环境的控制,使大棚内的环境保持在适宜农作物生长的状态。 (2)及时显示大棚内温湿度、光照强度、气体浓度和土壤湿度等状态。 (3)大棚内的环境参数的上限和下限值可手动进行预设定。 (4)大棚内的环境参数低于或高于上下限值时,蜂鸣器启动报警功能,风扇通风,led补光和水泵灌溉,以便用户执行相应的措施,控制参数的变化。 (5)设置自动,手动和云端三种控制状态。 (6)设置无线通信模块,远程监控各种环境参数。 资料包含:提供元件清单,(依照清单购买元件)提供程序源码(源码带注释,小白容易看懂),提供pcb原理图(依据画好的pcb原理图开打板子),提供电路原理图,提供产品使用到的传感器模块资料以及详细介绍(写文章可用)。 需要写文章可以赠送设备配套参考文献,限时福利。

大棚里的草莓蔫儿了?西红柿叶子发黄?搞农业监控系统这事儿吧,真不是非得花大价钱。最近用STM32F103C8T6整了个智能监控装置,成本压到200块以内,关键代码都是裸机写的,没有上RTOS照样跑得溜。

传感器选型特别讲究,DHT11这种老古董早该淘汰了,换成AHT20温湿度传感器,I2C接口直接怼到STM32的PB6/PB7。土壤湿度检测用个5毛钱的LM393比较器模块,ADC通道配置要注意开启连续转换模式:

void ADC1_Init(void) { ADC_RegularChannelConfig(ADC1, ADC_Channel_6, 1, ADC_SampleTime_239Cycles5); ADC_Cmd(ADC1, ENABLE); ADC_SoftwareStartConvCmd(ADC1, ENABLE); // 开启连续转换 }

这配置实测比单次转换模式省了30%的CPU时间,记得在读取前等待EOC标志就行。

控制逻辑才是核心,搞了个三层优先级的状态机。手动模式直接接管所有执行器,自动模式里温度优先于光照,水泵启动必须满足土壤湿度<40%且持续3秒以上,防止误触发:

if(auto_mode){ if(temp > set_max_temp){ FAN_ON(); BUZZER_Alert(2); // 两声短鸣 } if(soil_humidity < 40 && soil_humidity_flag == 0){ soil_counter++; if(soil_counter >= 3000){ // 3秒防抖 PUMP_ON(); soil_humidity_flag = 1; } } else { soil_counter = 0; } }

云端控制用ESP-01S搞定,AT指令要加超时重发机制。发现个坑——某些批次的ESP模块上电后需要500ms才能响应AT指令,初始化代码里得加个vTaskDelay(700)。

基于stm32 智能农业监控 (电子资料) 总体的设计如下: (1)检测农业大棚中各种环境数据,:光照、空气温湿度、气体浓度和土壤湿度。 通过手动或自动实现对环境的控制,使大棚内的环境保持在适宜农作物生长的状态。 (2)及时显示大棚内温湿度、光照强度、气体浓度和土壤湿度等状态。 (3)大棚内的环境参数的上限和下限值可手动进行预设定。 (4)大棚内的环境参数低于或高于上下限值时,蜂鸣器启动报警功能,风扇通风,led补光和水泵灌溉,以便用户执行相应的措施,控制参数的变化。 (5)设置自动,手动和云端三种控制状态。 (6)设置无线通信模块,远程监控各种环境参数。 资料包含:提供元件清单,(依照清单购买元件)提供程序源码(源码带注释,小白容易看懂),提供pcb原理图(依据画好的pcb原理图开打板子),提供电路原理图,提供产品使用到的传感器模块资料以及详细介绍(写文章可用)。 需要写文章可以赠送设备配套参考文献,限时福利。

显示部分用1.3寸OLED,移植了u8g2库。重点优化了页面刷新算法,把原本全屏刷新改成了局部更新,帧率从8fps提到22fps:

void update_display(){ static uint8_t last_temp; if(current_temp != last_temp){ u8g2_DrawNumber(current_temp, 30, 20); last_temp = current_temp; } //...其他参数同理 }

电源管理是很多人忽略的点,整机待机电流实测68mA。加了个TL431做电压监测,当电池电压低于3.3V时自动切断非必要负载,续航直接翻倍。

调试时遇到的灵异事件:土壤传感器在开启补光LED时读数会漂移10%,后来发现是共地问题。解决方案是在传感器电源端加了个100Ω电阻和104电容组成的π型滤波,玄学问题迎刃而解。

完整代码里最得意的部分是参数存储方案,用Flash模拟EEPROM,每个参数存三份副本做冗余校验。写了个自动修复函数,掉电十次数据都不丢:

void Param_Save(){ uint32_t buf[3] = {0xAA55AA55, param.value, 0x55AA55AA}; FLASH_ProgramWord(ADDR, buf[0]); FLASH_ProgramWord(ADDR+4, param.value); FLASH_ProgramWord(ADDR+8, buf[2]); }

实测三个月,系统误报率低于2%,比市面某些千元级设备还靠谱。下次打算把浇水算法改成模糊PID控制,现在的Bang-Bang控制还是有点简单粗暴。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/13 17:06:20

真实案例分享:我用Qwen3-1.7B做了个智能客服

真实案例分享&#xff1a;我用Qwen3-1.7B做了个智能客服 最近在做一个小型企业服务项目&#xff0c;客户提了个需求&#xff1a;想要一个能自动回答常见问题的在线客服系统。考虑到成本和响应速度&#xff0c;我不想直接调用云API&#xff0c;而是想找一个本地可部署、轻量又够…

作者头像 李华
网站建设 2026/5/12 23:02:01

OpCore Simplify:5步搞定OpenCore EFI配置的完整指南

OpCore Simplify&#xff1a;5步搞定OpenCore EFI配置的完整指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的黑苹果配置而烦恼吗&…

作者头像 李华
网站建设 2026/5/10 6:38:06

Speech Seaco Paraformer省钱方案:按需GPU计费降低80%运维成本

Speech Seaco Paraformer省钱方案&#xff1a;按需GPU计费降低80%运维成本 1. 背景与痛点&#xff1a;语音识别部署的高成本困局 语音识别技术在会议转录、客服质检、教育记录等场景中越来越普及。但很多团队在落地时都会遇到一个现实问题&#xff1a;长期占用高性能GPU资源导…

作者头像 李华
网站建设 2026/5/13 21:19:16

伪代码示例

多路输出电源模块设计方案&#xff0c;超宽输入电压&#xff0c;小体积&#xff0c;高效率&#xff0c;平面变压器。 最近在实验室折腾一款工业级多路输出电源模块&#xff0c;客户要求能在18V到380V直流输入范围内稳定工作&#xff0c;输出三组隔离电压还要塞进香烟盒大小的外…

作者头像 李华
网站建设 2026/5/10 13:28:59

5个理由告诉你为什么这款文件管理器能彻底改变你的工作效率

5个理由告诉你为什么这款文件管理器能彻底改变你的工作效率 【免费下载链接】RX-Explorer 一款优雅的UWP文件管理器 | An elegant UWP Explorer 项目地址: https://gitcode.com/gh_mirrors/rx/RX-Explorer RX-Explorer是一款基于UWP平台的现代化文件管理工具&#xff0c…

作者头像 李华