Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

MAI KHẮC VINH

Code:

#include "FirebaseESP8266.h"
#include <ESP8266WiFi.h>

#define FIREBASE_HOST "https://stp-21519-default-rtdb.asia-


southeast1.firebasedatabase.app/"
#define FIREBASE_AUTH "qyvy9xONxdHgR8xZmAQ3n1Y0BQVq241ce6fmgI1D"
#define WIFI_SSID "KEN"
#define WIFI_PASSWORD "achillyevening2024"
FirebaseData firebaseData;

#define led D4
#define button D3
boolean bt_state = HIGH;
unsigned long times = millis();
unsigned long timeDelay = millis();

void setup() {
Serial.begin(115200);
pinMode(led, OUTPUT);
pinMode(button, INPUT_PULLUP);

WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();

Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);

setData("ledconnect", "1");
setData("led", "0");
setData("button", "0");
attachInterrupt(digitalPinToInterrupt(button), handleButton, FALLING);
}

void loop() {
if (millis() - times > 1000) {
String ledconnect = getData("/ledconnect");
// Serial.println(ledconnect);
if (ledconnect == "1") {
setData("/ledconnect", "0");
}

if (getData("/button") == "1") {
digitalWrite(led, !digitalRead(led));
setData("/button", "0");
Serial.print("Giá trị led: ");
Serial.println(String(digitalRead(led)));
}
setData("/led", String(digitalRead(led)));
setData("/uptime", String(millis() / 1000));
times = millis();
}
}

ICACHE_RAM_ATTR void handleButton() {


if (millis() - timeDelay > 200) {
digitalWrite(led, !digitalRead(led));
Serial.print("Giá trị led: ");
Serial.println(String(digitalRead(led)));
timeDelay = millis();
}
}

void setData(String url, String data) {


if (Firebase.setString(firebaseData, url, data)) {
// Success
// Serial.println("Set string data success");
} else {
// Failed?, get the error reason from firebaseData
Serial.print("Error in setString, ");
Serial.println(firebaseData.errorReason());
}
}

String getData(String url) {


if (Firebase.get(firebaseData, url)) {
String data = firebaseData.stringData();
return data;
} else {
Serial.print("Error in get, ");
Serial.println(firebaseData.errorReason());
return ""; // Trả về chuỗi rỗng nếu xảy ra lỗi
}
}

You might also like