Skip to main content

Lorawan - RAK3172 + The Things Network (TTN)

Wat is LoRaWAN?

LoRaWAN is een draadloos communicatienetwerk voor het verbinden van apparaten over grote(re) afstanden. Het is energiezuinig, betrouwbaar en geschikt voor toepassingen waarbij sensoren kleine hoeveelheden data versturen. Denk bijvoorbeeld aan monitoring van temperatuur, luchtkwaliteit, waterstanden of energieverbruik.

The Things Network (TTN)

Voor LoRaWAN zijn verschillende netwerken en platformen beschikbaar. Voor dit project heb ik gekozen voor The Things Network (TTN). Een belangrijke reden hiervoor is dat TTN gratis te gebruiken is en daarmee een laagdrempelige manier biedt om met LoRaWAN te experimenteren en toepassingen te ontwikkelen.

RAK3172 / RAK3272S

Er wordt gebruikgemaakt van de RAK3172. Omdat dit een SMD-module is, kan ook de RAK3272S Proto Board worden gebruikt. Hierop is de RAK3172 al voorgemonteerd. Het bord is energiezuinig en eenvoudig te programmeren, waardoor het geschikt is voor het testen van sensoren en IoT-toepassingen.

Zorg ervoor dat de antenne is aangesloten voordat je de RAK3172 inschakelt. Zonder antenne kan de module onherstelbaar beschadigd raken.

De reden dat ik voor de RAK3272S heb gekozen, is omdat deze een microcontroller bevat voor het aansluiten van externe sensoren. Daarnaast heeft het bord een laag energieverbruik en is er duidelijke documentatie beschikbaar.

Kies je voor de RAK3172 om je eigen board te ontwikkelen, dan heb je nog meer programmeerbare pinnen tot je beschikking voor externe toepassingen.

https://docs.rakwireless.com/product-categories/wisduo/rak3272s-breakout-board/

image.png

Om met de module te communiceren heb je een USB-Serial adapter nodig. Je kan hiervoor de RAKDAP1 gebruiken, maar elke andere USB-Serial adapter met 3.3V uitgang werkt ook.

De module werkt op 3,3 V. Sluit nooit 5 V aan, want hierdoor kan de module onherstelbaar beschadigd raken.

Je sluit het als volgt aan.

USB-Serial

RAK3272S

3.3V

3.3V

GND

GND

TX

UART1_RX

RX

UART1_TX

Hierna is het een kwestie van je favoriete terminalprogramma te openen, bijvoorbeeld PuTTY voor Windows of CuteCom voor Linux. En gebruik onderstaande instellingen.

Baudrate

115200

Databits

8

Pariteit

Geen (N)

Stopbits

1

Als je nu het commando AT stuurt zou je OK terug moeten krijgen. 

Het kan voorkomen dat je geen OK terugkrijgt, maar een melding dat het commando niet wordt herkend. In dat geval staat de module niet in boot mode.

Geef eerst het commando AT+BOOT. Eventueel kun je daarna ATZ als commando gebruiken om de module opnieuw op te starten.

Nu je de module succesvol hebt aangesloten, moeten we deze eerst correct instellen. Voer hiervoor de onderstaande commando’s in.

AT+NJM=1

zet de RAK3172 in OTAA-modus (Over-The-Air Activation).

AT+BAND=4

stelt de RAK3172 in op de EU868-frequentieband.

AT+CLASS=A

stelt de RAK3172 in op LoRaWAN Class A.

Alle commando’s worden gevolgd door een OK-melding wanneer ze succesvol zijn uitgevoerd.

Nu is het tijd om je module aan te melden bij TTN (The Things Network). Hiervoor heb je eerst twee waarden uit de module nodig. Noteer deze bijvoorbeeld in Kladblok, zodat je ze later eenvoudig kunt terugvinden.

AT+DEVEUI=?

Toont de huidige DevEUI van de RAK3172. Deze heb je nodig voor het DevEUI veld bij TTN

AT+APPEUI=?

Toont de huidige AppEUI van de RAK3172. Deze heb je nodig voor het JoinEUI veld bij TTN

Ik ga er vanuit dat je al een account bij TTN hebt. Zo niet dan kan je die eenvouding aanmaken via: https://eu1.cloud.thethings.network/

Maak als eerst een applicatie aan bij TTN. Je mag zelf hier iets van maken. 

Create application - Console - The Things Network

Wanneer de applicatie is aangemaakt kun je het end device toevoegen.

Register end device - geocache - The Things Network

Op het moment van schrijven staat de RAK3172 nog niet in de Device Repository. Daarom moet je bij het toevoegen van het apparaat kiezen voor de optie Manual. Geeft onderstaande waardes op.

Frequency plan

Europe 863-870 MHz (SF9 for RX2 - recommended)

LoRaWAN Version

LoRaWAN Specification 1.0.3

Regional Parameters version

RP001 Regional Parameters 1.0.3 revicion A

Er wordt nu gevraagd om de JoinEUI. Deze heb je eerder opgevraagd met het commando AT+APPEUI=?. Vul deze waarde in en klik op Confirm. Vervolgens wordt gevraagd om de DevEUI. Deze heb je eerder opgevraagd met AT+DEVEUI=?. Vul deze in en klik bij AppKey op Generate. De overige velden mag je naar eigen wens invullen.

Hierna klik je op Register end device en zie je links jouw device staan.

Let op: sla de gegenereerde AppKey goed op. 

Het enige wat je nu nog moet doen is de AppKey in jouw RAK3172 te zetten en het netwerk te joinen. De key voeg je toe met onderstaande commando.

AT+APPKEY=hier_jouw_gegenereerde_key

Selecteer nu jouw device in TTN en open het tabblad Live data. Hierna voer je onderstaande commando in bij je RAK3172.

AT+JOIN

Hierna volgt OK en even later +EVT:JOINED wanneer alles goed is verlopen. Je zie ook in het Live data tabblad een join en accept log.

14:20:13 Forward join-accept message
14:20:11 Successfully processed join-request
14:20:11 Accept join-request

Het kan voorkomen dat je bij het aanmelden voor +EVT:JOINED één of meerdere keren de melding +EVT:JOIN_FAILED_* krijgt. Vooral bij de eerste keer aanmelden kan het even duren voordat alles goed werkt. Wacht daarom een paar minuten en probeer het daarna opnieuw. In de meeste gevallen werkt het vervolgens gewoon.

Krijg je de melding +EVT:JOIN_FAILED_RX_TIMEOUT, dan is er aan één van de twee kanten iets verkeerd ingevuld. Het kan ook zijn dat er simpelweg geen of onvoldoende bereik is. Kijk dan of je even buiten de join kan uitvoeren.


Nu je jouw device hebt aangemeld kunnen we daadwerkelijk data versturen. Gebruik hiervoor bijvoorbeeld het onderstaande commando:

AT+SEND=1:48656C6C6F

Hiermee verstuur je de hex-data 48 65 6C 6C 6F, oftewel "Hello". Het succesvol versturen van de data wordt vervolgens bevestigd met de melding +EVT:TX_DONE. In het Live data tabblad van TTN krijg je nou jouw berichtje binnen.