Atmos Alert - Moderne Vejrstation ved hjælp af IoT, noget andet og Maskinlæring
En fuld-stack applikation bygget til en vejrstation, med et minimalistisk og moderniseret brugerflade, IoT-integration og en maskinlæringsmodel til at lagre og forudsige vejret over tid.
Aarhus Universitet
2024
Type
Full-Stack Applikation
Rolle
Arkitekture & Machine learning microservice
Problemformulering
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.
Resultater
Det endelige system blev implementeret som en containeriseret mikrotjenestearkitektur ved hjælp af .NET til API-tjenesterne, Python til maskinlæring, og React Native til frontend. Data fra sensorer blev indsamlet i realtid via en MQTT-tilsluttet IoT API med en gennemsnitlig datalatens på ~300ms. Vejrudsigttjenesten, drevet af en trænet maskinlæringsmodel, opnåede en præcision på 79% for flerdagsprognoser. MongoDB håndterede effektivt tidsseriedata, mens modulære tjenester sikrede vedligeholdelse og fremtidig skalerbarhed. Intern testning bekræftede systemets modstandsdygtighed med 99% oppetid under simulation og konsekvent ydeevne under 100+ samtidige forespørgsler.
Peer-anmeldelser og instruktørfeedback fremhævede applikationens klare modulære design, pålidelige sensorintegration og moderne, brugervenlige grænseflade.
IoT
RPI-zero med MQTT Protokol
LSTM
Nueral netværk arkitekture til forudsigelser
MongoDB
Datalagering
proces
Requirements Analysis & Technical Research: Vi startede med at identificere systemkrav gennem konsultationer med vejrstationsholdet, teknisk begrænsningsanalyse og udforskning af relevante IoT-protokoller (MQTT) samt ML-tilgange til tidsserieprognoser. Vi gennemgik også lignende systemer og bedste praksis for arkitektur i distribuerede applikationer.
Systemarkitektur & Servicedesign: Baseret på vores fund designede vi en container-baseret mikroservicearkitektur, der adskiller bekymringer i IoT-indsamling, API-orkestrering og maskinlæringsforudsigelsestjenester. Vi prioriterede skalerbarhed, modularitet og klar kommunikation mellem tjenester via REST APIs og database-pipelines.
Backend & ML Prototyping: Den indledende udvikling fokuserede på prototyping af backend-tjenesterne i .NET og vejrprognosemodellen i Python. Dette inkluderede dataparsning, API-endpoints og træning af en regressionsmodel med historiske data. Vi testede iterativt systemets flow og prognosenøjagtighed ved hjælp af simuleringsdata fra sensorerne.
Integration & Funktionel Testning: Vi udførte integrationstests for at sikre problemfri kommunikation mellem tjenester (f.eks. IoT API → DB → ML → Frontend). Vi overvågede svartider, latens (~300 ms i gennemsnit fra sensor til UI) og nøjagtighedsmetrikker fra ML-modulet og justerede vores infrastruktur for pålidelighed.
Frontend Implementering & Deployment: Vi udviklede frontenden i React Native med fokus på en ren brugergrænseflade til at præsentere realtids- og forudsagte data. Et konsistent design system blev implementeret for genbrugelighed. Hele stakken blev containeriseret og udrullet ved hjælp af Docker, hvor hver komponent blev valideret individuelt og som en helhed.
Konklusion
Projektet har demonstreret, hvordan moderne teknologier som IoT-sensorer, maskinlæring og mikroservicearkitektur kan kombineres til at skabe Atmos Alert – et skalerbart og modulært vejrstationssystem med høj præcision og brugervenlighed. Løsningen viser potentialet for at udvikle innovative alternativer til traditionelle vejrprognosemetoder, som kan tilpasses lokale forhold og udbygges i fremtiden.