Koble mikrokontrollere til internett og bygge enkle IoT-løsninger.
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
Skilnader frå vanleg Arduino:
| Eigenskap | Arduino Uno | ESP32 |
|---|---|---|
| WiFi | Nei (krev ekstra modul) | Ja, innebygd |
| Bluetooth | Nei | Ja |
| Klokkefrekvens | 16 MHz | 240 MHz |
| Analog oppløysing | 10 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
}Kva er ein viktig fordel som ESP32 har over ein standard Arduino Uno?
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
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.
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/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 grafar og setje opp varsel basert på sensordata – alt via ein nettlesar.
Skildre arkitekturen for eit IoT-system som overvakar temperatur og fukt i eit drivhus.
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.
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
| Omgrep | Forklaring |
|---|---|
| IoT | Internet of Things – fysiske einingar kopla til internett |
| ESP32 | Mikrokontrollar med innebygd WiFi og Bluetooth |
| MQTT | Lettvekts meldingsprotokoll med publish/subscribe-modell |
| Broker | Tenar som vidaresender MQTT-meldingar |
| Topic | Emne (adresse) som meldingar blir publiserte til og abonnerte på |
| Skyteneste | Nettbasert plattform for lagring og visualisering av data |
Kva for ein MQTT-topicstruktur er mest føremålstenleg for eit smarthus med sensorar i fleire rom?
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.