#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
#include "DHT.h"
#define DHTPIN 12 // what digital pin we're connected to
#define DHTTYPE DHT22 // DHT 22
DHT dht(DHTPIN, DHTTYPE);
const int Analoginpin = 12; //กำหนดขา input เซนเซอร์
const int Relay1 = 15; //กำหนดขา input รีเลย์
const int Relay2 = 18; //กำหนดขา input รีเล
int sensorvalue = 0;
int outputvalue = 0;
void setup() {
Serial.begin(9600);
pinMode(Relay1, OUTPUT); //กำหนดขา output รีเลย์
pinMode(Relay2, OUTPUT); //กำหนดขา output รีเลย์
Serial.begin(115200);
dht.begin(); // เริ่มต้นเรียกใช้งาน Library DHT11
lcd.init();
lcd.backlight();
}
void loop() {
delay(2000);
float Humidity = dht.readHumidity(); // Read temperature as Celsius (the default)
float Temp = dht.readTemperature(); // Check if any reads failed and exit early (to try again).
if (isnan(Humidity) || isnan(Temp)) {
Serial.println("Failed to read from DHT sensor!");
//บอกสถานะหากเกิดการผิดพลาดในการอ่านข้อมูลสาเหตุอาจเกิดได้จากสัญญาณรบกวน หรือการเชื่อมต่อที่ไม่สมบรูณreturn;
} else {
if (Humidity <= 40) { //การตั้งค่า % การรดน้ำต้นไม้
digitalWrite(Relay1, HIGH); //เมื่อความชื้นน้อยกว่า 40% สั่งให้เปิดไฟสีเหลือง
} else {
digitalWrite(Relay1, LOW); //เมื่อความชื้นมากกว่า 40% สั่งให้ปิดไฟสีเหลือง
}
if (Temp <= 20) { //การตั้งค่า % การรดน้ำต้นไม้
digitalWrite(Relay2, HIGH); //เมื่ออุณหภูมิน้อยกว่า 20% สั่งให้เปิดไฟสีฟ้า
} else {
digitalWrite(Relay2, LOW); //เมื่ออุณหภูมิมากกว่า 20% น้อยกว่า40% สั่งให้ปิดไฟสีฟ้า
}
lcd.setCursor(0,0);
lcd.print("Humidity: ");
lcd.setCursor(10,0);
lcd.print(Humidity);
lcd.setCursor(14,0);
lcd.print("%");
lcd.setCursor(0,1);
lcd.print("Temp: ");
lcd.setCursor(6,1);
lcd.print(Temp);
lcd.setCursor(11,1);
lcd.print("C");
}
}