Nätverk & systemintegration/Kursinnehåll
SV
← Till kursöversikten
ÄMNE 01 / 09 · Grunderna

Introduktion & MQTT

Upptäck hur uppkopplade enheter pratar med varandra och skicka ditt första meddelande.

12 min läsning5 kunskapsfrågorPraktisk övning
DET HÄR TAR DU MED DIG
  • Förklara TCP/IP, UDP, MQTT och LoRa i en IoT-lösning.
  • Skilja mellan publisher, broker och subscriber.
  • Bygga och dokumentera ett första MQTT-flöde.
Sensor
MQTT-broker
Mottagare
Från sensor till system · Ett förenklat flöde
01 — UTFORSKA

Allt börjar med ett mätvärde

En temperatursensor mäter 21,7 °C. För att värdet ska bli användbart behöver det nå ett annat program. Under kursen följer du just den resan: från nätverk och meddelanden, via API:er och datakontrakt, till ett säkert system som klarar avbrott.

IP-adressen pekar ut ett nätverksgränssnitt och porten hjälper trafiken att hitta rätt tjänst. MQTT använder normalt TCP, som levererar en ordnad byte-ström och skickar om förlorade data. UDP skickar i stället avgränsade datagram utan garanti för leverans eller ordning.

02 — UTFORSKA

Tre roller, ett gemensamt språk

I MQTT publicerar en publisher ett meddelande till en broker. Brokern förmedlar meddelandet till de subscribers som prenumererar på det aktuella ämnet, ett topic. Sensorn behöver alltså inte känna till vilka som ska läsa värdet.

  • Publisher: producerar och skickar mätvärdet.
  • Broker: tar emot och förmedlar meddelanden.
  • Subscriber: prenumererar på och konsumerar data.
EXEMPEL
Topic: iot25/min-grupp/sensor/temperatur1
Payload: {"sensorId":"temp-01","value":21.7,"unit":"C"}
03 — UTFORSKA

Topics, leverans och senaste värdet

Snedstreck skapar en hierarki av topics. Prenumerationen iot25/# följer alla nivåer under iot25. Payload är själva innehållet och kan exempelvis vara JSON.

QoS 0 innebär högst en leverans utan kvittens. QoS 1 innebär minst en leverans och kan ge dubbletter. QoS 2 ger exakt en leverans inom MQTT:s protokollutbyte men kräver mer trafik; det garanterar inte att en hel kedja av externa system utför en affärshändelse exakt en gång.

Retained betyder att brokern sparar det senaste retained-meddelandet för ett topic och ger det till nya matchande prenumeranter. Det är inte en historik över alla mätningar.

04 — UTFORSKA

Var kommer LoRa in?

LoRa är radioteknik för små datamängder över långa avstånd med låg energiförbrukning. En batteridriven sensor kan skicka via LoRa till en gateway, som förmedlar data över IP och MQTT. LoRa och MQTT fyller olika roller och kan ingå i samma lösning.

FRÅN KUNSKAP TILL HANDLING

Prova själv

Ta med ämnet in i ditt eget IoT-case. Dokumentera vad du upptäcker.

  1. Skapa ett Git-repository med en README och en enkel skiss över sensor, broker och mottagare.
  2. Installera Mosquitto enligt dess dokumentation och starta en lokal broker. Använd localhost och port 1883 för den lokala övningen.
  3. Starta en subscriber på iot25/min-grupp/sensor/temperatur1. Publicera JSON-exemplet på samma topic.
  4. Kontrollera topic och payload hos mottagaren. Prova ett felaktigt topic, beskriv resultatet och gör en commit.
DIN TUR

Testa dina kunskaper

Stanna upp en stund. Vad har fastnat?

01Vilken roll förmedlar meddelanden till prenumeranter?

02Vad innebär MQTT QoS 1?

03Vad får en ny prenumerant från ett topic med ett retained-meddelande?

04Vilka topics matchar prenumerationen iot25/#?

05Vilken roll kan LoRa ha i samma lösning som MQTT?

Fortsätt vara nyfiken

Originalmaterial och utvalda källor för dig som vill gå djupare.

Föreläsningsbilder · Ämne 1Joakim Englund · Systementor AB · PDF på svenskaMQTT: topics, QoS och retainedEclipse Mosquitto · Engelska

Ett steg närmare helheten.

Markera ämnet när du känner dig redo.

Hitta nästa sak att förstå.

Introduktion & MQTTÄmne 1 · GrundernaPortar & socketsÄmne 2 · NätverkHTTP(S) & API:erÄmne 3 · IntegrationJSON, XML & datakontraktÄmne 4 · IntegrationSystemintegration & SOAÄmne 5 · IntegrationNätverk & segmenteringÄmne 6 · NätverkSäker kommunikationÄmne 7 · SäkerhetTrådar & återanslutningÄmne 8 · RobusthetLoggning & övervakningÄmne 9 · Robusthet