#include <ESP32Firebase.h>
#include <DHT.h>
#include <WiFi.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <ESP32Servo.h>
LiquidCrystal_I2C LCD =LiquidCrystal_I2C(0X27,22,21);
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
#define REFERENCE_URL "https://lkkl-de8e5-default-rtdb.firebaseio.com/" // Your Firebase project reference url
Firebase firebase(REFERENCE_URL);
#define DHTPIN 14
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const int LED = 2;
const int FAN = 15;
Servo servo;
//FirebaseData fbdo;
void setup() {
Serial.begin(9600);
delay(1000);
WiFi.begin (WIFI_SSID, WIFI_PASSWORD);
//Firebase.begin(DATABASE_URL, API_KEY);}
LCD.init();
pinMode(LED, OUTPUT);
//pinMode(FAN, OUTPUT);
servo.attach(FAN, 500, 2400);
}
void loop() {
delay(1000);
float h = dht.readHumidity();
float t = dht.readTemperature();
int rawValue = analogRead(32);
Serial.print("Nhiet do: ");
Serial.print(t);
Serial.print("*C ");
Serial.print("Do am: ");
Serial.print(h);
Serial.println("% ");
Serial.print("lux ");
Serial.print(rawValue);
Serial.println("% ");
firebase.setFloat( "iottt/lux", rawValue);
firebase.setFloat( "iottt/temperature", t);
firebase.setFloat ("iottt/humidity", h);
LCD.setCursor(0,1);
LCD.print("H: ");
LCD.print(h);
LCD.setCursor(9,1);
LCD.print("T: ");
LCD.print(t);
LCD.setCursor(0,0);
LCD.print("Lux: ");
LCD.print(rawValue);
String led;
led = firebase.getString("iottt/led");
Serial.print(led);
String fan;
fan = firebase.getString("iottt/fan");
Serial.print(fan);
if(led == "1"){
digitalWrite(LED, HIGH);
}
else{
digitalWrite(LED, LOW);
}
if(fan == "1"){
servo.write(90);
}
else{
servo.write(180);
}
}