#include <WiFi.h>
#include <FirebaseESP32.h>
// // Ganti dengan WiFi & Firebase kalian
// #define WIFI_SSID "Nama_WiFi_Kamu"
// #define WIFI_PASSWORD "Password_WiFi_Kamu"
#define API_KEY "AIzaSyDKfk1pphLpVOayxvoIczlWA1EL5V600jI"
#define FIREBASE_PROJECT_ID "iot-smart-garden-45e80"
#define USER_EMAIL "[email protected]"
#define USER_PASSWORD "falihfaqih12345"
// Objek Firebase
FirebaseData fbdo;
FirebaseAuth auth;
FirebaseConfig config;
void setup() {
Serial.begin(115200);
// Koneksi ke WiFi
WiFi.begin("Wokwi-GUEST", "", 6);
Serial.print("Menghubungkan ke WiFi");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("\nWiFi Terhubung!");
// Setup Firebase
config.api_key = API_KEY;
auth.user.email = USER_EMAIL;
auth.user.password = USER_PASSWORD;
config.database_url = "https://" FIREBASE_PROJECT_ID ".firebaseio.com/";
Firebase.begin(&config, &auth);
Firebase.reconnectWiFi(true);
}
void loop() {
// Simulasi Data Sensor
int N = random(10, 100);
int P = random(10, 100);
int K = random(10, 100);
int soilMoisture = random(20, 80);
int airTemperature = random(25, 35);
int humidity = random(40, 90);
int lightIntensity = random(200, 1000);
// Kirim Data ke Firestore
String path = "/sensors/sensor_1";
FirebaseJson json;
json.set("NPK/N", N);
json.set("NPK/P", P);
json.set("NPK/K", K);
json.set("soil_moisture", soilMoisture);
json.set("air_temperature", airTemperature);
json.set("humidity", humidity);
json.set("light_intensity", lightIntensity);
json.set("timestamp", millis());
if (Firebase.Firestore.setDocument(&fbdo, FIREBASE_PROJECT_ID, "", path.c_str(), json.raw(), "id")) {
Serial.println("Data berhasil dikirim!");
} else {
Serial.println("Gagal mengirim data: " + fbdo.errorReason());
}
delay(5000); // Kirim data setiap 5 detik
}