From ca973da3a6b56059dada966c9228ad84aa860e94 Mon Sep 17 00:00:00 2001 From: NMuafi Date: Fri, 15 Aug 2025 16:08:22 +0700 Subject: [PATCH] Initial commit --- LampuTerbaru.ino | 73 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 LampuTerbaru.ino diff --git a/LampuTerbaru.ino b/LampuTerbaru.ino new file mode 100644 index 0000000..2fe79cd --- /dev/null +++ b/LampuTerbaru.ino @@ -0,0 +1,73 @@ +#include +#include + +// ====== GANTI SESUAI KEBUTUHAN ====== +#define WIFI_SSID "Gratis" +#define WIFI_PASSWORD "PINGINusaha" +#define FIREBASE_HOST "https://lampu-otomatis-e01b2-default-rtdb.firebaseio.com/" +#define FIREBASE_AUTH "CYqTEGa6kWutv3e0yhfBBsllrGVV0ewNNKyS46S0" // API Key + +// ====== PIN KONFIGURASI ====== +const int pirPin = 13; // Input dari sensor PIR +const int relayPin = 23; // Output ke relay + +FirebaseData firebaseData; +FirebaseConfig firebaseConfig; +FirebaseAuth firebaseAuth; + +void setup() { + Serial.begin(115200); + + // Inisialisasi pin + pinMode(pirPin, INPUT); + pinMode(relayPin, OUTPUT); + digitalWrite(relayPin, HIGH); // Matikan relay saat awal + + // Koneksi ke WiFi + WiFi.begin(WIFI_SSID, WIFI_PASSWORD); + Serial.print("Menghubungkan ke WiFi"); + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println("\nTersambung ke WiFi"); + + firebaseConfig.database_url = FIREBASE_HOST; + firebaseConfig.signer.tokens.legacy_token = FIREBASE_AUTH; + //konfig ntp + + // Koneksi ke Firebase + Firebase.begin(&firebaseConfig, &firebaseAuth); + Firebase.reconnectWiFi(true); +} + +void loop() { + int pirState = digitalRead(pirPin); // Baca status PIR + + if (pirState == HIGH) { + Serial.println("Gerakan terdeteksi!"); + digitalWrite(relayPin, LOW); // Aktifkan relay + + // Kirim status ke Firebase + if (Firebase.setString(firebaseData, "/Lampu/status", "ON")) { + Serial.println("Firebase: status ON"); + } else { + Serial.print("Firebase Error: "); + Serial.println(firebaseData.errorReason()); + } + delay(15000); + } else { + Serial.println("Tidak ada gerakan."); + digitalWrite(relayPin, HIGH); + + // Kirim status ke Firebase + if (Firebase.setString(firebaseData, "/Lampu/status", "OFF")) { + Serial.println("Firebase: status OFF"); + } else { + Serial.print("Firebase Error: "); + Serial.println(firebaseData.errorReason()); + } + + delay(1000); // Delay ringan agar tidak terlalu sering update + } +}