由於工作上需要為某些地點進行持續性的溫度、濕度監測,所以就衍生了製作一台溫度濕度監測器的念頭。
我將這個計劃分成幾個階段實行:
第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 並執行,就可以在序列埠監控視窗看到環境溫度及濕度了!