//untuk mendukung fungsionalitas koneksi WiFi, pembacaan sensor DHT, koneksi ke Firebase, dan koneksi HTTP.
#include <WiFi.h>
#include <DHT.h>
#include <FirebaseESP32.h>
#include <HTTPClient.h>
//#include "addons/TokenHelper.h"
//#include "addons/RTDBHelper.h"
//Menyediakan informasi untuk mengonfigurasi koneksi WiFi, termasuk SSID dan kata sandi.
const char* ssid = "Wokwi-GUEST";
const char* password = "";
//untuk koneksi ke Firebase Realtime Database, termasuk URL host dan kunci otentikasi.
#define FIREBASE_HOST "https://iot-per-7-default-rtdb.asia-southeast1.firebasedatabase.app/"
#define FIREBASE_AUTH "w1ZRKKY8X78GzSogrqRzUfuuSKIpOVpshNBRkp9I"
//Mendefinisikan pin yang digunakan untuk sensor DHT22 dan LED.
#define DHTPIN 13
#define DHTTYPE DHT22
#define led 2
FirebaseData fbdo;
//untuk menghubungkan ESP32 ke jaringan WiFi.
void wifiConnection(){
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(500);
}
Serial.println("Wifi Connected");
Serial.println(WiFi.SSID());
Serial.println(WiFi.RSSI());
Serial.println(WiFi.macAddress());
Serial.println(WiFi.localIP());
Serial.println(WiFi.gatewayIP());
Serial.println(WiFi.dnsIP());
}
//Inisialisasi objek DHT dengan pin dan tipe sensor.
DHT dht(DHTPIN, DHTTYPE);
//untuk menginisialisasi koneksi ke Firebase Realtime Database.
void firebase(void) {
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);
}
//untuk menjalankan konfigurasi awal saat program dijalankan.
void setup() {
Serial.begin(115200);
wifiConnection();
dht.begin();
pinMode(led, OUTPUT);
firebase();
}
//untuk membaca suhu dan kelembaban dari sensor DHT22 dan mengirimkan nilai suhu ke Firebase Realtime Database pada path "/SUHU".
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
Firebase.setFloat(fbdo, "/SUHU", t);
}