news 2026/4/23 6:41:22

基于stm32多路温室大棚监测 容易制作 主要功能: [1]OLED屏可以实时显示四路温湿度数据

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于stm32多路温室大棚监测 容易制作 主要功能: [1]OLED屏可以实时显示四路温湿度数据

基于stm32多路温室大棚监测 容易制作 主要功能: [1]OLED屏可以实时显示四路温湿度数据 [2]手机APP可以远程监控四路温湿度数据 [3]温度湿度阈值均可手动通过按键设置 温度或者湿度超过阈值上限打开排气扇 温度低于阈值打开加热器 湿度低于阈值打开加湿器 原理图pcb使用立创eda 软件Keil5 主控芯片是stm32f103c8t6 WIFI模块使用 esp 8266 云平台使用阿里云

搞个温室大棚监测系统其实没想象中难,咱们今天就拿STM32F103C8T6这个性价比之王来折腾。先看硬件清单:四个DHT11温湿度探头(别买成DHT22,引脚不通用)、0.96寸OLED屏、ESP8266-01S模组,外加几个按键和继电器模块。原理图用立创EDA画特别方便,记得给8266单独供电,这货耗电跟小饿狼似的。

先上核心代码——温湿度采集部分:

// 四路传感器GPIO定义 #define DHT1_PORT GPIOB #define DHT1_PIN GPIO_Pin_12 //...其他三路类似 void Read_DHTs(float temp[4], float humi[4]){ for(int i=0; i<4; i++){ DHT_Read(&dht[i]); // 自定义的DHT驱动 temp[i] = dht[i].temperature; humi[i] = dht[i].humidity; Delay_ms(50); // 防止连续读取冲突 } }

这个循环读取要注意间隔时间,我之前连续读取导致数据漂移,后来加了50ms延时稳如老狗。OLED显示用硬件I2C驱动,注意把四路数据排版好看点,别挤成一坨。

阈值设置才是精髓,用按键控制:

// 按键状态机处理 if(set_mode){ switch(current_param){ case TEMP_HIGH: temp_high += (key_up)?1:-1; break; //...其他三个参数类似 } Save_Thresholds(); // 写入Flash保存 }

这里有个坑——STM32的Flash写入前要先解锁,我用的是库函数自带的Flash操作,记得页地址别覆盖程序区。保存时建议用结构体打包四个阈值,避免多次擦写。

基于stm32多路温室大棚监测 容易制作 主要功能: [1]OLED屏可以实时显示四路温湿度数据 [2]手机APP可以远程监控四路温湿度数据 [3]温度湿度阈值均可手动通过按键设置 温度或者湿度超过阈值上限打开排气扇 温度低于阈值打开加热器 湿度低于阈值打开加湿器 原理图pcb使用立创eda 软件Keil5 主控芯片是stm32f103c8t6 WIFI模块使用 esp 8266 云平台使用阿里云

阿里云通信这块最折腾,ESP8266的AT指令要配置成透传模式:

void ESP_SendData(float* temp, float* humi){ char buffer[128]; sprintf(buffer,"{\"temp1\":%.1f,\"humi1\":%.1f,...}",temp[0],humi[0],...); USART_SendString(USART2, "AT+CIPSEND=0,128\r\n"); Delay_ms(100); USART_SendString(USART2, buffer); }

注意JSON格式的引号要用转义字符,我在这卡了半天才发现。云端记得配置物模型,每个传感器对应一个属性点。

控制逻辑简单粗暴:

void Control_Devices(){ for(int i=0; i<4; i++){ if(temp[i] > temp_high) Relay_On(FAN); // 开风扇 else if(temp[i] < temp_low) Relay_On(HEATER); if(humi[i] > humi_high) Relay_On(FAN); else if(humi[i] < humi_low) Relay_On(HUMIDIFIER); } }

继电器驱动记得加光耦隔离,别让大电流烧了单片机GPIO。实测发现加湿器和加热器别同时开,电源容易撑不住。

最后说下PCB布局:模拟传感器走线远离数字电路,8266的天线区域要净空。电源部分多放几个滤波电容,我第一版没加导致8266启动时OLED会闪屏。完整工程代码已经扔Github了,需要自取。这项目最适合练手,从传感器到云端全链路打通,做完感觉自己能去搞智慧农业了(笑)。

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

22岁的创造力变量:切尔基如何在曼城获得自由开火权?

当拉扬切尔基在比赛中拿球&#xff0c;曼城的进攻节奏时常会增添一抹不一样的色彩。一种基于直觉的、带点冒险意味的灵感&#xff0c;在高度体系化的英超赛场显得尤为特别。这位22岁的法国中场&#xff0c;正以惊人的速度&#xff0c;成为联赛中最受瞩目的创造力之源。切尔基的…

作者头像 李华
网站建设 2026/4/18 19:26:49

不要错过!2026年AI获客系统TOP10推荐,助力你的商业创新!

不容错过&#xff01;2026年AI获客系统热门推荐榜单在如今竞争白热化的市场中&#xff0c;找到一个合适的智能获客系统对企业发展至关重要。今天&#xff0c;我们为大家整理了2026年排名前十的AI获客系统推荐&#xff0c;这些系统能够有效提升客户转化率&#xff0c;优化你的营…

作者头像 李华
网站建设 2026/4/18 23:05:28

趣味化训练革命:看韩宁波如何让技术难点变通关游戏

趣味化训练革命&#xff1a;看韩宁波如何让技术难点变通关游戏在西北羽毛球教育领域&#xff0c;韩宁波以其独创的"游戏化训练体系"掀起了一场教学革命。这位将省级单打亚军经验转化为教学智慧的教练&#xff0c;通过科技赋能与趣味设计&#xff0c;让高远球、杀球、…

作者头像 李华
网站建设 2026/4/16 8:57:07

Spring事件机制完全指南:解耦利器与实战

一、为什么需要事件机制&#xff1f; 在传统的业务开发中&#xff0c;我们经常会遇到这样的场景&#xff1a; // 传统方式&#xff1a;强耦合 Service public class OrderService {Autowiredprivate EmailService emailService;Autowiredprivate SmsService smsService;Autow…

作者头像 李华