Arduino + DHT11 自製溫度濕度監測器 (1)



由於工作上需要為某些地點進行持續性的溫度、濕度監測,所以就衍生了製作一台溫度濕度監測器的念頭。

我將這個計劃分成幾個階段實行:

第1階段>透過 Arduino + DHT11 將環境的溫度、濕度傳送到電腦。

第2階段>加入 Ethernet shield 並建立網頁界面讓使用者可看到即時的溫度濕度狀況。

第3階段>在 Ethernet shield 加入 SD Card 以儲存較長時間的環境數據。

第4階段>還在構思中...

好!今天就先為大家介紹第1階段的研究成果,大家有興趣的話也可以跟著做一個哦。

首先要準備一下材料:

Arduino UNO R3 x 1
DHT11 3-Pin Digital Temperature Humidity Sensor Module x 1
杜邦線 DuPont Cables x 適量
細細塊的麵包板 Breadboard x 1 (非必要,因為可以不經麵包板直接連接 DHT11)

DHT11 的詳細資料:http://www.micro4you.com/files/sensor/DHT11.pdf
Arduino 官方介紹:http://playground.arduino.cc/Main/DHT11Lib

製作步驟如下:

[Part 1 硬件的準備工作]

首先將 DHT11 的 + 連接到 Arduino 的 5V 接腳;

將 DHT11 的 - 連接到 Arduino 的 GND 接腳;

將 DHT11 中間的 out 連接到 Arduino 的 A0 接腳。



[Part 2 下載 DHT11 Library]

硬件部份完成後就可以開始軟件方面的工作了,按此下載已預先準備好的 DHT11 Library

下載回來的 dht.zip 不用解壓,我們將會直接將這個 library 滙入 Arduino 的程式庫。

[Part 3 下 DHT11 Library 安裝到 Arduino IDE]

啟動 Arduino IDE,在 Menu 按「草稿碼」>「匯入程式庫」>「加入.ZIP程式庫」,然後選取剛下載回來的 dht.zip 便可。

[Part 4 編寫程式部份]

進入 Arduino IDE 並編寫下列程式碼:

--------------------------------------
#include <dht.h>

#define dht_dpin A0 // 如果 DHT11 不是插在 A0 請自行修改合適的腳位

dht DHT; // 建立 dht 物件

void setup() {
  Serial.begin(9600); // 設定通訊時的 Baud Rate
}

void loop() {
  DHT.read11(dht_dpin); // 讀取 DHT11 的環境數據

  // 顯示溫度
  Serial.print("Temperature: ");
  Serial.print(DHT.temperature);
  Serial.print("C, ");

  // 顯示濕度
  Serial.print("Humidity: ");
  Serial.print(DHT.humidity);
  Serial.println("%"); // println 有開新行的作用

  delay(5000); // 延時5秒,即變成每5秒收集一次環境數據
}
--------------------------------------

編寫程式碼後,記得先在 Menu 按「工具」>「板子」>選擇「Arduino/Genuino Uno」

並在 Menu 按「工具」>「序列埠」>選擇連接了 Arduino 的 Port

最後在 Menu 按「工具」>「序列埠監控視窗」以顯示執行程式時資訊

最後按編程視窗內的「上傳」將程式傳送到 Arduino 並執行,就可以在序列埠監控視窗看到環境溫度及濕度了!