一、 實驗說明與選型指南
在 IoT 物聯網專案中,環境監測是最基礎且實用的應用之一。本教學將帶大家使用 ESP32 開發板 連接 DHT11 溫濕度感測器模組,實時讀取並顯示週遭環境的溫度與濕度資料。
裸板元件(4 針腳): 需要額外在 VCC 與 Data 腳位之間拉一顆 4.7K–10K Ω 的上拉電阻。
帶背板模組(3 針腳): 已內建上拉電阻,僅需 3 條線即可連接,極大幅簡化電路接線,減少接錯風險。
💡 本範例採用「帶背板的 DHT11 模組」進行示範。
二、 DHT11 溫濕度感測器規格與限制
DHT11 內部結合了數位溫濕度複合感測技術,使用單單線制(Single-bus)傳輸資料。在使用時需特別注意其取樣頻率限制:
規格項目 參數範圍 / 數值 工作電壓 3.3V – 5V DC 濕度量測範圍 20% ~ 90% RH (誤差 ±5%) 溫度量測範圍 0°C ~ 50°C (誤差 ±2°C) 採樣頻率上限 0.5 Hz(每 2 秒最多讀取 1 次)
三、 實驗材料準備
ESP32 開發板
麵包板 (Breadboard)
DHT11 溫濕度感測器模組(帶背板)
USB 傳輸線
杜邦線若干
🛒 一次備齊創客工具!
歡迎直接購買米羅科技的 ESP32 物聯網應用學習套件,免去東奔西跑湊零件的煩惱。內含 DHT11感測器、各類感測器及基礎電子元件,是學校課堂教學與個人專案開發的最佳首選!
四、 ESP32 與 DHT11 接線說明 (Pinout)
DHT11 背板模組僅有 3 個針腳,接線非常直覺:
VCC (+) ➔ 接 ESP32 的 5V
GND (-) ➔ 接 ESP32 的 GND
DATA (Out) ➔ 接 ESP32 的 GPIO 15
⚠️ 燒毀警告: 接線前請務必確認 DHT11 背板上的 + 與 - 標記,若電源與地線接反會導致感測器晶片燒毀!
五、 安裝 DHT11 程式庫 (SimpleDHT)
為了簡化程式編寫,我們使用社群廣泛推薦的 SimpleDHT 函式庫:
開啟 Arduino IDE。
點選上方選單 「草稿碼」 (Sketch) ➔「匯入程式庫」 (Include Library) ➔「管理程式庫…」 (Manage Libraries…)。
在右上方搜尋欄輸入
SimpleDHT。找到 SimpleDHT 項目,點擊 「安裝」 (Install) 按鈕完成安裝。
六、 ESP32 讀取溫濕度程式碼範例
將以下程式碼複製並上傳至 ESP32 開發板中:
#include <SimpleDHT.h>
int pinDHT11 = 15; //ESP32 GPIO15
SimpleDHT11 dht11;
void setup() {
Serial.begin(9600);
}
void loop() {
byte temperature = 0;
byte humidity = 0;
int err = SimpleDHTErrSuccess;
// start working...
Serial.println("=================================");
if ((err = dht11.read(pinDHT11, &temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
Serial.print("Read DHT11 failed, err="); Serial.println(err);delay(1000);
return;
}
Serial.print("Humidity = ");
Serial.print((int)humidity);
Serial.print("% , ");
Serial.print("Temperature = ");
Serial.print((int)temperature);
Serial.println("C ");
delay(3000); //每3秒顯示一次
}
1. 程式碼關鍵重點解析
#include <SimpleDHT.h>:引入 SimpleDHT 程式庫。dht11.read(...):傳入腳位與存放溫濕度的變數位址,成功時返回SimpleDHTErrSuccess。delay(3000):確保兩次讀取間隔超過 2 秒,符合 DHT11 的硬體限制規格。
▼輸出結果如下:
七、 常見問題與排錯指南 (FAQ)
1. 序列埠監控視窗一直顯示 Read DHT11 failed 怎麼辦?
檢查接線: 確認 DATA 腳位是否確實連接到 GPIO15,電源與 GND 是否鬆脫。
採樣時間過短: 請確認
loop()內的delay()是否大於 2000 ms(2 秒)。電壓不足: 嘗試將 VCC 從 3.3V 改接至 5V 腳位(部分 DHT11 模組在 3.3V 供電下穩定度較低)。
八、 結語與下一篇教學
恭喜你!成功學會了如何使用 ESP32 讀取 DHT11 溫濕度感測器。掌握了環境數據的讀取能力後,結合前面幾篇學過的「LCD 1602 螢幕」,你就可以把溫濕度數值直接顯示在螢幕上,打造出一台擺在桌上的智慧小儀表!下一篇教學,我們將帶大家解鎖更多精彩的 ESP32 物聯網專題!
👈 上一篇回顧: 【ESP32教學】第十篇:HC-SR04超音波測距模組原理與距離測量實作
▼【ESP32教學】教學總索引頁面



