This project is a complete IoT weather station monitoring system, featuring a robust backend API, a modern web-based frontend dashboard, and ESP32 hardware clients for data collection.
The system enables real-time monitoring of weather conditions from various custom-built weather stations. Each station uses an ESP32 microcontroller to collect environmental data (temperature, humidity, pressure, etc.) and transmits it via HTTP to a central Django API. The SvelteKit-powered frontend provides a comprehensive interface for users to view live data, historical measurements, and forecasts.
- Real-time Monitoring: Instant updates of latest weather conditions.
- Interactive Charts: Historical data visualization using LayerChart.
- Detailed Forecasts: Multi-day weather forecasts for each station.
- Station Management: Interface to add, edit, and track multiple weather terminals.
- Multi-language Support: Full internalization (i18n) for different locales.
- Hardware Integration: Custom ESP32 implementation for reliable field data collection.
- Framework: SvelteKit
- State Management: TanStack Query
- Styling: Tailwind CSS
- UI Components: Bits UI & shadcn (Svelte)
- Visualization: LayerChart
- Form Handling: Superforms & Zod
- Framework: Django
- API: Django REST Framework
- Database: PostgreSQL
- Micocontroller: ESP32
- Communication: HTTP REST requests for data transmission
# Clone the repository
cd ms-web
# Install dependencies
pnpm install
# Start development server
pnpm dev# Navigate to API directory
cd ms-api
# Create virtual environment
python -m venv venv
source venv/bin/activate # or venv\Scripts\activate on Windows
# Install requirements
pip install -r requirements.txt
# Run migrations
python manage.py migrate
# Start server
python manage.py runserver


