#include <ArduinoJson.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
DynamicJsonDocument doc(1024);
int relay1 = 15;
int relay2 = 2;
String ledState;
String buzzState;
String relay1State;
String relay2State;
const int tempPin = 12;
String data;
DHT dht(tempPin, DHT22);
void setup(){
lcd.init();
lcd.backlight();
Serial.begin(115200);
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
}
void loop(){
digitalWrite(relay1, HIGH);
float humidity = dht.readHumidity();
float tempe = dht.readTemperature();
if(humidity>10){
digitalWrite(relay1, LOW);
relay1State = "OFF";
ledState = "ON";
lcd.setCursor(0,0);
lcd.print("Humidity: "+ String(humidity));
lcd.setCursor(0,1);
lcd.print("Temp: "+ String(tempe));
doc["Humidity"] = humidity;
doc["Relay 1 state"] = relay1State;
doc["LED state"] = ledState;
}
else{
relay1State = "ON";
doc["Relay 1 state"] = relay1State;
ledState = "OFF";
doc["LED state"] = ledState;
}
lcd.setCursor(0,2);
lcd.print("LED: "+ String(ledState));
if(tempe<50){
digitalWrite(relay2, LOW);
relay2State = "OFF";
buzzState = "ON";
doc["Temperature"] = tempe;
doc["Relay 2 state"] = relay2State;
doc["Buzzer State"] = buzzState;
}
else{
relay2State = "OFF";
buzzState = "ON";
doc["Relay 2 state"] = relay2State;
doc["Buzzer State"] = buzzState;
}
lcd.setCursor(0,3);
lcd.print("Buzzer: "+ String(buzzState));
serializeJson(doc, data);
Serial.print(data);
}