使用 Arduino 連接溫濕度偵測器,可以偵測到空氣中的溫濕度,用來判斷溫溼度是否異常。例如:溫度過高時,是否有火警發生?濕度過高時,是否下雨導致雨水潑進室內?
接線部分
Adruino | 溫溼度感測器 | 蜂鳴器 |
D2 | DATA | |
VCC | VCC | |
GND | GND | |
D13 | 長腳 | |
GND | 短腳 |
#include <Wire.h> // <>改為半形,用全形網頁才能顯示,但是 arduino ide 編譯不過 #include "DHT.h" // DHT #define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 //#define DHTTYPE DHT21 // DHT 21 (AM2301) int DHTpin = 2; DHT dht(DHTpin, DHTTYPE); // 蜂鳴器 int BeepPin = 13; void setup() { Serial.begin(9600); dht.begin(); pinMode(BeepPin, OUTPUT); } void loop() { int h = dht.readHumidity(); int t = dht.readTemperature(); float f = dht.readTemperature(true); if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("Failed to read from DHT sensor!"); return; } float hif = dht.computeHeatIndex(f, h); float hic = dht.computeHeatIndex(t, h, false); Serial.print("Humidity: "); Serial.print(h); Serial.print("% Temperature: "); Serial.print(t); Serial.print("°C "); if(h >= 50 || t >= 33) // 濕度達到或超過50%,溫度達到或超過33°C,則蜂鳴器發出聲音 { alarmBeep(BeepPin); } delay(2000); } // 聲響 void alarmBeep(int pin) { tone(pin, 1000, 1000); delay(2000); }
可由 Arduino 的序列埠監控視窗看到溫溼度的數據變化。