#include <FirebaseESP32.h> //khai báo các thư viện cần thiết
#include <WiFi.h>
#include <WiFiClient.h>
#include "DHT.h"
#define FIREBASE_HOST "https://dhtfirebase-e37d5-default-rtdb.firebaseio.com/" //địa chỉ firebase
#define FIREBASE_AUTH "JcoGXbKAkffNZpI9IhWLzaqGCR1S6YjeHd74Q5jf" //phương thức xác thực
#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
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
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);
}
void loop()
{
float t = dht.readTemperature();
// Read Humi
float h = dht.readHumidity();
// Check isRead ?
if (isnan(h) || isnan(t)) {
delay(500);
Serial.println("Failed to read from DHT sensor!\n");
return;
}
Serial.print("\n");
Serial.print("Humidity: " + String(h) + "%");
Serial.print("\t");
Serial.print("Temperature:" + String(t) + " C");
delay(500);
Firebase.setFloat( fbdo,"/Nhiet do", t); //nhập giá trị cảm biến lên gg firebase
Firebase.setFloat( fbdo,"/Do am", h); //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(t >= 50)
{
Firebase.setString(fbdo,"/Trang thai led", "1");
digitalWrite(Led, HIGH);
}
else
{
Firebase.setString(fbdo,"/Trang thai led", "0");
digitalWrite(Led, LOW);
}
//
//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);
}