// Include required libraries
#include "WiFi.h"
#include "AdafruitIO_WiFi.h"
#include "DHT.h"
// DHT setup
#define DHTPIN 4 // GPIO pin where DHT22 data pin is connected
#define DHTTYPE DHT22 // Define the DHT type (DHT22)
DHT dht(DHTPIN, DHTTYPE);
// WiFi and Adafruit IO settings
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASS ""
#define IO_USERNAME "aanand0001"
#define IO_KEY "aio_ebvp34C4Nfv8OcgoWcYuAPXheGkt"
// Adafruit IO Setup
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
// Adafruit IO Feeds
AdafruitIO_Feed *temperature = io.feed("Temperature");
AdafruitIO_Feed *humidity = io.feed("Humidity");
void setup() {
// Start the serial communication
Serial.begin(115200);
// Start the DHT sensor
dht.begin();
// Connect to WiFi and Adafruit IO
Serial.print("Connecting to Adafruit IO");
io.connect();
// Wait for connection to Adafruit IO
while (io.status() < AIO_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("Connected to Adafruit IO!");
// Set up the Adafruit IO connection handler
io.run();
}
void loop() {
// Read temperature and humidity from DHT22
float h = dht.readHumidity();
float t = dht.readTemperature(); // Celsius
// Check if readings are valid
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Print values to serial monitor
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
// Send data to Adafruit IO
temperature->save(t);
humidity->save(h);
// Wait 30 seconds before next reading
delay(30000);
}