Kom igång med LoRaWAN och The Things Network

Denna guide 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.

I en del delar av Sverige finns det publika gateways som du kan använda utan kostnad, men det bygger likt temperatur.nu på frivillighet, så det finns inte några garantier för tillgänglighet. 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 har upp till 15km räckvidd 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 16-teckens hexadecimalt tal (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 DS20-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 formattersUplink.
  • Välj Custom Javascript formatter.
  • Klistra in decodern för din sensormodell. Tillverkaren tillhandahåller vanligtvis en decoder — kolla deras GitHub eller dokumentation.

Exempel för Dragino D20-LS:

javascript
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 strömcykla den).
  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 standardintervall (ofta 10 minuter). Exempel för hur du ändrar 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 → MessagingDownlink.
  2. Payload type: Bytes
  3. FPort: 1
  4. Payload för 5 minuter (300 sekunder = 0x12C): `0100012C` (En bugg i TTN gör att det ibland krävs 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 (1200 sekunder): 010004B0 147
  • 30 minuter (1800 sekunder): 01000708 148
  • 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