ESP32, IOT物聯網

【IOT物聯網應用-ESP32】第十一篇:整合DHT11溫度與溼度感測器

實驗說明:

  • 本編將使用 ESP32 開發板連接「DHT11溫溼度模組」讀取DHT11溫溼度模組所測到的溫度、溼度。在市面上目前大家能找到的DHT11有兩種:一種是單純DHT11沒背板的,另一種是有焊背板的。差別在於焊了背板就可以省掉加電阻這個麻煩,也少一個腳位,方便很多,所以這次的範例也是介紹有背板的DHT11。
  • dht11 是一個結合濕度計和測溫元件量測週遭空氣環境,並與一個高性能八位元單晶片相連接,將所量測到的溫、濕度資料拆解成為數位訊號,再由感測器接腳將資料送出。使用上很簡單,但是抓取資料時必須要特別注意時間的掌控,而且每筆資料的抓取時間間隔要2秒鐘以上,不能太快。
  • dht11 的規格如下:
    濕度測量範圍:20~90%;
    濕度測量精度:±5%;
    溫度測量範圍:0~50℃
    溫度測量精度:±2℃
    電源供應範圍: 3~5V
    頻率不可超過:0.5Hz (每2秒一次)

材料:

  • ESP32-E DevKit
  • USB 傳輸線
  • DHT11模組
  • 麵包板
  • 杜邦線

▼ 購買IoT物聯網學習教材:

ESP32 物聯網應用學習套件 ESP32CAM IoT物聯網學習教材 適用Arduino

 

接線說明:

DHT模組只有3條線:GND(➖)、VCC(➕),還有DATA(Out),此範例我們把DATA (Out)資料線接「ESP32 GPIO15」。

▼ 接線時請各位務必注意DHT11背板的正負標示 ,接錯將會導致DHT模組燒毀

 

安裝 DHT11 程式庫:

  • 在 Arduino 整合環境功能表點選 草稿碼 / 匯入程式庫 / 管理程式庫。
  • 在右上方搜尋框輸入「dht11」,下方會列出所有符合條件的程式庫,不同程式庫使用的程式碼並不相同。此處點   選「SimpleDHT」,該項目右下角會出現「安裝」鈕,按「安裝」鈕開始安裝。

 

程式:

#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 列含入dht11程式庫。
  • 第 3 列設定 dht11 硬體接腳。
  • 第 4 列建立dht11程式庫物件。
  • 第 7 列設定輸出資料視窗的傳輸速率。
  • 第 16 列讀取 dht11 測量值。
  • 第 20~25 列顯示 dht11 測量值。
  • 第 27 列每3秒讀取及顯示一次。

▼輸出結果如下:

 

 

 

 

相關文章