Nøkkeltall
- 99 %+Oppnådde deteksjon av luftkvalitetsavvik på minuttskala med over 99 % nøyaktighet
- ~1 km²Hver IoT-sensor dekker ~1 km², noe som sikrer bred dekning uten blindsoner selv i områder uten nettverksinfrastruktur
Om kunden
ForrestApp er en klimateknologisk oppstartsbedrift i tidlig fase som spesialiserer seg på overvåking av luftkvalitet og utslipp. Deres flaggskipprodukt (ForrestApp-systemet) hjelper virksomheter som forsyningsselskaper, gruver, deponier og olje- og gassvirksomheter med å overvåke klimagassutslipp og luftforurensning i sanntid.
Deres «digital nese»-sensorer kombinerer gassdeteksjon med AI for å peke ut hvor et utslipp kommer fra. Utplassert som et nettverk skal de fange opp lekkasjer og forurensningshendelser tidlig nok til at man kan gjøre noe med dem.
Vi bygde hele programvaresiden fra bunnen av, fra IoT-ryggraden til appene.
Utfordringen

Å overvåke luftkvalitet over enorme og avsidesliggende områder er svært utfordrende med tradisjonelle metoder. Kunden sto overfor behovet for å oppdage gasslekkasjer, forurensning eller skogbrannrøyk raskt og presist på steder som skoger og industriområder.
Eksisterende løsninger (faste stasjoner eller manuelle inspeksjoner) var enten for trege, manglet dekning eller ga utilstrekkelig dataanalyse. De ønsket et system som kunne identifisere avvik i sanntid og lokalisere utslippskilden til et lite område, slik at man kunne reagere raskt før små problemer ble til store katastrofer.

ForrestApp måtte plassere ut sensorer i avsidesliggende regioner (f.eks. store rancher, vingårder, fjellskoger) ofte uten pålitelig internett eller strøm. Det betydde at løsningen måtte fungere offline og likevel samle inn data kontinuerlig.
- Tilkoblingshull
Mange aktuelle steder har begrenset mobildekning. Systemet måtte overføre data via alternative metoder (f.eks. satellittkommunikasjon) for å sikre at ingen data gikk tapt. På samme måte trengte feltpersonell offline tilgang til kart og sensordata når de jobbet ute på stedet.
- Sanntidsvarsler
Å oppdage en utslippshendelse (som en metanlekkasje eller brann) selv noen få timer for sent kunne føre til regulatoriske bøter eller sikkerhetsfarer. Kunden krevde umiddelbare varsler og oppdateringer i sanntid fra hver enhet.
- Skalerbarhet og dekning
For å dekke store geografiske områder ville flere sensorer bli plassert ut (hver sensor kan overvåke ~1 kvadratkilometer). Plattformen måtte håndtere titalls eller hundrevis av enheter og samle dataene deres i ett dashbord.
- Nøyaktighet og pålitelighet
Falske alarmer eller uteblitte deteksjoner måtte minimeres. Løsningens analyse måtte være robust og AI-drevet for å sikre høy presisjon i å identifisere reelle utslippshendelser, ettersom kunden lovet >99 % deteksjonsnøyaktighet til sluttbrukerne sine. I tillegg måtte enhetene være vedlikeholdsfrie (batteridrevne med lang levetid), og programvarearkitekturen måtte være feiltolerant gitt den kritiske naturen til dataene.
Løsningen
Utviklingsteamet vårt konstruerte en fullstack IoT-plattform som møtte ForrestApps utfordringer ved å kombinere en plattformuavhengig app, IoT-tilkobling og skyinfrastruktur.
Vi valgte Flutter for klientapplikasjonen for å levere en enhetlig opplevelse på Android, iOS og web fra én enkelt kodebase. På backend integrerte vi IoT-plattformen ResIOT og AWS-skytjenester for å håndtere enhetskommunikasjon, databehandling og skalering.
Løsningen ble designet med en offline-first-tankegang og sanntidsfunksjonalitet fra dag én.

Flutter · ResIOT IoT-plattform · AWS (sky- og IoT-tjenester) · satellitt- og LoRaWAN-kommunikasjon · kart-APIer (med offline-fliser) · MQTT/WebSockets for sanntidsoppdateringer

- ImplementeringsdetaljerFase 1. Innledende kartlegging og design
- I denne fasen samarbeidet vi tett med kunden for å samle inn krav og forstå arbeidsflyten for miljøovervåking. Vi definerte systemarkitekturen, valgte Flutter for appen og identifiserte ResIOT som en egnet IoT-plattform for enhetshåndtering og kommunikasjon. Teamet planla for sentrale funksjoner som offline-drift, sanntidsvarsler og integrasjon med kundens AI-modell for avviksdeteksjon. Vi laget wireframes for brukergrensesnittet (dashbord og mobilskjermer) og designet databaseskjemaet på AWS for å lagre sensordata og hendelseslogger.
- ImplementeringsdetaljerFase 2. Utvikling og integrasjon
- Ingeniørene våre utviklet Flutter-applikasjonen og sky-backenden parallelt. På frontend implementerte vi et intuitivt grensesnitt med dashbord, kart og enhetskontroller, og sikret en god brukeropplevelse både på mobil og desktop. Vi integrerte kartfunksjonalitet med offline-caching slik at brukere kunne laste ned kart over lokasjonene sine. Samtidig konfigurerte IoT-integrasjonsteamet ResIOT-plattformen for å registrere ForrestApp-sensorer og sette opp datakoblinger. Vi skrev backend-tjenester på AWS (ved hjelp av AWS Lambda og API Gateway) for å grensesnitte mot ResIOTs MQTT-datastrøm, og behandlet innkommende sensordata i sanntid. I løpet av denne fasen integrerte vi også kundens AI-logikk: sensordata ble matet inn i en avviksdeteksjonsalgoritme (enten på edge-enheter eller i skyen) for å avgjøre om en utslippshendelse er i ferd med å skje. Utviklingen var iterativ, med ukentlige demoer til kunden, slik at vi kunne innarbeide tilbakemeldinger på funksjoner som varselterskler og rapporteringsanalyse.
- ImplementeringsdetaljerFase 3. Testing, utrulling og lansering
- Vi gjennomførte omfattende testing av hele systemet. Dette inkluderte simulering av sensordata for å teste sanntidsvarsling, offline-scenariotester (kjøring av appen uten internett for å sikre datapersistens) og felttester med faktiske maskinvareenheter. Vi finjusterte arbeidsflytene for satellittkommunikasjon for å håndtere ustabil tilkobling på en elegant måte (f.eks. mellomlagring av sensoravlesninger hvis en satellittpassering ble forsinket). Når dette var validert, rullet vi ut sky-komponentene til kundens AWS-miljø og publiserte Flutter-appen til App Store/Play Store for en kontrollert lansering. I sin første feltutplassering oppdaget systemet et testutslipp av gass på under to minutter.
Resultater og effekt
Teknologistakk
- Backend
IoT-innhenting og meldingsformidling via ResIOT og AWS IoT (MQTT, WebSockets)
Serverløs databehandling og varslingspipelines for sanntidsvarsler
Analyselag som integrerer kundens avviksdeteksjonsmodeller
API-lag for apper og dashbord (dataforespørsler, styringskommandoer)
- Frontend
Flutter med én kodebase for iOS, Android og web
Offline-first datacache og bakgrunnssynkronisering for bruk i felt
Interaktive kart med offline-fliser basert på OpenStreetMap
Sanntidsdashbord med enhetsstatus, diagrammer og kartoverlegg
- Infrastruktur
AWS-sky for skalerbar databehandling, datalagring og overvåking
ResIOT enhetsregister og LoRaWAN-nettverksintegrasjon
Satellittoppkobling og LoRaWAN-backhaul for avsidesliggende utplasseringer
Automatisert bygging og utrulling for mobil- og webutgivelser
- Sikkerhet
Ende-til-ende TLS for MQTT, WebSockets og APIer
Rollebasert tilgangskontroll for brukere og enheter
Kryptering i ro og under overføring med revisjonslogging og minste privilegium
Sikre OTA-oppdateringer og signert konfigurasjonsdistribusjon

Miljøovervåking var reaktiv og fragmentert. Kundens kunder baserte seg på et lappeteppe av lokale sensorer, periodiske manuelle inspeksjoner og etterhåndsrapportering. Dekningen var begrenset, og å oppdage en utslippskilde kunne ta timer eller til og med dager.

ForrestApp gir et proaktivt, samlet overvåkingssystem. Automatiserte IoT-sensorer snuser kontinuerlig opp problemer, og i det øyeblikket et avvik oppstår, sendes det ut et varsel med den nøyaktige plasseringen. Det som en gang var en treg, manuell prosess, er nå en øyeblikkelig, datadrevet operasjon. En deponioperatør som bruker ForrestApp kan for eksempel lokalisere en gasslekkasje umiddelbart på det digitale kartet, i stedet for å lete gjennom mål etter mål med land – noe som drastisk reduserer responstiden og forbedrer sikkerheten.
Viktigste lærdommer
Å koble sensornettverk med AI-avviksdeteksjon flyttet deteksjon av lekkasjer og forurensning fra timer til minutter, i en skala der manuell inspeksjon aldri var realistisk. For bransjene det gjelder, er det forskjellen mellom en hendelseslogg og en bot.
Offline-first var riktig valg. Satellitt-backhaul og lokal caching holder systemet i gang på steder helt uten dekning, som er nøyaktig der sensorene trengs mest.
Én Flutter-kodebase dekket iOS, Android og web, noe som betydde mye på et oppstartsbudsjett. Det identiske grensesnittet på tvers av plattformer gjorde også brukeropplæringen enklere.
AWS- og ResIOT-grunnmuren absorberer vekst i sensorer og regioner uten omarbeid. Lang batterilevetid og oppdateringer over luften holder driftskostnaden lav nok til at en oppstartsbedrift faktisk kan drifte flåten på lang sikt.
Ukentlige demoer og iterativ testing med oppstartsteamet justerte varselterskler og dashbordfunksjoner mot reelle forventninger. For et helt nytt produkt var den tilbakemeldingssløyfen forskjellen mellom å levere deres idé og å levere vår.
Trenger du en lignende løsning?
Hvis du setter ut sensorer i felt og trenger at programvaresiden er like pålitelig som maskinvaren, snakk med oss. Vi designer hele pipelinen, fra enhet til dashbord.
Kontakt oss