================================================================================
  Experiment 1: ESP32 DHT22 Temperature & Humidity Sensor (Serial Monitor)
================================================================================

FULL QUESTION:
Develop an ESP32 program to read temperature and humidity values using a DHT22 sensor and display the readings using serial communication.

SHORT QUESTION:
ESP32 DHT22 Temperature and Humidity Monitoring using Serial Communication.

================================================================================
README & SETUP INSTRUCTIONS:
================================================================================
# Experiment 1: ESP32 DHT22 Temperature & Humidity Sensor

## Objective
Read ambient temperature and relative humidity using a DHT22 sensor with ESP32 and output values via Serial Communication.

## Hardware Wiring (Wokwi / Physical)
- DHT22 VCC -> ESP32 3V3
- DHT22 SDA -> ESP32 GPIO 18
- DHT22 GND -> ESP32 GND

## How to Run in Wokwi
1. Open [wokwi.com](https://wokwi.com) and create an ESP32 project.
2. Paste `sketch.ino` into the code tab.
3. Paste `diagram.json` into the `diagram.json` tab.
4. Ensure `libraries.txt` includes `DHT sensor library` and `Adafruit Unified Sensor`.
5. Click **Start Simulation (Play)**.
6. Open the **Serial Monitor** (115200 baud) to view sensor readings. Adjust sliders on DHT22 to see live updates.

================================================================================
SOURCE CODE FILES:
================================================================================

1. sketch.ino
--------------------------------------------------------------------------------
#include <DHT.h>

#define DHT_PIN 18
#define DHT_TYPE DHT22

DHT dht(DHT_PIN, DHT_TYPE);

void setup() {
  Serial.begin(115200);
  delay(1000);
  dht.begin();
  Serial.println("System Initialized! Reading DHT22 data...");
}

void loop() {
  float temperature = dht.readTemperature();
  float humidity = dht.readHumidity();

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

  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.print(" °C | Humidity: ");
  Serial.print(humidity);
  Serial.println(" %");

  delay(2000);
}
--------------------------------------------------------------------------------

2. diagram.json
--------------------------------------------------------------------------------
{
  "version": 1,
  "author": "IoT Lab",
  "editor": "wokwi",
  "parts": [
    { "type": "board-esp32-devkit-c-v4", "id": "esp", "top": 0, "left": 0, "attrs": {} },
    { "type": "wokwi-dht22", "id": "dht1", "top": 0.3, "left": -159, "attrs": {} }
  ],
  "connections": [
    [ "esp:TX", "$serialMonitor:RX", "", [] ],
    [ "esp:RX", "$serialMonitor:TX", "", [] ],
    [ "dht1:GND", "esp:GND.2", "black", [ "v0" ] ],
    [ "dht1:VCC", "esp:3V3", "red", [ "v0" ] ],
    [ "dht1:SDA", "esp:18", "green", [ "v0" ] ]
  ],
  "dependencies": {}
}
--------------------------------------------------------------------------------

3. libraries.txt
--------------------------------------------------------------------------------
DHT sensor library
Adafruit Unified Sensor
--------------------------------------------------------------------------------
