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 tradisjonelle versjonen
Din fremgang i kapitlet
0 / 5 oppgaver

IoT og nettverkstilkopling

IoT (Internet of Things) – tingenes internett – handlar om å kople fysiske gjenstandar til internett slik at dei kan samle inn data, kommunisere og utføre handlingar automatisk.

Tenk deg ein temperatursensor i eit drivhus som sender målingar til ei sky-teneste. Viss temperaturen fell under ei grense, sender systemet eit varsel til mobilen din og slår på varmesystemet automatisk. Dette er IoT i praksis!

IoT-arkitektur i fire lag:
1. Sensorar – samlar inn data frå den fysiske verda (temperatur, fukt, lys, rørsle)
2. Nettverk – overfører data via WiFi, Bluetooth eller mobilnett
3. Sky (cloud) – lagrar, analyserer og visualiserer dataa
4. Handling – alarmar, styring av einingar, varsel til brukarar

I dette kapittelet skal du lære:
- Korleis IoT-system fungerer
- Bruke ESP32/ESP8266 for WiFi-tilkopling
- MQTT-protokollen for enkel datautveksling
- Sende sensordata til ei skyteneste

ESP32 og ESP8266 – WiFi-mikrokontrollarar
ESP32 og ESP8266 er mikrokontrollarar med innebygd WiFi (og Bluetooth på ESP32). Dei blir programmerte med Arduino IDE og bruker nesten identisk syntax som vanleg Arduino.

Skilnader frå vanleg Arduino:

EigenskapArduino UnoESP32
WiFiNei (krev ekstra modul)Ja, innebygd
BluetoothNeiJa
Klokkefrekvens16 MHz240 MHz
Analog oppløysing10 bit (0–1023)12 bit (0–4095)
Pris~200 kr~50 kr

Kople til WiFi med ESP32:
#include <WiFi.h>

const char* ssid = "MittNett";
const char* passord = "hemmelig123";

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, passord);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("Tilkoblet!");
  Serial.print("IP-adresse: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  // IoT-logikk her
}
📝Oppgave 1

Kva er ein viktig fordel som ESP32 har over ein standard Arduino Uno?

MQTT – protokoll for IoT
MQTT (Message Queuing Telemetry Transport) er ein lettvektskommunikasjonsprotokoll designa for IoT. Han bruker ein publish/subscribe-modell:

Tre roller:
- Broker – ein tenar som tek imot og vidaresender meldingar (t.d. Mosquitto)
- Publisher – sender data til eit emne (topic)
- Subscriber – abonnerer på eit emne og tek imot meldingar

Eksempel:

Sensor (publisher) → "drivhus/temperatur" → Broker → App (subscriber)

Sensoren publiserer temperaturen til emnet drivhus/temperatur. Appen abonnerer på same emne og tek imot oppdateringar automatisk.

Fordelar med MQTT:
- Svært lite dataforbruk (perfekt for batteridrivne einingar)
- Påliteleg levering med tre kvalitetsnivå (QoS 0, 1, 2)
- Støttar tusenvis av einingar samtidig
- Emne (topics) blir organiserte hierarkisk: hus/stue/temperatur, hus/soverom/fuktighet

✏️Sende temperatur via MQTT

Vis korleis ein ESP32 kan lese ein temperatursensor og publisere verdien via MQTT.

#include <WiFi.h>
#include <PubSubClient.h>  // MQTT-bibliotek

const char* ssid = "MittNett";
const char* passord = "hemmelig123";
const char* mqttServer = "broker.hivemq.com";
const int mqttPort = 1883;

WiFiClient espClient;
PubSubClient client(espClient);

void setup() {
  Serial.begin(115200);

  // Koble til WiFi
  WiFi.begin(ssid, passord);
  while (WiFi.status() != WL_CONNECTED) delay(500);

  // Koble til MQTT-broker
  client.setServer(mqttServer, mqttPort);
  while (!client.connected()) {
    client.connect("ESP32_Sensor");
  }
  Serial.println("MQTT tilkoblet!");
}

void loop() {
  int raVerdi = analogRead(34);
  float temp = raVerdi * 0.1;  // Forenklet omregning

  char melding[10];
  dtostrf(temp, 4, 1, melding);
  client.publish("drivhus/temperatur", melding);

  Serial.print("Sendt: ");
  Serial.println(melding);
  delay(5000);  // Send hvert 5. sekund
}

Programmet publiserer temperaturen til emnet drivhus/temperatur kvart 5. sekund. Kvar eining som abonnerer på dette emnet, tek imot verdien automatisk.

📝Oppgave 2

I MQTT-protokollen, kva er rolla til ein «broker»?

Datainnsamling til sky

Ei skyteneste lèt deg lagre, analysere og visualisere IoT-data. Populære plattformer er mellom anna:

- ThingSpeak – gratis plattform med grafar og analysar
- Adafruit IO – brukarvenleg med dashbord
- Firebase – Googles plattform med sanntidsdatabase
- Home Assistant – open kjeldekode for heimeautomasjon

Typisk IoT-dataflyt:

Sensor → ESP32 → WiFi → MQTT broker → Skytjeneste → Dashbord/App

Eksempel – sende data til ThingSpeak:

#include <WiFi.h>
#include <HTTPClient.h>

String apiKey = "DIN_API_NOEKKEL";

void sendTilThingSpeak(float temperatur) {
  HTTPClient http;
  String url = "http://api.thingspeak.com/update?api_key="
               + apiKey + "&field1=" + String(temperatur);
  http.begin(url);
  int respons = http.GET();
  http.end();
}

Med ThingSpeak kan du lage grafar og setje opp varsel basert på sensordata – alt via ein nettlesar.

✏️IoT-system for eit drivhus

Skildre arkitekturen for eit IoT-system som overvakar temperatur og fukt i eit drivhus.

Systemarkitektur:

1. Sensorlag:
- ESP32 med DHT22-sensor (temperatur + fukt)
- Jordfuktssensor for å overvake vatningsbehovet
- Straumforsyning: USB eller solcelle med batteri

2. Nettverkslag:
- ESP32 koplar til WiFi i drivhuset
- Data blir sende via MQTT til ein lokal broker eller direkte til skya
- Emne: drivhus/temperatur, drivhus/fuktighet, drivhus/jord

3. Skylag:
- ThingSpeak lagrar data og lagar grafar over tid
- Reglar: Viss temperatur < 5°C, send varsel

4. Handlingslag:
- Mobilapp viser sanntidsdata og historikk
- Automatisk varsel ved ekstreme verdiar
- Høve til å styre vatning og ventilasjon eksternt

Heile systemet kan byggjast for under 300 kr i komponentar.

📝Oppgave 3

Skildre dei fire laga i ein IoT-arkitektur for eit smart klasserom som måler temperatur, CO₂-nivå og støynivå. For kvart lag, forklar kva for komponentar du ville brukt og kvifor.

Oppsummering

I dette kapittelet har du lært om IoT – tingenes internett:

- IoT-arkitektur: Sensorar → Nettverk → Sky → Handling
- ESP32/ESP8266: Mikrokontrollarar med innebygd WiFi, blir programmerte med Arduino IDE
- MQTT: Lettvekts publish/subscribe-protokoll for IoT-kommunikasjon
- Skytenester: ThingSpeak, Adafruit IO m.fl. for lagring og visualisering

Nøkkelomgrep


OmgrepForklaring
IoTInternet of Things – fysiske einingar kopla til internett
ESP32Mikrokontrollar med innebygd WiFi og Bluetooth
MQTTLettvekts meldingsprotokoll med publish/subscribe-modell
BrokerTenar som vidaresender MQTT-meldingar
TopicEmne (adresse) som meldingar blir publiserte til og abonnerte på
SkytenesteNettbasert plattform for lagring og visualisering av data
📝Oppgave 4

Kva for ein MQTT-topicstruktur er mest føremålstenleg for eit smarthus med sensorar i fleire rom?

📝Oppgave 5

Design eit komplett IoT-system for ein vêrstasjon som måler temperatur, luftfukt og lufttrykk. Skildre: a) Kva for sensorar og mikrokontrollar du ville brukt, b) Korleis data blir overført og lagra, c) MQTT-topicstrukturen, d) Kva slags visualisering og varsel du ville sett opp.

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.