上次說明了如何讀取DHT22的資料,今天要說明如何利用感測器的資料做控制
既然有讀取到的資料,我們就可以來辨識說現在溫度跟濕度是多少
如果把這些資料跟除濕機或是冷氣做組合 訂個溫度或濕度上限,
超過上限就打開冷氣或除濕機 這樣就是一個簡單的控制
不過一開始當然不能直接拿實際的東西去測 不然弄壞就欲哭無淚了
所以測試的時候一開始就先拿LED去測試
控制的程式碼如下
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
int LED1=3,LED2=4;
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
dht.begin();
}
void loop() {
delay(1000);
float humid = dht.readHumidity();
float temp = dht.readTemperature();
if (isnan(humid) || isnan(temp) ) {
Serial.println(F("感測器讀取失敗"));
return;
}
Serial.print("溫度:");
Serial.print(temp);
Serial.print(" C 濕度");
Serial.print(humid);
Serial.println("%");
if(temp>28 && digitalRead(LED1)!= HIGH)
{
digitalWrite(LED1, HIGH);
Serial.println("溫度高於28度 LED1開啟");
}
else if (temp<25 && digitalRead(LED2)!= LOW)
{
digitalWrite(LED1, LOW);
Serial.println("溫度低於25度 LED1關閉");
}
if(humid>75 && digitalRead(LED2)!= HIGH )
{
digitalWrite(LED2,HIGH);
Serial.println("濕度高於75% LED2開啟");
}
else if (humid<55 && digitalRead(LED2)!= LOW)
{
digitalWrite(LED2, LOW);
Serial.println("濕度低於55% LED2關閉");
}
}
執行出來的結果
這樣就可以做到 溫度高於28度開啟 LED 或是控制其他電路
來做出簡易的控制功能,做到現在有沒有感覺Arduino很簡單呢
其實這種控制電路不是最難的,難的都是難在收發資料,將收到的資料放上網頁
讓他人可以簡易的看到再去做控制,這才是我們需要的功能.
好拉 我們終於要進去接收資料那塊拉,不過在這之前要先介紹一個環境感測器
我們明天再見拉