#include #if defined(ESP32) || defined(ARDUINO_RASPBERRY_PI_PICO_W) #include #elif defined(ESP8266) #include #endif #include // Provide the RTDB payload printing info and other helper functions. #include /* 1. Define the WiFi credentials */ #define WIFI_SSID "abc" #define WIFI_PASSWORD "12345678" /* 2. If work with RTDB, define the RTDB URL and database secret */ #define DATABASE_URL "nodemcu-f540d-default-rtdb.asia-southeast1.firebasedatabase.app" //.firebaseio.com or ..firebasedatabase.app #define DATABASE_SECRET "3tAcPntofpPYoFRmjMQfMVBJfPmmdJChOMC3G1YU" /* 3. Define the Firebase Data object */ FirebaseData fbdo; /* 4, Define the FirebaseAuth data for authentication data */ FirebaseAuth auth; /* Define the FirebaseConfig data for config data */ FirebaseConfig config; unsigned long dataMillis = 0; int count = 0; #if defined(ARDUINO_RASPBERRY_PI_PICO_W) WiFiMulti multi; #endif void setup() { pinMode(D4,OUTPUT); pinMode(D2,INPUT); pinMode(D5,OUTPUT); Serial.begin(115200); #if defined(ARDUINO_RASPBERRY_PI_PICO_W) multi.addAP(WIFI_SSID, WIFI_PASSWORD); multi.run(); #else WiFi.begin(WIFI_SSID, WIFI_PASSWORD); #endif Serial.print("Connecting to Wi-Fi"); unsigned long ms = millis(); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(300); #if defined(ARDUINO_RASPBERRY_PI_PICO_W) if (millis() - ms > 10000) break; #endif } Serial.println(); Serial.print("Connected with IP: "); Serial.println(WiFi.localIP()); Serial.println(); Serial.printf("Firebase Client v%s\n\n", FIREBASE_CLIENT_VERSION); /* Assign the certificate file (optional) */ // config.cert.file = "/cert.cer"; // config.cert.file_storage = StorageType::FLASH; /* Assign the database URL and database secret(required) */ config.database_url = DATABASE_URL; config.signer.tokens.legacy_token = DATABASE_SECRET; // The WiFi credentials are required for Pico W // due to it does not have reconnect feature. #if defined(ARDUINO_RASPBERRY_PI_PICO_W) config.wifi.clearAP(); config.wifi.addAP(WIFI_SSID, WIFI_PASSWORD); #endif Firebase.reconnectWiFi(true); /* Initialize the library with the Firebase authen and config */ Firebase.begin(&config, &auth); // Or use legacy authenticate method // Firebase.begin(DATABASE_URL, DATABASE_SECRET); } void loop() { if (millis() - dataMillis > 1000) { dataMillis = millis(); // Serial.printf("Set int... %s\n", Firebase.RTDB.setInt(&fbdo, "/test/int", count++) ? "ok" : fbdo.errorReason().c_str()); // int a = Firebase.RTDB.getInt(&fbdo,"/LED"); // Firebase.RTDB.get(&fbdo, "/LED"); // String str = fbdo.to(); // a = fbdo; Firebase.RTDB.get(&fbdo, "/LED"); int value = fbdo.to(); // String str = fbdo.to(); if(value==1){ digitalWrite(D4,1); int va = digitalRead(D2); Serial.println(va); if(va==0){ Firebase.RTDB.setInt(&fbdo, "/trespassing", 0); digitalWrite(D5,0); } else{ Firebase.RTDB.setInt(&fbdo, "/trespassing", 1); digitalWrite(D5,1); delay(1000); } } else{ digitalWrite(D4,0); digitalWrite(D5,0); // digitalWrite(D2,0); } } }