#include <WiFi.h>
#include <DHT.h>
#include <FirebaseESP32.h>
#include <HTTPClient.h>
const char* ssid = "wokwi-GUEST";
const char* password = "";
#define API_KEY "AIzaSyDxr-cBdx23SO9clm4iEIjyoW_01bPB_sA"
#define DATABASE_URL "https://mobile-iot-tugas-9-5220411146-default-rtdb.firebaseio.com/"
#define DHTPIN 17
#define DHTTYPE DHT22
#define led 2
FirebaseData fbdo;
FirebaseAuth auth;
FirebaseConfig config;
DHT dht(DHTPIN, DHTTYPE);
void wifiConnection() {
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("\nWiFi Connected");
Serial.println(WiFi.localIP());
}
void firebaseInit() {
config.api_key = API_KEY;
config.database_url = DATABASE_URL;
Firebase.begin(&config, &auth);
Firebase.reconnectWiFi(true);
}
void setup() {
Serial.begin(115200);
wifiConnection();
pinMode(led, OUTPUT);
dht.begin();
firebaseInit();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" °C, Humidity: ");
Serial.print(h);
Serial.println(" %");
Firebase.RTDB.setFloat(&fbdo, "/SUHU", t);
Firebase.RTDB.setFloat(&fbdo, "/HUMIDITY", h);
delay(2000);
}