十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

150 元搞定 ESP32 环境监测站:温湿度、光照、CO₂ 传感器一次接全

150 元搞定 ESP32 环境监测站:温湿度、光照、CO₂ 传感器一次接全 150 元搞定 ESP32 环境监测站温湿度、光照、CO₂ 传感器一次接全【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32凌晨两点被干燥憋醒摸黑找温湿度计不如让手机直接报数。这套用 arduino-esp32 核心跑的智能家居环境监测方案DHT22 管温湿度、BH1750 管光照、MH-Z19B 管 CO₂数据经 WiFi 推上云端看板超阈值还能自动联动除湿机和灯光。一块 45 元的开发板加几个传感器总成本不到 150 元一个周末就能装好。成品预览数据看板 自动联动长什么样周五晚到家手机弹提醒客厅湿度 78%除湿机已自动启动书房光照只有 80 lux台灯补亮。打开看板温湿度、光照、CO₂ 曲线全天可见。设备每 5 分钟醒一次采数据其余时间深度睡眠挂一块 18650 电池能用好几天。材料清单与接线照抄这组引脚最省事购物清单照着买就行硬件用途参考价ESP32-DevKitC主控自带 WiFi/蓝牙¥45DHT22温湿度测量¥18BH1750光照测量I2C 接口¥12MH-Z19BCO₂ 测量串口¥6518650 电池 TP4056 充电板便携供电¥15接线一句话版DHT22 的 DATA 接 GPIO4供电 3.3VBH1750 的 SDA/SCL 接 GPIO21/22和 DHT22 的 GND 共地MH-Z19B 吃 5VRX/TX 交叉接到 GPIO16/17它的 TX 进 ESP32 的 RX反之亦然别接成并行的。两个新手高频坑MH-Z19B 是串口不是 I2C接错总线读出来全是乱码BH1750 默认地址 0x23跑一遍 I2C 扫描能直接确认在位。开发环境Arduino IDE 装 ESP32 支持只需两下点击打开文件 → 首选项把 ESP32 官方开发板索引地址粘进附加开发板管理器网址仓库文档里有现成的见 docs/en/installing.rst然后进开发板管理器搜 esp32 装完收工。烧录时记得按一下 BOOT 键或者选通过 USB 串行烧录。核心代码采集、上传、省电、联动四件套采集三个传感器各管一摊DHT22 单线数字输出、BH1750 走 I2C、MH-Z19B 走串口三套接口互不冲突初始化几行搞定DHT dht(DHT_PIN, DHT22); BH1750 lightMeter; void setup() { dht.begin(); lightMeter.begin(BH1750::CONTINUOUS_HIGH_RES_MODE); Wire.begin(SDA_PIN, SCL_PIN); }上传WiFi 连上就把数据推出去Thingspeak 一条 GET 就能入库field1 温度、field2 湿度依次排开void sendToCloud(EnvironmentData d) { if (WiFi.status() ! WL_CONNECTED) return; WiFiClient client; if (!client.connect(api.thingspeak.com, 80)) return; String req GET /update?api_keyKEY field1 d.temperature field2 d.humidity field3 d.lightLevel HTTP/1.1\r\n; req Host: api.thingspeak.com\r\nConnection: close\r\n\r\n; client.print(req); client.stop(); }省电不采集的 299 秒让它睡觉esp_sleep_enable_timer_wakeup(300 * 1000000); // 5 分钟 esp_deep_sleep_start();深度睡眠功耗在微安级。但注意给传感器供电的那一路要用 GPIO 控制的负载开关关掉否则 ESP32 睡了传感器还在吃电省的那点全漏掉。整体节奏就是醒来 → 采集 → 上传 → 睡。联动数据回来先过一遍规则设备执行动作本身很简单继电器或 PWM 拉一下就行digitalWrite(DEHUMIDIFIER_RELAY, HIGH); // 开除湿 digitalWrite(LIGHT_PIN, 80); // 台灯补到半亮规则怎么写下一节细说。让它更聪明联动阈值怎么调 看板怎么搭联动的灵魂就在那几行 if阈值按自己家的体感调if (d.co2Level 1000) { digitalWrite(FRESH_AIR_RELAY, HIGH); // 拉新风 sendAlert(CO2 超标请通风); }一个具体场景夜里卧室门窗紧闭CO₂ 慢慢爬到 1200ppmESP32 一方面把新风机电磁阀拉高一方面往手机推一条预警——第二天早上你只会在看板曲线里看到那个尖峰而不会觉得头昏。可视化不用从零写Thingspeak 自带的看板直接出温湿度趋势、光照和 CO₂ 的 24 小时曲线想自建本地看板仓库里 libraries/WebServer 的示例拿过来改改就是网页版监测页。部署与避坑装在哪、怎么供电、新手最容易踩的坑安装位置选三个客厅中央距地 1.5 米且避开阳光直射数据最代表全屋、卧室床头监测睡眠环境、书房桌面盯光照和 CO₂。厨房就别放了油烟和炉火会让读数失真。供电一句话固定位置直接 USB 插电最稳要移动监测就换 18650 TP4056 充电板深度睡眠模式下充满一次能撑好几天。问WiFi 老是连不上 答先确认 ESP32 只连 2.4GHz 频段5GHz 它看不见密码里带特殊字符时注意转义信号太弱就加个路由器中继。问DHT22 读出来全是 NaNBH1750 读不到 答DHT22 在 DATA 和 VCC 之间补一颗 10kΩ 上拉电阻BH1750 先跑 I2C 扫描确认 0x23 在不在不在就是接线或供电问题。问电池掉电快深度睡眠没省到 答九成是传感器没断电——检查负载开关那路 GPIO 在 sleep 前有没有拉低。问MH-Z19B 刚上电 CO₂ 读数乱跳 答它需要几天预热和自动调零前几天的数据只当参考读数长期偏高就做一次强制校准。进阶玩法OTA 升级与本地缓存固件不用拆机刷OTA 三行跑起来仓库自带 libraries/ArduinoOTAArduinoOTA.setHostname(EnvMonitor); ArduinoOTA.begin();断网期间的数据别丢写进 Preferences网络恢复再补传prefs.begin(env); prefs.putFloat(temp, d.temperature); prefs.end();到这里一块能自己干活的环境监测站就齐了三个传感器、WiFi 上云、会省电、能联动还能远程升级。下一步可以加个 PM2.5 传感器把空气质量补全或者把推送接到自家智能家居平台。深度睡眠和 WiFi 上传的完整示例都在仓库里DeepSleep/TimerWakeUp 示例 和 WiFiClient 示例。遇到坑欢迎来项目讨论区聊。【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表