# Arduino筆記-5 **注意!必須使用Arduino IDE,因為mBlock不支援序列埠監控窗** ## 學習內容 1. 認識溫濕度感測器(DHT11) 2. 溫濕度感測器(DHT11)接線 3. 編寫溫濕度感測器(DHT11)程式 ## 認識溫濕度感測器(DHT11) DHT11是一款結合濕度計和測溫元件量測週遭空氣環境的感測器, 將所量測到的溫、濕度資料拆解成為數位訊號, 再由感測器接腳將資料送出。 抓取資料時必須要特別注意讀取時間的間隔, 每筆資料的讀取時間的間隔需要2秒鐘以上。 DHT11 的規格如下: 濕度測量範圍:20~90%; 濕度測量精度:±5%; 溫度測量範圍:0~50℃ 溫度測量精度:±2℃ 電源供應範圍: 3~5V 頻率不可超過:0.5Hz (每2秒一次) ## 溫濕度感測器(DHT11)接線 我們使用的DHT11模組有3個接腳, 分別為正極、負極、信號線, 每塊模組的順序都不太一樣, 要依照模組上方的標示進行接線 ![image](https://hackmd.io/_uploads/BkwW0dbwC.png) ## 編寫溫濕度感測器(DHT11)程式 在編寫程式前需要安裝函式庫, 如果使用Arduino IDE 點選 工具 > 管理程式庫(**Ctrl+Shift+I**) >在搜尋欄中輸入**SimpleDHT**> 點選**安裝** ![image](https://hackmd.io/_uploads/r1g60rGw0.png) 接著打入以下程式碼 ```ino= #include <SimpleDHT.h> int pinDHT11 = 9; SimpleDHT11 dht11; void setup() { Serial.begin(9600); } void loop() { byte temperature = 0; byte humidity = 0; int err = SimpleDHTErrSuccess; if ((err = dht11.read(pinDHT11, &temperature, &humidity, NULL)) != SimpleDHTErrSuccess) { Serial.print("Read DHT11 failed, err="); Serial.println(err);delay(1000); return; } Serial.print("溫度: "); Serial.print((int)temperature); Serial.print("°C "); Serial.print(",濕度:"); Serial.print((int)humidity); Serial.println("%"); delay(2000); } ``` 編譯並上傳後,接著按下鍵盤的**Ctrl+Shift+M** 底下原本黑色的視窗就會變成這個白色的**序列埠監控窗** 接著就可以看到輸出的溫度和濕度 ![image](https://hackmd.io/_uploads/BJOc0IGwR.png)