#include <WiFi.h>
#include <FirebaseESP32.h>
#include <Arduino.h>
#include <Firebase_ESP_Client.h>
// Replace with your network credentials
const char* ssid = "Wokwi-GUEST"; // Your Wi-Fi SSID
const char* password = ""; // Your Wi-Fi password
// Firebase configuration
#define FIREBASE_HOST "trysmart-30a87-default-rtdb.firebaseio.com"
#define FIREBASE_AUTH "AIzaSyAL5ey7fDDsPpQBxYgwoGW2Fx9yX_Ed2uw" // Your Firebase Authentication token
FirebaseData firebaseData;
const int buttonPin = 2; // Pin connected to the button
unsigned long lastPressTime = 0; // For debounce
const unsigned long debounceDelay = 200; // 200ms debounce delay
// Wi-Fi initialization
void setup() {
Serial.begin(115200);
// Connect to Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// Connect to Firebase
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);
pinMode(buttonPin, INPUT_PULLUP); // Configure button pin as input with pull-up resistor
}
void loop() {
unsigned long currentTime = millis();
bool buttonState = digitalRead(buttonPin) == LOW; // LOW means button is pressed
// Check for debounce delay
if (buttonState && (currentTime - lastPressTime > debounceDelay)) {
lastPressTime = currentTime; // Update last press time
// Send the button value (true/false) to Firebase
if (Firebase.setBool(firebaseData, "/buttonState", buttonState)) {
Serial.println("Sent data to Firebase!");
} else {
Serial.println("Failed to send data to Firebase");
Serial.println(firebaseData.errorReason());
}
}
delay(10); // Small delay for responsiveness
}