#include <DHT.h>
#include <WiFi.h>
#include <HTTPClient.h>
#define DHTPIN 4 // DHT22 data pin connected to GPIO 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
#define FIREBASE_HOST "iot-aqi-94857-default-rtdb.asia-southeast1.firebasedatabase.app/"
#define FIREBASE_AUTH "q2ByieDXT6kwCYSy3XCHRZH4e9cwfsoavvDHRi2X"
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
void setup() {
Serial.begin(115200);
// Connect to Wi-Fi
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// Initialize DHT sensor
dht.begin();
}
void loop() {
// Wait a few seconds between measurements
delay(2000);
// Read temperature and humidity from the DHT sensor
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Check if reading was successful
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Send data to Firebase
String path = "/sensor-data";
String url = String("https://") + FIREBASE_HOST + path + ".json?auth=" + FIREBASE_AUTH;
String data = "{\"humidity\": " + String(humidity) + ", \"temperature\": " + String(temperature) + "}";
// Make an HTTP PUT request to Firebase
HTTPClient http;
http.begin(url, "DUMMY_FINGERPRINT");
http.begin(url);
http.addHeader("Content-Type", "application/json");
int httpResponseCode = http.PUT(data);
http.end();
// Check if the request was successful
if (httpResponseCode > 0) {
Serial.println("Data sent to Firebase successfully!");
} else {
Serial.println("Failed to send data to Firebase!");
Serial.println("HTTP Response code: " + String(httpResponseCode));
}
}