Smart Weather Station
A Raspberry Pi-based weather monitoring system that collects temperature, humidity, air pressure, wind speed/direction, and rainfall data, displaying it locally and on a web dashboard.
info
Author: Tone Rares-Mihai
GitHub Project Link: https://github.com/UPB-PMRust-Students/project-toniyiy
Description
This project uses a Raspberry Pi to collect environmental data from multiple sensors:
- DHT22: Temperature and humidity
- BMP280: Atmospheric pressure
- Hall Sensor 3144: Wind speed (via anemometer)
- Wind Vane: Wind direction
- Rain Sensor: Rainfall detection
Relevant labs/concepts applied:
- SPI/I2C communication
- Sensor calibration
- Web server development (Django)
- Real-time data visualization
Motivation
I wanted to build a practical IoT device that bridges hardware and software, while contributing to environmental monitoring. This project challenges me to integrate multiple sensor protocols, design a user-friendly dashboard, and apply embedded systems knowledge from coursework.
Architecture
Schematic Diagram
Key Components:
- Raspberry Pi
- Central controller for data collection and processing
- Interfaces with all sensors via GPIO/I2C/SPI
- Hall Sensor 3144 + Anemometer
- Interface: GPIO with interrupts
- Role: Measures wind speed by detecting rotations of the anemometer cups
- Wind Vane
- Interface: Analog-to-Digital Converter (ADC)
- Role: Determines wind direction using voltage output
- DHT22 & BMP280
- Interface: I2C
- Role: Core environmental sensing
Log
Week 1
Week 2
Hardware
Bill of Materials
Software
Tool/Library | Purpose | Link |
---|---|---|
Python 3.10 | Core programming language | https://www.python.org |
Adafruit_DHT | DHT22 sensor library | https://github.com/adafruit/DHT-sensor-library |
Django | Web dashboard framework | https://www.djangoproject.com |
RPi.GPIO | Hall sensor/anemometer interface | https://pypi.org/project/RPi.GPIO/ |
Matplotlib | Data graphing | https://matplotlib.org |