DHT11 是一種數位式的溫度溼度感測器。
測量範圍:可測量溫度 0°C 到 50°C,濕度 20% 到 90%。
溫度測量精度:正負2°C。
濕度測量精度:正負 5%。
每次讀取訊號時間,必須間隔2秒以上。
量測濕度:
當環境中的溼度發生變化,感濕元件會吸收或釋放濕氣,讓感測器的電容值發生變化。
通過測量電容值變化,DHT11可以透過先前校準的數值,判斷出當前的溼度值。
同時,熱敏電阻會測量環境的溫度。
內建的控制器會將濕度和溫度值轉換為數位訊號,並將訊號輸出。
微控制器會用通訊腳位與DHT11進行通訊,發出請求並接收感測器返回的數據。
在 Arduino 功能表點選 草稿碼->匯入程式庫 -> 管理程式庫。
在搜尋框輸入「DHT11」,下方會列出所有符合條件的程式庫,不同程式庫使用的程式碼並不相同。此處點選「SimpleDHT」,該項目右下角會出現「安裝」鈕,按「安裝」鈕開始安裝。
//使用DHT11函式庫
#include <SimpleDHT.h>
//定義腳位自行更改
int pinDHT11 = 18;
//建立DHT11函式庫物件
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(1000); //每1秒顯示一次
}