//Firebase functions: https://github.com/mobizt/Firebase-ESP32/blob/master/src/README.md
#include <WiFi.h>
#include <FirebaseESP32.h>
// Thông tin WiFi
#define WIFI_SSID "Wokwi-GUEST" //(1/4)
#define WIFI_PASSWORD "" //(2/4)
// Thông tin Firebase
#define FIREBASE_HOST "https://tt-iot-mrh3-c7137-default-rtdb.firebaseio.com" //(3/4)
#define FIREBASE_AUTH "nfcJP8wrJce3tdraCXkXv4AmdBImNEUuvbvNmP19" //(4/4)
// Chân GPIO của ESP32
int LED01 = 2;
int temp = 0;
// Khởi tạo Firebase
FirebaseData firebaseData;
FirebaseAuth auth;
FirebaseConfig config;
String path = "/";
void setup() {
pinMode(LED01, OUTPUT); // Cài đặt chân LED là OUTPUT
digitalWrite(LED01, LOW); // Tắt LED ban đầu
Serial.begin(115200); // Khởi tạo Serial Monitor với baud rate 115200
WiFi.begin(WIFI_SSID, WIFI_PASSWORD); // Kết nối WiFi
// Chờ kết nối WiFi
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected.");
// Cấu hình Firebase
config.host = FIREBASE_HOST;
config.signer.tokens.legacy_token = FIREBASE_AUTH;
// Kết nối Firebase
Firebase.begin(&config, &auth);
Firebase.reconnectWiFi(true);
}
void loop() {
// Gửi Nhiệt độ (DHT11: nhiệt độ, độ ẩm KK) lên Firebase
temp = random(20,40); // Random Nhiệt độ
if (Firebase.setInt(firebaseData, "/Temp", temp)) {
Serial.print("Temp is sent to Firebase: ");
Serial.println(temp);
} else {
Serial.print("Failed to send Temp: ");
Serial.println(firebaseData.errorReason());
}
// Nhận lệnh điều khiển đèn 01 từ Firebase
if (Firebase.getInt(firebaseData, "/BULB_01")) {
int L1 = firebaseData.intData();
if( L1 == 1)
digitalWrite(LED01, HIGH);
else
digitalWrite(LED01, LOW);
Serial.println(LED01 ? "LED is ON" : "LED is OFF");
} else {
Serial.print("Failed to get LED01: ");
Serial.println(firebaseData.errorReason());
}
delay(1000); //delay 1s đọc 1 lần
}