Mechatronics LAB
Published © GPL3+

IoT-based Indoor Environment Monitoring with ESP32 and DHT22

IoT-based Indoor Environment Monitoring with ESP32 and DHT22 (Adafruit IO)

BeginnerProtip1 hour124
IoT-based Indoor Environment Monitoring with ESP32 and DHT22

Things used in this project

Hardware components

esp32
×1
dht22
×1

Story

Read more

Schematics

IoT-based Indoor Environment Monitoring with ESP32 and DHT22 (Adafruit IO)

IoT-based Indoor Environment Monitoring with ESP32 and DHT22 (Adafruit IO)

Code

IoT-based Indoor Environment Monitoring with ESP32 and DHT22 (Adafruit IO)

Arduino
IoT-based Indoor Environment Monitoring with ESP32 and DHT22 (Adafruit IO)
#include <WiFi.h>
#include <DHT.h>
#include <AdafruitIO.h>
#include <AdafruitIO_WiFi.h>

// WiFi credentials
const char* ssid = "your-SSID";
const char* password = "your-password";

// Adafruit IO credentials
#define IO_USERNAME    "your-IO-username"
#define IO_KEY         "your-AIO-key"

// DHT22 Sensor settings
#define DHTPIN          4         // Pin connected to the DHT22 sensor
#define DHTTYPE         DHT22     // DHT 22 (AM2302)

// Create DHT object
DHT dht(DHTPIN, DHTTYPE);

// Create Adafruit IO instance
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, ssid, password);

// Create Adafruit IO feeds
AdafruitIO_Feed *temperatureFeed = io.feed("temperature");
AdafruitIO_Feed *humidityFeed = io.feed("humidity");

void setup() {
  // Start Serial Monitor
  Serial.begin(115200);

  // Connect to Wi-Fi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
  Serial.println("Connected to WiFi");

  // Connect to Adafruit IO
  io.connect();
  while (io.status() < AIO_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("Connected to Adafruit IO");

  // Initialize DHT sensor
  dht.begin();
}

void loop() {
  // Read temperature and humidity from DHT22 sensor
  float temperature = dht.readTemperature(); // Temperature in Celsius
  float humidity = dht.readHumidity(); // Humidity in percentage

  // Check if readings are valid
  if (isnan(temperature) || isnan(humidity)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  // Print the temperature and humidity to the Serial Monitor
  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.print(" °C  ");
  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.println(" %");

  // Send data to Adafruit IO
  temperatureFeed->save(temperature);  // Send temperature data
  humidityFeed->save(humidity);        // Send humidity data

  // Wait for 10 seconds before sending new data
  delay(10000);
}

Credits

Mechatronics LAB
75 projects • 49 followers
I am Sarful , I am a Mechatronics Engineer & also a teacher I am Interested in the evolution of technology in the automation industry .

Comments