Kom igång med LoRaWAN och The Things Network

Den här guiden visar hur du sätter upp en LoRaWAN-gateway och temperatursensor på The Things Network (TTN) från grunden. När allt är på plats kan du rapportera temperatur till temperatur.nu via en webhook.

Del 1: Gateway

En gateway tar emot LoRaWAN-signaler från sensorer i närheten och vidarebefordrar dem till TTN via internet. Du behöver minst en gateway inom räckhåll för att dina sensorer ska kunna kommunicera.

På många håll i Sverige finns publika gateways som du kan använda gratis. Precis som temperatur.nu bygger de på frivillighet, så det finns inga garantier för att de finns kvar. Skulle en publik gateway du använder försvinna kan du sätta upp en egen senare. Här kan du se om det finns någon publik gateway i din närhet. (LoRa når upp till 15 km under optimala förhållanden.)

Vad du behöver

  • En LoRaWAN-gateway som stödjer TTN (t.ex. Dragino LPS8N, RAK7268, eller Mikrotik wAP LoRa8)
  • Internetanslutning (Ethernet eller WiFi beroende på modell)
  • Ett konto på The Things Network (https://eu1.cloud.thethings.network/console/)

Steg 1: Skapa konto på TTN

1. Gå till https://eu1.cloud.thethings.network/console/ och skapa ett konto.

2. Logga in

Steg 2: Registrera din gateway

1. Klicka Go to gateways (eller Gateways i menyn).

2. Klicka + Register gateway.

3. Fyll i:

  •   Gateway EUI: Hittas i din gateways admin-gränssnitt eller på en etikett på enheten. Det är ett hexadecimalt tal med 16 tecken (t.ex. A840411B5D640039).
  •    Gateway ID: Välj ett beskrivande namn (t.ex. min-gateway-linkoping).
  •    Frequency plan: Välj Europe 863-870 MHz (SF9 for RX2 – recommended).

4. Klicka Register gateway.

Steg 3: Konfigurera din gateway

Gatewayen behöver peka mot TTN:s server. Logga in i gatewayens eget admin-gränssnitt (vanligtvis via webbläsaren på dess IP-adress) och ställ in:

  • Server address: eu1.cloud.thethings.network
  • Server port (uplink): 1700
  • Server port (downlink): 1700

Exakt var dessa inställningar finns varierar mellan gateway-modeller. Konsultera tillverkarens dokumentation.

Steg 4: Verifiera

Gå tillbaka till TTN Console → Gateways → din gateway. Under Live data ska du se statusmeddelanden. Om det står Connected är allt klart.

Det kan ta några minuter efter första uppstarten innan gatewayen dyker upp som ansluten.

Del 2: Sensor

När din gateway är igång (eller om det finns en publik gateway i närheten) kan du registrera en temperatursensor.

Vad du behöver

  • En LoRaWAN-temperatursensor (t.ex. Dragino D20-LS, LHT65, Elsys ERS eller liknande)
  • Sensorns DevEUI, AppEUI (JoinEUI) och AppKey – dessa hittar du i sensorns dokumentation, på en etikett, eller via AT-kommandon

Steg 1: Skapa en applikation

  1. I TTN Console, gå till Applications.
  2. Klicka + Create application.
  3. Fyll i:
    • Application ID: Valfritt namn, t.ex. mina-temperatursensorer
  4. Klicka Create application.

Steg 2: Registrera sensorn

  1. I din applikation, gå till End devices.
  2. Klicka + Register end device.
  3. Välj registreringsmetod:
    • From the LoRaWAN Device Repository – om din sensor finns i listan (t.ex. Dragino). Välj tillverkare, modell och firmware-version.
    • Manually – om sensorn inte finns i listan. Välj:
      • Frequency plan: Europe 863-870 MHz
      • LoRaWAN version: Kontrollera sensorns dokumentation (vanligtvis 1.0.3 eller 1.0.4)
      • Regional Parameters version: Matcha med LoRaWAN-versionen
  4. Fyll i DevEUI, AppEUI och AppKey från din sensor.
  5. Välj ett End device ID (t.ex. min-temperatursensor-1).
  6. Klicka Register end device.

Steg 3: Konfigurera payload formatter

För att TTN ska kunna avkoda sensorns rådata till läsbara värden behövs en payload formatter.

  • I din applikation (eller under enskild device), gå till Payload formatters → Uplink.
  • Välj Custom Javascript formatter.
  • Klistra in avkodningskoden (decoder) för din sensormodell. Tillverkaren brukar ha en färdig – titta i deras dokumentation eller på GitHub.

Exempel för Dragino D20-LS:

function decodeUplink(input) {
  var bytes = input.bytes;
  var bat = (bytes[0] << 8 | bytes[1]) / 1000;
  var temp;
  if (bytes[2] === 0x7F && bytes[3] === 0xFF)
    temp = null;
  else
    temp = (bytes[2] << 24 >> 16 | bytes[3]) / 10;
  return {
    data: {
      BatV: bat,
      TempC1: temp
    }
  };
}
  • Klicka Save changes.

Steg 4: Verifiera att sensorn skickar data

  1. Slå på sensorn (eller stäng av den och slå på den igen).
  2. Gå till End devices → din sensor → Live data.
  3. Du bör se:
    • Join request och Join accept – sensorn ansluter till nätverket
    • Forward uplink data message – sensorn skickar temperaturdata
  4. Klicka på en uplink och kontrollera att decoded payload innehåller ditt temperaturfält (t.ex. TempC1: 23.1).

Steg 5: Justera sändintervall

De flesta sensorer skickar med ett förinställt intervall, ofta var 10:e minut. Så här ändrar du det på en Dragino D20-LS:

AT-kommando (om du har seriell åtkomst):

AT+TDC=300000

Värdet anges i millisekunder. 300000 = 5 minuter.

Downlink via TTN Console:

  1. Gå till din device → Messaging → Downlink.
  2. Payload type: Bytes
  3. FPort: 1
  4. Payload för 5 minuter (300 sekunder = 0x12C): 0100012C (På grund av en bugg i TTN behövs ibland ett extra mellanslag efter värdet.)
  5. Klicka Schedule downlink.
  6. Downlinken skickas vid nästa uplink från sensorn.

Vanliga intervall (korta intervall drar mycket mer batteri):

  • 1 minut (60 sekunder): 0100003C
  • 5 minuter (300 sekunder): 0100012C
  • 10 minuter (600 sekunder): 01000258
  • 20 minuter (1 200 sekunder): 010004B0
  • 30 minuter (1 800 sekunder): 01000708
  • 1 timme (3600 sekunder): 01000E10

Nästa steg

Nu när din gateway och sensor är igång på TTN kan du koppla sensorn till temperatur.nu. Följ guiden: Rapportera temperatur via TTN