2015年5月25日 星期一

課程26-溫濕度模組實驗

目的:

使用Arduino 讀取溫濕度模組,並顯示在Serial 通訊上。

電子元件:

麵包板 x 1
Arduino 主板 x 1
溫溼度模組 x1

接線圖:


電路圖:


下載:

DHT-sensor-library-master.zip 解壓縮後得到目錄DHT,放到Arduino的sketchbook目錄下的libraries目錄裡。

程式碼:

  1. #include <dht.h>  
  2. dht DHT;
  3. #define DHT11_PIN 3
  4. void setup()  
  5. {  
  6.  Serial.begin(9600);  
  7. }  
  8. void loop(){  
  9. int chk = DHT.read11(DHT11_PIN);  
  10.  switch (chk)  
  11.  {  
  12.    case 0:  Serial.print("OK,\t"); break;  
  13.    case -1: Serial.print("Checksum error,\t"); break;  
  14.    case -2: Serial.print("Time out error,\t"); break;  
  15.    default: Serial.print("Unknown error,\t"); break;  
  16.  }  
  17.  Serial.print(DHT.humidity,1);  
  18.  Serial.print(",\t");  
  19.  Serial.println(DHT.temperature,1);  
  20.  delay(1000);  
  21. }  

程式說明:

第一行 匯入dht.h
第二行 建立一個 dht 物件為DHT。
第三行 宣告DHT11_PIN 腳位為Pin3。
第四行~第七行 初始設定 打開Serial 通訊,並設定頻率為9600。
第八行~第二十一行 為主程式。
第九行 讀取溫溼度模組狀態並儲存在整數變數chk 。
第十行 使用switch 來判別溫溼度模組的狀態。
第十二行 如果狀態為 0 ,在Serial 列印OK ,並且退出switch 判斷。
第十三行 如果狀態為 -1 ,在Serial 列印Checksum error ,並且退出switch 判斷。
第十四行 如果狀態為 -2 ,在Serial 列印Time out error,並且退出switch 判斷。
第十五行 switch預設,在Serial 列印Unknown error,並且退出switch 判斷。
第十七行 在Serial 列印DHT.humidity,溫溼度模組的溼度值。
第十八行 在Serial 列印分隔符號。
第十九行 在Serial 列印DHT.temperature,溫溼度模組的溫度值。
第二十行 延遲1秒。

圖表:


實驗影片:

沒有留言:

張貼留言

Arduino、Raspberry Pi、System Integration,如有問題或建議,可以互相討論喔~