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/
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.
Juiste band instellen voor nederland.
AT+NJM=1
AT+BAND=4
AT+CLASS=A
AT+APPKEY=******** < Krijg je van TTN
AT+DEVEUI= ******** < Heb je nodig bij het aanmaken van je device in TTN.
AT+APPEUI= ******** < Heb je nodig bij het aanmaken van je device in TTN.
Aanmelding op netwerk en test versturen.
AT+JOIN hierna volgt OK en even later +EVT:JOINED
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.
Nu je device is gejoined, kun je dit bevestigen door het commando AT+NJS=1 te sturen. Je ontvangt vervolgens een bevestiging met de melding +EVT:SEND_CONFIRMED_OK.
Nu kunnen we daadwerkelijk data versturen. Gebruik hiervoor 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:SEND_CONFIRMED_OK.
