#include <WiFi.h>
#include <Firebase_ESP_Client.h>
#include "DHT.h"
// AMBIL DARI databaseURL di konfigurasi kamu
// Hapus "https://" dan "/" di akhir
#define HOST_FIREBASE "monitoring-ruang-server-19bff-default-rtdb.asia-southeast1.firebasedatabase.app"
// Untuk AUTH, di perangkat asli disarankan pakai Database Secret (Legacy Token)
// Tapi kita coba pakai API Key kamu dulu
#define AUTH_FIREBASE "iKO5RhJjWWlC9VV1ijZhBGlTpGPWi1BPMia2szOU"
DHT dht(23, DHT22);
FirebaseData fbdo;
FirebaseAuth auth;
FirebaseConfig config;
void setup() {
Serial.begin(115200);
dht.begin();
Serial.print("Menghubungkan WiFi");
WiFi.begin("Wokwi-GUEST", "");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi OK!");
config.host = HOST_FIREBASE;
config.signer.tokens.legacy_token = AUTH_FIREBASE; // Pakai API Key/Secret di sini
Firebase.begin(&config, &auth);
Firebase.reconnectWiFi(true);
Serial.println("Inisialisasi Firebase Selesai!");
}
void loop() {
// Cek apakah Firebase siap dan WiFi terkoneksi
if (Firebase.ready()) {
float t = dht.readTemperature();
float h = dht.readHumidity();
if (isnan(t) || isnan(h)) {
Serial.println("Sensor DHT gagal baca!");
} else {
// Mengirim data ke path /monitoring/suhu
if (Firebase.RTDB.setFloat(&fbdo, "/monitoring/suhu", t)) {
Serial.println("Data Terkirim! Suhu: " + String(t) + " C");
} else {
Serial.println("Gagal Kirim: " + fbdo.errorReason());
}
}
}
delay(10000); // Kirim tiap 10 detik agar simulasi tidak lag
}