[Arduino] 溫溼度感測器

使用 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);
}

溫溼度感測器 library 下載網址

可由 Arduino 的序列埠監控視窗看到溫溼度的數據變化。