[ 電子電路 ] DHT11 V.S. Arduino

[ 電子電路 ] DHT11 V.S. Arduino

話說好像很久沒有寫了,所以這次要來記錄一下使用DHT11這個溫溼度的傳感器的方法,以免忘記了XD

首先先介紹一下這一個傳感器,這是一個便宜簡單好用但是沒有很精準的小東西。很多人在一開始測試都會選擇用這一棵來玩玩看(有些工作坊教課也是用這一個,假如以後我有開課的話,我也會用這一個)。下面就是這一個傳感器的規格:

– 濕度測量範圍:20~90%RH
– 濕度測量精度:±5%RH   @25℃
– 溫度測量範圍:0~50℃
– 溫度測量精度:±2℃  @25℃
– 電源供應範圍: 3~5.5V 上電後
– 訊號採集頻率:0.5Hz (每2秒一次),有的資料是寫1秒啦

好了,有了硬體後就要開始換軟體了(對了,應該大家都有準備Arduino的板子吧?!沒有是沒得玩了喔!),軟體首先要去下載DHT11的Library,這東西就去Adafruit下載吧!(就算你是從大陸買地的淘X貨也是一樣,除非你的賣家說要從別的地方下載)

https://github.com/adafruit/DHT-sensor-library

我自己是只有下載 DHT.cpp以及DHT.h兩個檔案而已,其他的就看看囉,反正現在主要只有這兩個,其他的我才不管咧!接著就把那兩個檔案放到Arduino程式的library資料夾內。

(你的Arduino安裝目錄)\libraries\DHT <== DHT是我給的資料夾名稱

以上都完成了,剩下就是程式碼囉!

#include <dht.h>
#define DHT11_PIN 2 //設定第二PIN為DHT的DATA PIN 
dht DHT;   // 啟動DHT
  
void setup()

{   
Serial.begin(9600);      //設定在終端機裡的傳輸速度              
Serial.println("DHT11 Humidity and temperature\n");   
delay(1000);             //在這裡先等了1秒囉(前面有寫要等開機)
}
  
void loop()

{   
DHT.read11(DHT11_PIN);   //去library裡面找DHT.read11
Serial.print("Humidity = ");   
Serial.print(DHT.humidity);   
Serial.print(" %RH   ");   
Serial.print("temperature = ");   
Serial.print(DHT.temperature);   
Serial.println(" C");
delay(2000);            //每2秒更新一次(其實前面有等一秒,這個可以放到最後面再等2秒)
}  

 

 

最後上傳程式後就可以每2秒看到一次溫溼度狀況囉~

DHT11 Humidity and temperature

Humidity = 57.00 %RH   temperature = 24.00 C
Humidity = 58.00 %RH   temperature = 24.00 C
Humidity = 57.00 %RH   temperature = 24.00 C

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料