150元DIY一套ESP32环境监测站:温湿度光照一把抓,数据自动上云
2026/9/16 17:07:49 网站建设 项目流程

150元DIY一套ESP32环境监测站:温湿度光照一把抓,数据自动上云

【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32

周五下午你加班,家庭群里弹出消息:"妈,卧室闷得慌,你回来看看。"如果家里有个ESP32环境监测站,这个场景就不会发生——它实时采集温湿度、光照和CO₂,通过WiFi把数据推到云端,超阈值时还能自动执行通风、报警这些动作。整套方案DIY下来,硬件成本150元上下,从接线到跑通,一个周末就能搞定。

方案总览

部件作用大致价格
ESP32-DevKitC 开发板大脑,负责采集与WiFi传输45元
DHT22 温湿度传感器数字输出,精确到0.1°C18元
BH1750 光照传感器走I2C(两根线就能跑的数据总线)12元
MH-Z19B CO₂传感器串口输出,最高读到5000ppm65元
18650电池+充电板移动供电,USB可充15元

整个系统说白了就三步:传感器读数 → ESP32打包走WiFi → 手机端(比如Thingspeak)收数画图。数据随时能看,联动逻辑也可以直接跑在设备端。

接线与配置速查

接线一共三组线,照抄即可:

  • DHT22:VCC接3.3V,GND接GND,DATA接GPIO4
  • BH1750:VCC接3.3V,GND接GND,SDA接GPIO21,SCL接GPIO22
  • MH-Z19B:VCC接5V(这颗不能用3.3V),GND接GND,RX接GPIO16,TX接GPIO17

软件侧准备:

  1. Arduino IDE → 首选项,把安装指南里的官方开发板URL粘进"附加开发板管理器网址"
  2. 开发板管理器里搜 "esp32",点安装
  3. 工具菜单选中 "ESP32 Dev Module",并选对串口
  4. 库管理器安装 DHT 传感器库、BH1750 库
  5. 上传后打开115200波特率的串口监视器看输出

核心功能拆解

数据怎么采集、怎么上云

最基础的需求是"想看就有"。四个传感器一轮读下来,直接推给云端:

DHT dht(DHT_PIN, DHT22); // 温湿度 BH1750 lightMeter; // I2C光照 EnvironmentData d = readSensors(); // 四个传感器全读一遍,装进结构体 if (WiFi.status() == WL_CONNECTED) { WiFiClient client; client.connect("api.thingspeak.com", 80); client.print(String("GET /update?api_key=KEY&field1=") + d.temperature + "&field2=" + d.humidity); client.stop(); }

读四个值塞进一个结构体,拼一条HTTP请求推上去,然后断开。HTTP客户端的裸写法可以看 WiFiClient示例。

怎么省电、电池能用多久

想跑电池的话,这一步必做。低功耗传感器节点的核心就是休眠机制:ESP32深度睡眠时只有微安级电流,和WiFi全速工作比,相当于一睡一跑,差好几个数量级。

void enterDeepSleep(int seconds) { esp_sleep_enable_timer_wakeup(seconds * 1000000); // 到点自动叫醒 digitalWrite(SENSOR_POWER_PIN, LOW); // 顺手给传感器断电 esp_deep_sleep_start(); // 睡 }

每5分钟醒一次采完就睡,2000mAh的18650实测能撑两周以上。完整写法在 TimerWakeUp示例。

怎么让设备自己联动

光看数据不够,让它动手。四条if就是四条值守规则:

void smartControl(EnvironmentData d) { if (d.temperature > 28.0) controlAC(true); // 太热,开空调 if (d.humidity > 70.0) controlDehumidifier(true); // 太潮,开除湿 if (d.lightLevel < 100) controlLight(true); // 太暗,开灯 if (d.co2Level > 1000) sendAlert("该通风了!"); }

设备从此不是"温度计",而是"值班员",你不在家它也盯着。

⚠️ 避坑与故障速查

问题大概率原因处理办法
WiFi总连不上只支持2.4GHz、密码错、信号弱确认路由器2.4G信道,离得远就挪近点
温湿度读数卡死DHT22总线卡住DATA线上拉电阻,读到异常值就重新初始化
光照忽上忽下强光直射或遮挡影响读数固定位置避开直射,传感器上加个漫射罩
电池两天就没深睡没生效、WiFi没关量一下睡眠电流,睡之前先断WiFi
云端没收到数据API密钥过期、请求失败把上传返回值打印到串口排查

进阶玩法(选做)

  • OTA升级:新固件空推上去,不用拆机不用烧录,监测站也能像手机一样升级,参考 libraries/ArduinoOTA/examples/BasicOTA。
  • 多节点组网:想监测多个房间,用ESP-NOW让各监测站点对点无线通信,不经过路由器,由一个主节点统一上报,参考 libraries/ESP_NOW/examples/ESP_NOW_Network。

下周五你加班时,手机打开的第一样东西不再是家庭群,而是那个仪表盘,屋里每个数字都清清楚楚。完整源码、示例和文档,见 arduino-esp32仓库。

【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询