#include <LiquidCrystal.h>
#include "DHT.h"
#define DHTPIN1 2 //กำหนดขา dht1
#define DHTPIN2 3 //กำหนดขา dht2
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
DHT dht1(DHTPIN1, DHTTYPE);
DHT dht2(DHTPIN2, DHTTYPE);
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
int led1 = 4; // กำหนดขาใช้งาน
int led2 = 5; // กำหนดขาใช้งาน
void setup() {
Serial.begin(115200);
Serial.println(F("IoT Test"));
dht1.begin();
dht2.begin();
pinMode(led1, OUTPUT); // กำหนดขาทำหน้าที่ให้ขา 4 เป็น OUTPUT
digitalWrite(led1, LOW);
pinMode(led2, OUTPUT); // กำหนดขาทำหน้าที่ให้ขา 4 เป็น OUTPUT
digitalWrite(led2, LOW);
}
void loop() {
float temperature1 = dht1.readTemperature();
float humidity1 = dht1.readHumidity();
float temperature2 = dht2.readTemperature();
float humidity2 = dht2.readHumidity();
if (isnan(temperature1) || isnan(humidity1)) {
Serial.println(F("Failed to read from DHT1 sensor!"));
return;
}
if (isnan(temperature2) || isnan(humidity2)) {
Serial.println(F("Failed to read from DHT2 sensor!"));
return;
}
Serial.print(F("H1: "));
Serial.print(humidity1);
Serial.print(F("% T1: "));
Serial.print(temperature1);
Serial.println(F("°C "));
Serial.print(F("H2: "));
Serial.print(humidity2);
Serial.print(F("% T2: "));
Serial.print(temperature2);
Serial.println(F("°C "));
//dht1.begin();
lcd.begin(16, 2);
lcd.print(F("H1:"));
lcd.print(humidity1);
lcd.print(F(" H2:"));
lcd.print(humidity2);
lcd.setCursor(0, 1); // ขึ้นบรรทัดล่าง LCD
lcd.print(F("T1:"));
lcd.print(temperature1);;
lcd.print(F(" T2:"));
lcd.print(temperature1);;
delay(2000);
if ((temperature1 <= 24)||(humidity1 <= 40)) { //ถ้าอุณหภูมิ <= 24 หรือ ความชื้น <= 40 เปิด วาล์ว1
digitalWrite(led1, HIGH); // ไฟ LED 1ติด แทน เปิด วาล์ว
Serial.print("Start Valve 1\n");
}
if ((temperature1 > 24)||(humidity1 > 40)) { //ถ้าอุณหภูมิ > 24 หรือ ความชื้น > 40 ปิด วาล์ว1
Serial.print("Stop Valve 1\n");
digitalWrite(led1, LOW); // ไฟ LED 1ดับ แทน ปิด วาล์ว
}
if ((temperature2 <= 24)||(humidity2 <= 40)) { //ถ้าอุณหภูมิ <= 24 หรือ ความชื้น <= 40 เปิด วาล์ว2
digitalWrite(led2, HIGH); // ไฟ LED 2ติด แทน เปิด วาล์ว
Serial.print("Start Valve 2\n");
}
if ((temperature2 > 24)||(humidity2 > 40)) { //ถ้าอุณหภูมิ > 24 หรือ ความชื้น > 40 ปิด วาล์ว2
Serial.print("Stop Valve2\n");
digitalWrite(led2, LOW); // ไฟ LED 2ดับ แทน ปิด วาล์ว
}
delay(4000);
}