#include <FirebaseESP32.h> //khai báo các thư viện cần thiết
#include <WiFi.h>
#include <WiFiClient.h>
#include "DHT.h"
//Provide the token generation process info.
#include "addons/TokenHelper.h"
//Provide the RTDB payload printing info and other helper functions.
#include "addons/RTDBHelper.h"
#define API_KEY "AIzaSyAPu2X-rev68M4CG7AZMlyxRfZeECEgczY"
#define DATABASE_URL "https://test1-f9b34-default-rtdb.firebaseio.com/"
#define WIFI_SSID "Wokwi-GUEST" // tên wifi
#define WIFI_PASSWORD "" // password wifi
#define DHTTYPE DHT22 // DHT 11 type
#define DHTPIN 14
DHT dht(DHTPIN, DHTTYPE);
#define Led 27 //khai báo Led
#define AS 32
#define BUZZ 18
int MQ2value; //khai báo biến
//Define Firebase Data object
FirebaseData fbdo;
FirebaseAuth auth;
FirebaseConfig config;
unsigned long sendDataPrevMillis = 0;
int count = 0;
bool signupOK = false;
void setup()
{
Serial.begin(9600); // tốc độ baud truyền thông qua kênh dữ liệu
dht.begin();
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);
pinMode(BUZZ, OUTPUT);
/* Assign the api key (required) */
config.api_key = API_KEY;
/* Assign the RTDB URL (required) */
config.database_url = DATABASE_URL;
config.token_status_callback = tokenStatusCallback; //see addons/TokenHelper.h
/* Sign up */
if (Firebase.signUp(&config, &auth, "", "")){
Serial.println("ok");
signupOK = true;
}
else{
Serial.printf("%s\n", config.signer.signupError.message.c_str());
}
Firebase.begin(&config, &auth);
Firebase.reconnectWiFi(true);
}
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)
{
digitalWrite(Led, HIGH);
digitalWrite(BUZZ, HIGH);
}
else
{
digitalWrite(Led, LOW);
digitalWrite(BUZZ, LOW);
}
//
}