Initial commit
This commit is contained in:
commit
ca973da3a6
|
@ -0,0 +1,73 @@
|
||||||
|
#include <WiFi.h>
|
||||||
|
#include <FirebaseESP32.h>
|
||||||
|
|
||||||
|
// ====== 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
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue