iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 6
1
自我挑戰組

初學者也能實做的環控系統系列 第 6

DAY6 DHT22感測器控制LED

上次說明了如何讀取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很簡單呢
其實這種控制電路不是最難的,難的都是難在收發資料,將收到的資料放上網頁
讓他人可以簡易的看到再去做控制,這才是我們需要的功能.

好拉 我們終於要進去接收資料那塊拉,不過在這之前要先介紹一個環境感測器
我們明天再見拉


上一篇
DAY5 DHT22溫濕度感測器介紹
下一篇
DAY7 adafruit CCS811環境感測器介紹與使用
系列文
初學者也能實做的環控系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言