#include <WiFi.h>
#include <FirebaseESP32.h>
#include <DHT.h>
// Pin LED
#define LED_PIN_1 15
#define LED_PIN_2 2
#define LED_PIN_3 4
#define LED_PIN_4 5
#define LED_PIN_5 18
// Inisialisasi sensor DHT22
#define DHTPIN 13
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
// Inisialisasi Firebase
#define FIREBASE_HOST "FmYAhs48NaKTWs3S2Sm0D1RQZNccpmLUrUqV9dbW"
#define FIREBASE_AUTH "https://kontrol-5-led-dan-dht-22-default-rtdb.firebaseio.com/"
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
FirebaseData firebaseData;
void setup() {
Serial.begin(9600);
dht.begin();
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi!");
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
// Mengatur pin LED sebagai output
pinMode(LED_PIN_1, OUTPUT);
pinMode(LED_PIN_2, OUTPUT);
pinMode(LED_PIN_3, OUTPUT);
pinMode(LED_PIN_4, OUTPUT);
pinMode(LED_PIN_5, OUTPUT);
// Inisialisasi sensor DHT22
dht.begin();
}
void loop() {
// Membaca status LED dari Firebase
if (Firebase.ready()) {
bool led1 = Firebase.getBool(firebaseData, "/HASIL_PEMBACAAN/led1");
bool led2 = Firebase.getBool(firebaseData, "/HASIL_PEMBACAAN/led2");
bool led3 = Firebase.getBool(firebaseData, "/HASIL_PEMBACAAN/led3");
bool led4 = Firebase.getBool(firebaseData, "/HASIL_PEMBACAAN/led4");
bool led5 = Firebase.getBool(firebaseData, "/HASIL_PEMBACAAN/led5");
digitalWrite(LED_PIN_1, led1 ? HIGH : LOW);
digitalWrite(LED_PIN_2, led2 ? HIGH : LOW);
digitalWrite(LED_PIN_3, led3 ? HIGH : LOW);
digitalWrite(LED_PIN_4, led4 ? HIGH : LOW);
digitalWrite(LED_PIN_5, led5 ? HIGH : LOW);
Serial.println("LED status updated");
} else {
Serial.println("Firebase not connected");
}
// Membaca suhu dan kelembaban dari sensor DHT22
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Mengirim data suhu dan kelembaban ke Firebase
if (Firebase.ready()) {
Firebase.setFloat(firebaseData, "/HASIL_PEMBACAAN/temperature", temperature);
Firebase.setFloat(firebaseData, "/HASIL_PEMBACAAN/humidity", humidity);
Serial.println("DHT22 data sent to Firebase");
} else {
Serial.println("Firebase not connected");
}
// Menunggu selama 1 detik
delay(1000);
}