#include <FirebaseESP32.h> //khai báo các thư viện cần thiết
#include <WiFi.h>
#include <WiFiClient.h>
#define FIREBASE_HOST "https://mq2firebase-7aa29-default-rtdb.firebaseio.com/" //địa chỉ firebase
#define FIREBASE_AUTH "XRMKDFI8bLHnJLIWBHKSN30ruS3aUXFt5YV0hcGF" //phương thức xác thực
#define WIFI_SSID "Wokwi-GUEST" // tên wifi
#define WIFI_PASSWORD "" // password wifi
#define MQ2 32 // khai báo chân nhận dữ liệu cảm biến MQ2
#define Led 27 //khai báo Led
int MQ2value; //khai báo biến
FirebaseData fbdo;
void setup()
{
Serial.begin(9600); // tốc độ baud truyền thông qua kênh dữ liệu
delay(1000);
WiFi.begin (WIFI_SSID, WIFI_PASSWORD); //thiết lập wifi
Serial.print("Dang ket noi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(500);
}
Serial.println (""); //in ra serial monitor các thông số kết nối wifi
Serial.println ("Da ket noi WiFi!");
Serial.println(WiFi.localIP());
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); // thiết lập firebase
pinMode(Led, OUTPUT);
}
void loop()
{
MQ2value = analogRead(32); //đọc giá trị từ cảm biến
Serial.print("Khi gas: ");
Serial.print(MQ2value);
Serial.print(" %");
Serial.print("\n");
Firebase.setFloat( fbdo,"/Thong so khi gas", MQ2value); //nhập giá trị cảm biến lên gg firebase
//Kiểm tra trạng thái gas để đưa ra cảnh báo
if(MQ2value >= 300)
{
Firebase.setString(fbdo,"/Trang thai", "Nguy hiem");
}
else
{
Firebase.setString(fbdo,"/Trang thai", "An toan");
}
//
if(Firebase.getInt(fbdo, "/Ledcontrol")) //kiểm tra giá trị từ database (= true)
{
Serial.print("data = ");
Serial.println(fbdo.intData()); //in giá trị từ gg firebase
Serial.print("\n");
}
if(fbdo.intData()==1) //kiểm tra điều kiện bật tắt led
{
digitalWrite(Led, HIGH);
}
else
{
digitalWrite(Led, LOW);
}
delay(100);
}