#include "FirebaseESP32.h"
#include "DHT.h"
#include <string.h>
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define DATABASE_URL "https://dht-nhietdo-doam-default-rtdb.firebaseio.com/halong" //<databaseName>.firebaseio.com or <databaseName>.<region>.firebasedatabase.app
FirebaseData fbdo;
/* 4, Define the FirebaseAuth data for authentication data */
FirebaseAuth auth;
/* Define the FirebaseConfig data for config data */
FirebaseConfig config;
// DHT define
#define DHTTYPE DHT22 // DHT 22
#define DHTPIN 15
DHT dht(DHTPIN, DHTTYPE);
// Define LED
#define LED 27
WiFiClient client;
int D_value;
unsigned long dataMillis = 0;
void setup()
{
Serial.begin(115200); //Initialize serial
// Debug console
pinMode(LED, OUTPUT);
digitalWrite(LED, LOW);
dht.begin();
WiFi.begin(ssid,pass);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(100);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
config.database_url = DATABASE_URL;
config.signer.test_mode = true;
// Comment or pass false value when WiFi reconnection will control by your code or third party library e.g. WiFiManager
Firebase.reconnectNetwork(true);
// Since v4.4.x, BearSSL engine was used, the SSL buffer need to be set.
// Large data transmission may require larger RX buffer, otherwise connection issue or data read time out can be occurred.
Firebase.begin(&config, &auth);
}
void loop()
{
// Read Temp
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(2000);
Firebase.setFloat(fbdo,"nhietdo", t);
Firebase.setFloat(fbdo,"doam", h);
if(h>30){
D_value = 1;
}
else D_value = 0;
if (D_value) {
digitalWrite(LED, HIGH);
}
else digitalWrite(LED, LOW);
}