LoRa

Te doen

  • lora radio
  • lorawan netwerk
  • TheThingsNetwork

LoRa radio

  • instelbaar: bereik vs. bitrate (SF, modulatiemethode) (en vermogen?)
  • 868MHz, vrij band met beperkingen (1% of soms 0,1%)
  • spread-spectrum technologie; gebruikt van “chirps” om interferentie en andere verstoringen te verminderen
  • eventueel zonder LoRaWan netwerk te gebruiken, als radio voor pakket-communicatie.

LoRa hardware

LoRaWan software

TheThingsNetwork

Application

Bij het aanmaken van een TTN-toepassing kies je hiervoor een unieke naam (AppID). Deze naam wordt onder meer gebruikt in de IoT-knopen en in de externe interfaces (mqtt e.d.).

Devices

IoT-knopen (devices) zijn onderdeel van een toepassing (application).

Bij het aanmaken van een IoT-knoop (register) als onderdeel van een toepassing (application) kies je hiervoor een unieke naam. Deze naam wordt onder meer gebruikt in de IoT-knopen en in de externe interfaces (mqtt e.d.). De naam van een device kun je later niet meer veranderen.

Je moet ook een unieke device-EUI kiezen (8 bytes).

(Waarvoor wordt deze EUI gebruikt?). App-EUI en device-EUI worden gebruikt als MAC-adressen (als ik het goed begrijp). Deze adressering is van belang bij een “join” van het netwerk. Daarna krijgt een device een dynamisch 32-bits adres (ik neem aan dat dit uniek is voor het netwerk). (Is dit regio-gebonden? gebonden aan de gateways? je wilt niet in de adres-problemen komen met grote aantallen knopen…)

Je moet ook opgeven op welke manier het device (de IoT-knoop) zich aanmeldt bij het netwerk. Hiervoor zijn er twee mogelijkheden:

  • OTAA (Over the air activation)
  • ABP (Activation by personalization)

Daarnaast zijn er nog de volgende gegevens bij een device:

  • device address (for OTAA: assigned during activation; for ABP: )
    • (te vergelijken met een dynamisch IP-adres?)
  • network session key (for OTAA: assigned during activation; for ABP: )
    • deze wordt gedeeld met het netwerk, en o.a. gebruikt voor het controleren van de integriteit van een pakket. Dit voorkomt tampering van pakketten.
  • app session key (for OTAA: assigned during activation; for ABP: )
    • voor end-to-end encryptie van de payload tussen de IoT-knoop en de TTN-application. Voor het netwerk daartussen (o.a. de gateway) is deze payload niet leesbaar.

==> Welke rol spelen deze? o.a. m.b.t. de security? versleuteling?

Frame counters:

  • voorkomen van replay attack;
  • NB: bij een reset van een IoT-knoop met ABP begint de knoop weer bij 0 te tellen; dit wordt door het netwerk beschouwd als een potentiële replay; pas bij een nieuwe framecounter-waarde worden de berichten geaccepteerd. Dit betekent dat je bij een reset van een IoT-knoop (hardware) met ABP, ook in de application de framecounter weer moet resetten. (Je kunt de framecounter-check ook uitschakelen: in een experimentele situatie is security niet altijd belangrijk.)

Configureren IoT-knoop

De gegevens van de TTN-application en van het device gebruik je voor het configureren van de eigenlijke IoT-knoop. In de (arduino)-software moet je de volgende waarden instellen (in het geval van OTAA-activatie).

Zie: https://www.thethingsnetwork.org/labs/story/creating-a-ttn-node, “Using Activation by Personalization (ABP)”.

In het geval van ABP (activation by personinalization) moet je de volgende gegevens in de Arduino-code invoeren:

  • Device address
  • Network-session-key
  • App-session-key

(In dit geval zie je geen Join-berichten verschijnen: de data-berichten verschijnen - of niet…)

Integratie met een eigen toepassing

(De structuur van een topic is: <app-id>/devices/<dev-id>/up etc.; de id-s zijn unieke namen.)

Alternatief: http integration (“push based…”)

Opmerkingen

Soms worden er LoRa-gateways aangeboden rond de 100 Euro; dit zijn geen echte multi-channel gateways, maar “uitgebreide LoRa-knopen”. Gebruik van dergelijke gateways beperkt de LoRa-dekking voor andere LoRa-netwerken in de buurt.

Activation