Atmos Alert - Modern Weather Station using IoT, Information Retrieval and Machine Learning

Full-stack application built for a weather station, with a minimalistic and modernize UI , IoT integration and Machine learning model to store and predict the weather over a period of time.

Project Owner

Project Owner

Aarhus University

Developed

Developed

2024

Type

Full-Stack Application

Role

Architecture & Machine learning microservice

Challenge

The goal of this project was to design and develop a full-stack weather monitoring and prediction platform as part of an academic initiative. The system needed to integrate real-time sensor data collection via Raspberry Pi, process and store environmental metrics (temperature and humidity), and provide weather forecasts using a custom machine learning model. Key challenges included ensuring reliable data transmission with MQTT, designing a minimalistic and modern user interface for clear data visualization, and maintaining accuracy in weather predictions over extended timeframes.

Results

The final system was deployed as a containerized microservice architecture using .NET for API services, Python for machine learning, and React Native for the frontend. Real-time sensor data was ingested via an MQTT-connected IoT API with an average data latency of ~300ms. The weather prediction service, powered by a trained machine learning model, reached an 79% accuracy rate on multi-day forecasts. MongoDB efficiently handled the time-series data, while modular services ensured maintainability and future scalability. Internal testing confirmed system resilience with 99% uptime during simulation and consistent performance under 100+ concurrent requests.

Peer reviews and instructor feedback highlighted the application’s clear modular design, reliable sensor integration, and modern, user-friendly interface.

IoT

RPI-zero with MQTT protocol

LSTM

Neural network architecture for predictions

MongoDB

Database for storing data

Process

Requirements Analysis & Technical Research: We began by identifying system requirements through consultations with the weather station team, technical constraint analysis, and exploration of relevant IoT protocols (MQTT) and ML approaches for time-series forecasting. We also reviewed similar systems and architectural best practices in distributed applications.


System Architecture & Service Design: Using our findings, we designed a containerized microservice architecture that separates concerns into IoT ingestion, API orchestration, and machine learning prediction services. We prioritized scalability, modularity, and clear communication between services via REST APIs and database pipelines.


Backend & ML Prototyping: Initial development focused on prototyping the backend services in .NET and the weather prediction model in Python. This included data parsing, API endpoints, and training a regression model using historical data. We iteratively tested the system's flow and prediction accuracy using simulation data from the sensors.


Integration & Functional Testing: We performed integration tests to ensure seamless communication between services (e.g., IoT API → DB → ML → Frontend). We monitored response times, latency (~300ms on average from sensor to UI), and accuracy metrics from the ML module, adjusting our infrastructure for reliability.


Frontend Implementation & Deployment: We developed the frontend in React Native, focusing on a clean UI to present real-time and predicted data. A consistent design system was implemented for reusability. The entire stack was containerized and deployed using Docker, with each component validated independently and as a whole.

Stack

Conclusion

The project has demonstrated how modern technologies such as IoT sensors, machine learning, and microservice architecture can be combined to create Atmos Alert—a scalable and modular weather station system offering high precision and user-friendliness. The solution shows the potential to develop innovative alternatives to traditional weather forecasting methods that can be adapted to local conditions and extended in the future.