🌦 IoT Weather Monitoring System (Local — No External API)

A local IoT project that reads temperature and humidity from a DHT11 connected to an Arduino UNO R4, sends readings over USB serial to a Python Flask server, and displays live values on a local web dashboard.

Github Repository

Repository Link

Quick Highlights

Features

Hardware

Sensor Wiring (DHT11 → Arduino UNO R4)

DHT11 Arduino
VCC 5V
DATA D2
GND GND

Schematic Diagram

System Diagram

This diagram shows the connection between the DHT11 sensor, Arduino UNO R4, and the Python Flask web application.

Software Dependencies

Warning:You should run your IDE in administrator mode

Install Dependencies

pip install flask pyserial

Expected Arduino Serial Output

One line per reading (human-readable). Example:

Temperature: 28 °C | Humidity: 65 %

(The backend parses this string to extract values.)

Project Layout


WEATHERAPPIOT/
├── app.py
├── templates/
│   └── index.html
└── DHT/
    └── DHT.ino
    

Run (Minimal)

  1. Upload DHT/DHT.ino to Arduino UNO R4.
  2. Close Arduino Serial Monitor.
  3. Connect Arduino via USB.
  4. From project folder run:

Run the Server

python app.py

Open:

http://127.0.0.1:5000

Disable Flask Auto-Reloader

app.run(use_reloader=False)

Troubleshooting

Improvements / Roadmap