Om een LoRaWan IoT netwerk te implementeren via The Things Network (TTN) zonder zelf een server te hosten, maken we gebruik van The Things Stack (TTS) van The Things Industries.
In een eerdere blog “iot Cloud integratie” beschreef ik hoe TTN is opgebouwd en heb ik ook de fundering van een IoT architectuur uitgelegd
Er zijn drie prijsplannen beschikbaar, waarbij het Discovery-plan geschikt is voor 10 IoT-apparaten en 10 gateways. Dit plan beperkt zich tot één applicatie, wat voor onze test echter geen probleem vormt.
Voor het in kaart brengen van de dekking van onze gateway hebben we echter de Community Edition (CE) nodig. Bij de Private Edition worden dekkinggegevens (zoals de paarse nodes op onderstaande kaart) namelijk niet weergegeven. Om deze tutorial te volgen, is het belangrijk om je te registreren voor de Sandbox, de CE-versie van TTS.
Let op: De naam van de gateway is niet zichtbaar in TTS, tenzij je een maandelijkse fee van $20 betaalt.
Een LoRaWan gateway om een LoRaWan IoT netwerk op te zetten
U kunt gebruik maken van bestaande gateways in uw buurt maar voor deze blog gaan we dit doen met een eigen gateway zodat we de inplementatie van de gateway ook kunenn toelichten.
Voor een eigen LoraWan gateway heeft u drie opties:
- Commerciële LoRaWAN-gateway
Voor een snelle start kun je een commerciële gateway aanschaffen. De gateway die wij gebruiken is de UG56-868M van Milesight; de adviesprijs is rond de €300. - Eigen gateway bouwen
Als je zelf een gateway wilt samenstellen, kun je dit voor ongeveer €126 doen met losse onderdelen. Hiervoor heb je het volgende nodig:- Raspberry Pi 3B (€43)
- Pi Supply IoT LoRa Gateway Hat (€31 – €37)
- SD-kaart (minimaal 8GB, Class 10, bij voorkeur industrieel, €35)
- SD-kaartlezer (op je laptop voor installatie)
- Voeding (minstens 2A, €11)
- Een ander alternatief is de RAK7243C Pilot Gateway (ongeveer €200), waarvoor je mogelijk ook dipole-antennes moet aanschaffen.
Zo kun je snel aan de slag met een LoRaWAN-gateway en optimaal gebruikmaken van The Things Stack.
Om een nieuwe applicatie en gateway te registreren in The Things Stack (TTS), volg je de onderstaande stappen:
Nieuwe Applicatie Aanmaken in The Things Stack
- Log in op je TTS-account.
- Ga naar het Dashboard
In het TTS-dashboard klik je op “Applications” in het menu. - Maak een nieuwe Applicatie
- Klik op de knop “Create application”.
- Vul de benodigde informatie in:
- Application ID: Een unieke ID voor de applicatie, gebruik kleine letters, cijfers en streepjes (-).
- Application name: Een herkenbare naam voor de applicatie.
- Description: Voeg een beschrijving toe (optioneel).
- Klik op “Create application” om de applicatie aan te maken.
- API-sleutels instellen (optioneel)
Voor communicatie met je applicatie, kun je API-sleutels toevoegen onder “API keys.” Dit kan nuttig zijn als je applicaties van derden wil verbinden met TTS.
Nieuwe Gateway Registreren in The Things Stack
- Navigeer naar Gateways
In het TTS-dashboard, klik op “Gateways” in het menu. - Maak een nieuwe Gateway aan
- Klik op “Create gateway”.
- Vul de vereiste informatie in:
- Gateway ID: Een unieke ID voor de gateway, bestaande uit kleine letters, cijfers, en streepjes.
- Gateway name: Een beschrijvende naam voor de gateway.
- Gateway EUI: Vul het unieke identificatienummer (EUI) van je gateway in. Dit vind je meestal op de gateway zelf of in de gateway-instellingen.
- Gateway Server Address: Vul het serveradres in waar je gateway verbinding mee maakt, bijvoorbeeld eu1.cloud.thethings.network (afhankelijk van je regio en TTS-omgeving).
- Locatiegegevens invullen (optioneel)
Om de dekking van je gateway op de kaart te zien, kun je de locatie van de gateway instellen:- Vul de coördinaten (breedte- en lengtegraad) van je gateway-locatie in.
- Configuratie opslaan
Klik op “Create gateway” om de gateway te registreren.
Let op de: EUI en de Gateway ID voer in als packet forwarder in uw Gateway CLI of Gui.
Controleer de Verbinding
Na het registreren van de applicatie en de gateway kun je testen of alles werkt:
- Zorg ervoor dat de gateway actief en verbonden is.
- Stuur testdata van je IoT-apparaten en controleer of deze in de applicatie verschijnt.
Maak een Sensor aan in TTS
Om een sensor (ook wel “end device” of “node” genoemd) aan te maken in The Things Stack (TTS), volg je deze stappen:
Ga naar de Applicatie
- Log in op je TTS-account.
- Open de Applicatie
In het TTS-dashboard, klik op “Applications” in het menu en selecteer de applicatie waarin je de sensor wilt toevoegen.
Maak een Nieuwe Sensor (End Device) aan
- Ga naar “End devices”
In het applicatiescherm, klik op “End devices”. Dit is de plaats waar je nieuwe sensoren of apparaten kunt toevoegen. - Voeg een Nieuw End Device toe
Klik op “Add end device” om een nieuwe sensor aan te maken. - Selecteer Configuratiemethode
Je hebt hier meestal een paar opties om het apparaat toe te voegen:- Met behulp van de LoRaWAN® Device Repository: Deze methode biedt automatische configuratie voor apparaten van ondersteunde fabrikanten.
- Manueel toevoegen: Kies deze optie als je apparaat niet in de repository staat of als je specifieke instellingen handmatig wilt invoeren.
- Vul de Vereiste Informatie in
Als je de sensor handmatig toevoegt, voer dan de volgende gegevens in:- End Device ID: Dit is een unieke naam voor de sensor (alleen kleine letters, cijfers, en streepjes).
- LoRaWAN® versie: Selecteer de versie die jouw apparaat ondersteunt, bijvoorbeeld LoRaWAN 1.0.2.
- Device EUI: Een unieke identificatiecode van de sensor (meestal 16 cijfers/letters).
- Application Key (AppKey): Een unieke sleutel die je apparaat identificeert bij het netwerk. Deze staat vaak vermeld in de documentatie van je apparaat.
- Application Session Key (AppSKey): Soms vereist bij specifieke apparaatinstellingen; deze sleutel versleutelt de data.
- Regionale Instellingen en Frequentieplan
Selecteer de regio en het frequentieplan dat past bij jouw locatie en netwerkconfiguratie. Dit is belangrijk voor een goede communicatie tussen de sensor en TTS. - Opslaan en klik op “Register end device” om de sensor toe te voegen aan je applicatie
7. Geneer de APPkey en bewaar de AppKey samen met de JoinEUI voor later.
Sluit u IoT hardware aan
Om de Arduino MKR WAN 1310 met de MKR GPS Shield als GPS-tracker te verbinden met The Things Stack (TTS), volg je de onderstaande stappen. Dit omvat het aansluiten van de hardware, het instellen van de software, en het configureren van de verbinding met TTS.
Benodigde Onderdelen
- Arduino MKR WAN 1310 (voor LoRaWAN-connectiviteit)
- MKR GPS Shield (voor GPS-data)
- Antenne voor de LoRaWAN-verbinding (aan te sluiten op de MKR WAN 1310)
- USB-kabel om de Arduino aan te sluiten op je computer voor programmering
- Lora-antennes
Sluit de Hardware aan
- Monteer het MKR GPS Shield op de Arduino MKR WAN 1310
Plaats het MKR GPS Shield voorzichtig op de pinnen van de MKR WAN 1310 zodat de pinnen correct zijn uitgelijnd en stevig vastzitten. - Verbind de Antenne
Sluit de LoRaWAN-antenne aan op de MKR WAN 1310. Dit is essentieel voor een goede LoRa-verbinding. - USB-Kabel
Sluit de Arduino MKR WAN 1310 met een USB-kabel aan op je computer. Deze kabel wordt gebruikt om de firmware te uploaden en om stroom aan de hardware te leveren.
Er staat wat code voor de MKR WAN 1300 op github samen met een andere GPS module die ik niet werkend kreeg met deze chips. Dus ik heb een eigen stukje code geschreven om het werkend te krijgen, maar laten we starten bij het begin.
Configureer het IoT device
Sluit u Arduino bord aan en verbind deze met de MKR-GPS shield via een I2C kabel.
Verbind het arduino bord via USB-C aan uw laptop zodat het deze kunt aansturen.
Download en installeer het programma Arduino IDE om later u bord mee te progammeren.
Nu je hardware en software klaar zijn, kun je de code uploaden om verbinding te maken met The Things Stack en de GPS-gegevens te gebruiken. U kunt daarvoor onderstaande code gebruiken die ik heb geschreven en publiekelijk beschikbaar is gesteld.
https://github.com/andystevenscodes/gps
Aanpassen van de Code:
- Voeg je AppEUI en AppKey toe: Vervang YOUR_APP_EUI en YOUR_APP_KEY door de gegevens die je in The Things Stack hebt opgehaald.
- Frequentieplan aanpassen: Zorg ervoor dat de frequentie-instelling (AS923 in het voorbeeld) past bij jouw regio.
Upload de Code naar de Arduino
- Selecteer het juiste board en poort
Ga naar Tools > Board en kies Arduino MKR WAN 1310. Selecteer vervolgens de juiste poort onder Tools > Port. - Upload de Code
Klik op Upload om de code naar je Arduino te sturen.
GPS tracking via The Things network (TTN)
Hieronder ziet u mijn complete GPS tracker met onderin de GPS module bovevin het Arduino bordje en rechts de LoRa antenne.
Configureer The Things Stack om Data te Ontvangen
- Open de applicatie in TTS waar je de sensor hebt geregistreerd.
- Controleer de inkomende data via het “Live data”-venster. Je zou de GPS-gegevens (lat, lon) elke minuut moeten zien binnenkomen, zoals ingesteld in de Arduino-code.
Test en verbeter:
- Controleer de Seriële Monitor: Open de seriële monitor in de Arduino IDE om de verzonden gegevens en eventuele foutmeldingen te bekijken.
- Pas de Intervals aan: Je kunt de delay() aanpassen om de verzendinterval te verhogen of verlagen, afhankelijk van je behoeften en de batterijduur.
Met deze stappen heb je de Arduino MKR WAN 1310 en MKR GPS Shield geconfigureerd als een GPS-tracker die verbinding maakt met The Things Stack!
Gateway dekking zichtbaar maken
Om de GPS-gegevens naar TTN Mapper te sturen en je dekking in kaart te brengen, doorloop je de volgende stappen.
Voeg een TTN Mapper Webhook toe in The Things Stack
- Log in op The Things Stack en ga naar je applicatie.
- Ga naar Integrations > Webhooks en selecteer TTN Mapper.
- Configureer de Webhook: Hoewel TTN Mapper geen specifieke configuratie vereist voor de gegevens, moet je de webhook toch toevoegen om de integratie te activeren. Het maakt niet uit welke details je invult bij het configureren, aangezien TTN Mapper alleen de gegevens uit de berichten zal gebruiken.
TTN Mapper kan alleen correct werken met gedecodeerde GPS-gegevens. Om dit te doen, moet je de GPS-data in een geschikt formaat verzenden:
Code aanpassen voor data encoding
Om ervoor te zorgen dat de data goed wordt gelezen, codeer je de GPS-gegevens als JSON-tekst. TTN Mapper verwacht een veld latitude, longitude, en altitude.
Zodra de gegevens gedecodeerd worden verzonden, kun je de GPS-coördinaten in real-time bekijken via de Live data-sectie van je applicatie in The Things Stack.
Dekking Inmeten
Nu je gegevens naar TTN Mapper kunt verzenden, is het tijd om je Arduino MKR WAN 1310 en GPS Shield in het veld te testen en dekking te meten.
- Schakel de Seriële Output uit in de code.
Omdat de Arduino wordt gevoed door een PowerBank, is het het beste om de seriële output uit te schakelen want de powerbank zal nooit reageren op de serial output en de code wacht daarop (kortom anders start je GPS niet).
Dit bespaart stroom en voorkomt dat je afhankelijk bent van je laptop.- In je code kun je de seriële output uitschakelen door de Serial.begin(9600); en Serial.print-lijnen te verwijderen of te commentariëren.
- Voed de Arduino met een PowerBank
Sluit de Arduino aan op een PowerBank (een 5V-uitgang is voldoende) en zorg dat deze stabiel blijft tijdens het bewegen. - Controleer Dekking op TTN Mapper
Ga vervolgens naar buiten en beweeg met de Arduino en GPS, zodat de gegevens naar TTN Mapper worden verzonden en je gateway-dekking in kaart wordt gebracht. - Bekijk de Kaart in TTN Mapper
Na enige tijd verschijnen de verzamelde gegevens op TTN Mapper en kun je je gateway-dekking zien op de kaart. Bezoek https://ttnmapper.org/heatmap/ om de dekking van je gateway te bekijken.
Wat kun u nu allemaal doen met de data?
Als u alles goed hebt ingesteld, heb u nu de beschikking over GPS-data die u kunt inzetten voor uiteenlopende toepassingen. Zo kun u bijvoorbeeld een GPS-tracker via Home Assistant koppelen door middel van een MQTT-integratie en The Things Stack (TTS). Op die manier krijg u real-time locatie-updates en zelfs gesproken meldingen over de locatie van de tracker. Ideaal voor het bijhouden van voertuigen, het monitoren van huisdieren, of het volgen van waardevolle bezittingen.
De mogelijkheden zijn eindeloos en kunnen specifiek worden aangepast aan jouw gebruikssituatie. Denk bijvoorbeeld aan een luchtvochtigheidsmeter die u in een stal plaatst om het klimaat te monitoren. Door de data over langere tijd bij te houden, krijg u inzicht in historische trends en patronen. Daarnaast kun u meldingen instellen die u waarschuwen wanneer de luchtvochtigheid een bepaalde drempelwaarde bereikt. Dit kan u helpen om op tijd maatregelen te nemen en het welzijn van de dieren te waarborgen.
prakijk test met locatie tracking GPS
Hieronder ziet u een aantal datapunten die vanaf de GPS naar TTN zijn verzonden. Ik bevond me op de snelweg en de data werd met een frequentie van één minuut verzonden, wat resulteerde in de onderstaande mapping. De gekleurde bolletjes geven de signaalsterkte aan, terwijl de blauwe TTN-logo’s de gateways representeren die gebruikt zijn om het GPS-signaal door te sturen.
Hoeveel LoraWan gateways zijn er dan?
U zult zich misschien afvragen hoeveel LoraWan gateway er zijn. Het overzicht hieronder geeft u een indruk van het aantal LoraWan gateways in Europa. Het getal in elk bolletje geeft het aantal gateways aan; hoe roder het bolletje, hoe hoger de dichtheid van gateways in dat gebied.
LoRaWan Integratie in andere systemen.
Via MQTT worden deze GPS coordinaten doorgeven aan mijn home assist. Zodat mijn vrouw weet waar ik ben ;). Hieronder ziet u de GPS coordinaten plotten op een map in Home Assist. GTD heb ik deze genoemd en staat voor GPS Tracking Device :).
GPS tracking
De use cases voor GPS tracking zijn eindeloos. Er zijn meer dan 100.000 gateways versprijd over de wereled. En als u daarbij het helium netwerk mee telt zelf miljoenen.
Denk bijvoorbeeld aan het volgens van een vrachtwagen of zelfs een schip?
Dit doen we al, zie afbeelding hieronder:
Alternatief voor Apple Airtag?
In tegenstelling tot normale GPS heeft Apple veiligheidsmaatregelen ingebouwd om ongewenst volgen met hun AirTag te voorkomen. Als een iPhone merkt dat er een onbekende AirTag al een tijdje met de eigenaar meebeweegt en die AirTag niet in de buurt is van zijn geregistreerde eigenaar, krijgt de iPhone-gebruiker een melding dat er een AirTag met hem of haar meereist. Hier zijn de belangrijkste details over deze functie:
- Melding op iPhone: Als je een iPhone hebt (iOS 14.5 of nieuwer) en er is een onbekende AirTag die met je meebeweegt, krijg je na een tijdje een melding met de waarschuwing “AirTag Found Moving With You.” Deze melding helpt je om op de hoogte te zijn van mogelijk ongewenst volgen.
- Geluidssignaal van de AirTag: Als een AirTag lange tijd gescheiden is van zijn eigenaar en toch met iemand anders beweegt, zal de AirTag na verloop van tijd een geluidssignaal afspelen. Dit gebeurt om iemand zonder iPhone ook bewust te maken van een onbekende AirTag in de buurt.
- Locatie-opties en informatie: In de melding kan de gebruiker meer informatie vinden over de AirTag, zoals hoe hij de AirTag fysiek kan vinden of kan uitschakelen. Als de persoon denkt dat het om ongewenst volgen gaat, kan hij of zij contact opnemen met de autoriteiten, die met behulp van het serienummer de eigenaar kunnen opsporen.
- Android-gebruikers: Voor Android-gebruikers heeft Apple de app “Tracker Detect” uitgebracht. Met deze app kunnen Android-gebruikers handmatig zoeken naar onbekende AirTags in de buurt, hoewel dit niet zo automatisch werkt als op de iPhone.