Tilbake
3.8
IoT og nettverkstilkobling

3.8 IoT og nettverkstilkobling

Koble mikrokontrollere til internett og bygge enkle IoT-løsninger.

55 min
5 oppgaver
IoTWiFi-modulMQTTSkytjenesterDatainnsamling
Du leser den lesevennlige versjonen
Din fremgang i kapitlet
0 / 5 oppgaver

Når tingene kobler seg på nettet

Forestill deg et drivhus. En liten temperatursensor måler luften, og hvis det blir for kaldt om natten, sender systemet en varsling til mobilen din og slår på varmen helt av seg selv. Det er IoT -- Internet of Things, eller tingenes internett -- i praksis: fysiske gjenstander som kobles til nettet for å samle data, kommunisere og handle.

De fleste IoT-systemer er bygget i fire lag. Først kommer sensorene, som samler data fra den fysiske verden -- temperatur, fuktighet, lys, bevegelse. Så kommer nettverket, som overfører dataene via WiFi, Bluetooth eller mobilnett. Deretter skyen, som lagrer, analyserer og visualiserer alt. Til slutt handlingen: alarmer, automatisk styring eller varsler til deg.

I dette kapittelet skal vi se hvordan en WiFi-mikrokontroller som ESP32 kobler seg på nettet, hvordan MQTT-protokollen lar enheter utveksle meldinger på en sparsommelig måte, og hvordan dataene havner trygt i en skytjeneste.

ESP32: en Arduino med nett innebygd

En vanlig Arduino Uno er flott, men den har ingen innebygd nettilkobling. Her kommer ESP32 og lillebror ESP8266 inn. Dette er mikrokontrollere med innebygd WiFi -- og ESP32 har til og med Bluetooth. Det fine er at de programmeres i Arduino IDE med nesten samme syntaks som du allerede kan.

Forskjellene fra en Arduino Uno er likevel betydelige. ESP32 har WiFi og Bluetooth innebygd, mens Uno trenger ekstra moduler. Klokkefrekvensen er mye høyere -- 240 MHz mot Unos 16 MHz. Den analoge oppløsningen er finere: 12 bit gir verdier fra 0 til 4095, mot Unos 10 bit (0--1023). Og merkelig nok er ESP32 ofte billigere. Den innebygde WiFi-en er den klart viktigste fordelen for IoT.

Å koble til WiFi er enkelt. Du inkluderer biblioteket WiFi.h, oppgir nettverksnavn (ssid) og passord, og kaller WiFi.begin(ssid, passord);. Deretter venter du i en liten løkke -- while (WiFi.status() != WL_CONNECTED) -- til tilkoblingen er på plass, og kan så skrive ut IP-adressen med WiFi.localIP(). Nå er brikken på nett og klar til å sende data.

📝Oppgave Quiz 1

MQTT: meldingstjenesten for små enheter

Når tusenvis av småenheter skal snakke sammen uten å sluke strøm og data, trengs en lett protokoll. MQTT -- Message Queuing Telemetry Transport -- er nettopp det. Den bygger på en publish/subscribe-modell med tre roller. En broker er en server som tar imot og videresender meldinger. En publisher sender data til et emne (topic), og en subscriber abonnerer på et emne og får meldingene automatisk.

Tenk på drivhuset igjen. Sensoren publiserer temperaturen til emnet drivhus/temperatur. Brokeren tar imot og sender videre til alle som abonnerer på samme emne -- for eksempel appen på mobilen din, som da oppdateres av seg selv. Brokeren lagrer ikke dataene permanent; den er bare et mellomledd for sanntidskommunikasjon.

Fordelene er mange. MQTT bruker svært lite data, perfekt for batteridrevne enheter. Den har pålitelig levering med tre kvalitetsnivåer (QoS 0, 1 og 2), og den takler tusenvis av enheter samtidig. Emnene organiseres hierarkisk, som et tre: hus/stue/temperatur eller hus/soverom/fuktighet. Denne strukturen er lur, for da kan du abonnere bredt -- hus/# for alt -- eller smalt -- hus/+/temperatur for alle temperaturer i alle rom. På en ESP32 publiserer du en måling med biblioteket PubSubClient og et enkelt kall til client.publish("drivhus/temperatur", melding);.

📝Oppgave Quiz 2

Opp i skyen

Når dataene først er sendt, må de et sted å bo. En skytjeneste lar deg lagre, analysere og visualisere IoT-data. Det finnes flere populære plattformer: ThingSpeak er gratis og gir grafer og analyser, Adafruit IO har brukervennlige dashbord, Firebase er Googles plattform med sanntidsdatabase, og Home Assistant er en åpen kildekode-løsning for hjemmeautomasjon.

Den typiske dataflyten i et IoT-system ser slik ut: sensor → ESP32 → WiFi → MQTT-broker → skytjeneste → dashbord eller app. Et eksempel er å sende data til ThingSpeak. Med biblioteket HTTPClient bygger du en URL med en API-nøkkel og selve måleverdien, og kaller http.GET(); for å sende den. I ThingSpeak kan du så lage grafer over tid og sette opp varsler -- alt fra en nettleser.

La oss sette det sammen for drivhuset. I sensorlaget sitter en ESP32 med en DHT22-sensor som måler både temperatur og fuktighet, kanskje også en jordfuktighetssensor. I nettverkslaget kobler ESP32 seg på WiFi og publiserer via MQTT til emner som drivhus/temperatur og drivhus/fuktighet. I skylaget lagrer ThingSpeak dataene og lager grafer, med en regel om at hvis temperaturen faller under 5 grader, skal det sendes en varsling. I handlingslaget viser en mobilapp sanntidsdata og historikk, og du kan styre vanning og ventilasjon på avstand. Hele systemet kan bygges for noen få hundrelapper -- det er nettopp dette som gjør IoT så tilgjengelig i dag.

📝Oppgave Quiz 3

Oppsummering

IoT kobler den fysiske verden til internett i fire lag: sensorer, nettverk, sky og handling. ESP32 og ESP8266 er mikrokontrollere med innebygd WiFi som programmeres i Arduino IDE, og den innebygde nettilkoblingen er det som gjør dem ideelle for IoT.

MQTT er en lettvektsprotokoll med en publish/subscribe-modell, der en broker formidler meldinger mellom publishere og subscribere via hierarkiske emner som hus/stue/temperatur. Den bruker lite data og passer batteridrevne enheter. Til slutt tar skytjenester som ThingSpeak imot dataene for lagring, visualisering og varsling. Sammen lar disse delene deg bygge et helt overvåkingssystem -- for et drivhus, et klasserom eller en værstasjon -- for en svært overkommelig pris.

Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.