news 2026/3/28 4:46: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/3/27 16:40:02

‌游戏测试中的场景模拟实战操作

一、场景模拟的行业价值在《赛博朋克2077》首发热更新事故、某MMO游戏开服宕机等典型案例中&#xff0c;暴露出传统测试的局限性。场景模拟通过复现‌真实用户行为轨迹‌、‌硬件环境差异‌和‌网络波动变量‌&#xff0c;可提前发现82%的并发逻辑缺陷&#xff08;数据来源&…

作者头像 李华
网站建设 2026/3/26 23:13:12

Jmeter 性能测试基础讲义

JMETER 介绍 Apache JMeter是Apache组织开发的基于Java的开源压力测试工具、接口以及自动化测试。用于对软件做压力测试&#xff0c;它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象…

作者头像 李华
网站建设 2026/3/27 18:35:01

智慧环卫新纪元:Deepoc移动机器人如何重构城市垃圾治理体系

摘要&#xff1a;在城市精细化治理需求日益凸显的背景下&#xff0c;传统垃圾收运模式面临效率低、成本高、二次污染等痛点。基于Deepoc具身智能技术的移动收垃圾机器人&#xff0c;通过多机协同、数据驱动和智能决策三大核心能力&#xff0c;正推动城市环卫体系向智能化、网络…

作者头像 李华
网站建设 2026/3/26 23:13:12

外汇接口接入的真实体验分享

做外汇策略或者行情工具的人&#xff0c;应该都体验过这种场景&#xff1a;策略在回测里表现完美&#xff0c;一上线实时行情就乱了套。最开始我以为问题在策略逻辑&#xff0c;后来才意识到&#xff0c;真正拖后腿的&#xff0c;是外汇接口本身。 第一次接外汇 API 接口时&am…

作者头像 李华
网站建设 2026/3/27 1:37:18

面试官问:线程池拒绝策略怎么选,才不会丢任务?

面试官问&#xff1a;线程池拒绝策略怎么选&#xff0c;才不会丢任务&#xff1f;本文将从原理、策略选型到高阶方案&#xff0c;助你从容应对。面试官问&#xff1a;线程池拒绝策略怎么选&#xff0c;才不会丢任务&#xff1f; 当面试官追问“线程池满了如何处理&#xff1f;…

作者头像 李华