
ESP32 智能环境监测站实战教程:从零搭建温湿度+OLED+MQTT 物联网节点
一、项目背景
随着智能家居、工业 4.0 与智慧农业的快速发展,实时环境监测已成为嵌入式领域最常见的入门到进阶项目。本教程基于 ESP32 主控,搭配 DHT22 温湿度传感器与 0.96 寸 OLED 显示屏,通过 MQTT 协议 把数据推送至云端或本地 Broker。完成本项目后,你将掌握:
- ESP32 GPIO、I2C、单总线(OneWire)外设驱动
- ArduinoJson 序列化与发布
- PubSubClient 连接免费公共 MQTT Broker
- SSD1306 OLED 显示中英文与图标
- WiFi 连接与看门狗策略
整个项目代码约 180 行,可在 30 分钟内跑通。
二、硬件清单
| 序号 | 元器件 | 型号 | 数量 | 参考价格 |
|---|---|---|---|---|
| 1 | ESP32 开发板 | ESP32-DevKitC V4 | 1 | ¥28 |
| 2 | 温湿度传感器 | DHT22(AM2302) | 1 | ¥9 |
| 3 | OLED 屏 | 0.96 寸 SSD1306 I2C 128×64 | 1 | ¥12 |
| 4 | 面包板 | 400 孔 | 1 | ¥3 |
| 5 | 杜邦线 | 公-母 / 公-公 | 若干 | ¥2 |
| 6 | Micro-USB 线 | 数据线 | 1 | — |
总计成本约 55 元,可复用于后续 BLE、LoRa 等项目。
三、接线图说明
3.1 引脚分配表
| 模块 | 引脚 | ESP32 GPIO | 说明 |
|---|---|---|---|
| DHT22 | VCC | 3V3 | 供电 3.3V |
| DHT22 | DATA | GPIO4 | 数据线,外接 10kΩ 上拉 |
| DHT22 | GND | GND | 接地 |
| OLED | VCC | 3V3 | 供电 |
| OLED | GND | GND | 接地 |
| OLED | SDA | GPIO21 | I2C 数据 |
| OLED | SCL | GPIO22 | I2C 时钟 |
注意:DHT22 工作电压范围 3~5.5V,ESP32 3V3 可直接驱动,但若使用长线(>1m)建议改为 5V 供电并加电平转换。
3.2 实物连接描述
- 将 ESP32 平放于桌面,Micro-USB 口朝向自己。
- 面包板横插入 ESP32 引脚两侧,保持天线朝外避免被遮挡。
- OLED 模块 插在面包板左上方,四脚朝下;用公-母线连接:VCC→3V3,GND→GND,SDA→GPIO21,SCL→GPIO22。屏幕默认字面朝向 USB 口。
- DHT22 三个引脚朝外接出:红线(VCC)→3V3,黑线(GND)→GND,黄线(DATA)→GPIO4。在 DATA 与 VCC 之间跨接 10kΩ 上拉电阻,否则读数极易失败。
- 检查无短路后,插入 USB 给开发板上电,OLED 应显示"ESP32 Env Monitor"启动 LOGO。
四、完整代码(Arduino 框架)
请在 Arduino IDE 中安装以下库:
DHT sensor library(Adafruit