Koble mikrokontrollere til internett og bygge enkle IoT-løsninger.
IoT og nettverkstilkobling
IoT (Internet of Things) – tingenes internett – handler om å koble fysiske gjenstander til internett slik at de kan samle inn data, kommunisere og utføre handlinger automatisk.
Tenk deg en temperatursensor i et drivhus som sender målinger til en sky-tjeneste. Hvis temperaturen faller under en grense, sender systemet en varsling til mobilen din og slår på varmesystemet automatisk. Dette er IoT i praksis!
IoT-arkitektur i fire lag:
1. Sensorer – samler inn data fra den fysiske verden (temperatur, fuktighet, lys, bevegelse)
2. Nettverk – overfører data via WiFi, Bluetooth eller mobilnett
3. Sky (cloud) – lagrer, analyserer og visualiserer dataene
4. Handling – alarmer, styring av enheter, varsler til brukere
I dette kapittelet skal du lære:
- Hvordan IoT-systemer fungerer
- Bruke ESP32/ESP8266 for WiFi-tilkobling
- MQTT-protokollen for enkel datautveksling
- Sende sensordata til en skytjeneste
Forskjeller fra vanlig Arduino:
| Egenskap | Arduino Uno | ESP32 |
|---|---|---|
| WiFi | Nei (krever ekstra modul) | Ja, innebygd |
| Bluetooth | Nei | Ja |
| Klokkefrekvens | 16 MHz | 240 MHz |
| Analog oppløsning | 10 bit (0–1023) | 12 bit (0–4095) |
| Pris | ~200 kr | ~50 kr |
Koble 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
}Hva er en viktig fordel ESP32 har over en standard Arduino Uno?
Tre roller:
- Broker – en server som mottar og videresender meldinger (f.eks. Mosquitto)
- Publisher – sender data til et emne (topic)
- Subscriber – abonnerer på et emne og mottar meldinger
Eksempel:
Sensor (publisher) → "drivhus/temperatur" → Broker → App (subscriber)Sensoren publiserer temperaturen til emnet drivhus/temperatur. Appen abonnerer på samme emne og mottar oppdateringer automatisk.
Fordeler med MQTT:
- Svært lite dataforbruk (perfekt for batteridrevne enheter)
- Pålitelig levering med tre kvalitetsnivåer (QoS 0, 1, 2)
- Støtter tusenvis av enheter samtidig
- Emner (topics) organiseres hierarkisk: hus/stue/temperatur, hus/soverom/fuktighet
Vis hvordan en ESP32 kan lese en 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 hvert 5. sekund. Enhver enhet som abonnerer på dette emnet, mottar verdien automatisk.
I MQTT-protokollen, hva er rollen til en «broker»?
Datainnsamling til sky
En skytjeneste lar deg lagre, analysere og visualisere IoT-data. Populære plattformer inkluderer:
- ThingSpeak – gratis plattform med grafer og analyser
- Adafruit IO – brukervennlig med dashbord
- Firebase – Googles plattform med sanntidsdatabase
- Home Assistant – åpen kildekode for hjemmeautomasjon
Typisk IoT-dataflyt:
Sensor → ESP32 → WiFi → MQTT broker → Skytjeneste → Dashbord/AppEksempel – 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 grafer og sette opp varsler basert på sensordata – alt via en nettleser.
Beskriv arkitekturen for et IoT-system som overvåker temperatur og fuktighet i et drivhus.
1. Sensorlag:
- ESP32 med DHT22-sensor (temperatur + fuktighet)
- Jordfuktighetssensor for å overvåke vanningsbehov
- Strømforsyning: USB eller solcelle med batteri
2. Nettverkslag:
- ESP32 kobler til WiFi i drivhuset
- Data sendes via MQTT til en lokal broker eller direkte til skyen
- Emner: drivhus/temperatur, drivhus/fuktighet, drivhus/jord
3. Skylag:
- ThingSpeak lagrer data og lager grafer over tid
- Regler: Hvis temperatur < 5°C, send varsling
4. Handlingslag:
- Mobilapp viser sanntidsdata og historikk
- Automatisk varsling ved ekstreme verdier
- Mulighet for å styre vanning og ventilasjon remotely
Hele systemet kan bygges for under 300 kr i komponenter.
Beskriv de fire lagene i en IoT-arkitektur for et smart klasserom som måler temperatur, CO₂-nivå og støynivå. For hvert lag, forklar hvilke komponenter du ville brukt og hvorfor.
Oppsummering
I dette kapittelet har du lært om IoT – tingenes internett:
- IoT-arkitektur: Sensorer → Nettverk → Sky → Handling
- ESP32/ESP8266: Mikrokontrollere med innebygd WiFi, programmeres med Arduino IDE
- MQTT: Lettvekts publish/subscribe-protokoll for IoT-kommunikasjon
- Skytjenester: ThingSpeak, Adafruit IO m.fl. for lagring og visualisering
Nøkkelbegreper
| Begrep | Forklaring |
|---|---|
| IoT | Internet of Things – fysiske enheter koblet til internett |
| ESP32 | Mikrokontroller med innebygd WiFi og Bluetooth |
| MQTT | Lettvekts meldingsprotokoll med publish/subscribe-modell |
| Broker | Server som videresender MQTT-meldinger |
| Topic | Emne (adresse) som meldinger publiseres til og abonneres på |
| Skytjeneste | Nettbasert plattform for lagring og visualisering av data |
Hvilken MQTT-topicstruktur er mest hensiktsmessig for et smarthus med sensorer i flere rom?
Design et komplett IoT-system for en værstasjon som måler temperatur, luftfuktighet og lufttrykk. Beskriv: a) Hvilke sensorer og mikrokontroller du ville brukt, b) Hvordan data overføres og lagres, c) MQTT-topicstrukturen, d) Hva slags visualisering og varsler du ville satt 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.