KPN LoRa om Van Raam fietsen te traceren

  • 3 February 2017
  • 2 reacties
  • 4770 keer bekeken

Reputatie 2
Badge
Door een KPN medewerker is mij gevraagd iets te schrijven over mijn afstudeerproject, omdat KPN mensen bewust wil maken van de mogelijke toepassingen van LoRa. Met de opdracht rond ik de studie Technische Informatica af aan de Hogeschool van Arnhem en Nijmegen.


Het project is uitgevoerd bij Van Raam in Varsseveld. Van Raam kan meer dan 20 verschillende modellen aangepaste fietsen maken. Bijvoorbeeld een lage instapfiets of een driewielfiets. Deze fietsen zijn bedoeld voor mensen met een lichamelijke beperking of voor mensen die meer zekerheid en stabiliteit zoeken bij het fietsen. Het project is uitgevoerd omdat binnen Van Raam de behoefte is ontstaan om de locatie van gefabriceerde fietsen te kunnen monitoren. Het achterliggende probleem is: de Van Raam fietslocaties zijn onbekend. Het gebeurt weleens dat een Van Raam fiets gestolen wordt of dat de eigenaar de fiets niet terug kan vinden. Ten gevolge hiervan is het voor een particulier of bedrijf duur wanneer een Van Raam fiets vervangen moet worden. Van Raam wil met dit project bereiken dat de locatie van een Van Raam fiets periodiek bekend is. Met periodiek wordt bedoeld dat niet op elk willekeurig moment de exacte Van Raam fietslocatie bekend is maar bijvoorbeeld elk halfuur of uur. Van Raam wil ten tweede met dit project bereiken dat de locatie van een vermiste Van Raam fiets makkelijk opgezocht kan worden.

Tijdens het project is eerst uitgezocht welke Low Power Wide Area Network technologie geschikt is om de Van Raam fietslocatie te verzenden. SigFox, LoRa(WAN), Ingenu RPMA, Telensa, Weightless-W/-N/-P, Dash7, IEEE 802.15.4k, IEEE 802.15.4g en nog vele andere technologieën zijn onderzocht. Na het onderzoek is gekozen voor LoRa omdat KPN in Nederland een dekkend LoRa netwerk heeft gerealiseerd. Na het onderzoek is een GPS tracker prototype ontwikkeld. Voor de GPS tracker is een functioneel en technisch ontwerp gemaakt met onder andere UML-diagrammen. Het functioneel ontwerp bevat de wensen en eisen voor het systeem. De technische implementatie is gedetailleerd weergegeven in het technisch ontwerp. Op basis van het technisch ontwerp is C++ code geprogrammeerd.

De GPS tracker heeft een debug mode en een release mode gekregen. De debug mode zorgt ervoor dat constant gemonitord kan worden wat het GPS tracker apparaat aan het doen is, vooral handig wanneer ongewenst gedrag zich voordoet.

De release mode bevat dezelfde functionaliteit als de debug mode maar is volledig gericht op energiebesparing, omdat het apparaat lang op een batterij moet kunnen werken. Om de GPS tracker te realiseren is het SODAQ ONE platform gebruikt. De SODAQ ONE is uitermate geschikt als GPS tracker omdat deze een ingebouwde LoRa radio en GPS module heeft. Het prototype verzendt de Van Raam fietslocatie via het KPN LoRa netwerk. Bij de realisatie van de GPS tracker is eerst de uplink functionaliteit geïmplementeerd, dit is later uitgebreid met downlink. Wanneer het uplink gedeelte eenmaal werkt is het peanuts om downlink werkend te krijgen.

Als laatst is een applicatie gemaakt die de fietslocaties toont. De applicatie is gemaakt met Visual Studio op basis van de Windows Presentation Foundation (WPF). De software architectuur van de applicatie is gebaseerd op het MVVM (Model View ViewModel) pattern. De applicatie heeft een weergave met alle apparaten en een apparaat specifieke weergave. Hieronder is een voorbeeld van de apparaat specifieke weergave getoond.


Het onderstaande UML deployment diagram laat zien hoe de oplossing er technisch uitziet. Het deployment diagram laat de interacties tussen de verschillende onderdelen van het systeem zien. De interacties zijn gekleurd om makkelijk onderscheid te maken. Onder het diagram zijn de interacties uitgelegd.

Het verkrijgen van een GPS locatie op de GPS tracker. De SODAQ ONE bevat een UBlox GPS module die via TWI/I2C communiceert.
Met de GPS tracker de verkregen locatie via het KPN LoRa netwerk verzenden. De LoRa module van de SODAQ ONE (Microchip RN2483) kan aangestuurd worden door commando’s naar de UART (seriële bus) te schrijven.
Het opslaan van de locatie middels een HTTP Post. De KPN LoRa backend forward de data van het verzonden LoRa bericht middels een HTTP Post naar een opgegeven URL. De forwarded HTTP Posts zijn ontvangen op een Development API en weggeschreven naar een SQL database.
Met de beheerapplicatie de opgeslagen locaties ophalen middels een HTTP Get request. De HTTP Get request wordt van de Beheerapplicatie naar de Development API gestuurd. De Development API stuurt een HTTP bericht met JSON data terug.
Om de configuratie van de GPS tracker aan te kunnen passen kan vanuit de Beheerapplicatie een LoRa downlink bericht aangemaakt worden middels een HTTP Post naar de KPN LoRa backend.
De KPN LoRa backend antwoordt met een LoRa downlink bericht wanneer een LoRa uplink bericht van het corresponderende apparaat wordt ontvangen. Op basis van de inhoud van het LoRa downlink bericht wordt de zendfrequentie aangepast, zoals te zien in onderstaande afbeelding.

In onderstaande afbeelding is te zien hoe de zend frequentie van de GPS tracker verandert na een downlink bericht.

Lessons learned:
  • Er zijn regels voor vergunningsvrije radiotoepassingen. LoRa is niet gemaakt om constant data te verzenden. Bovendien mag dit ook niet op het frequentiespectrum waar deze technologie zijn werk doet.
  • LoRa is een mooie en stabiele Low Power Wide Area Network technologie waarmee mooie oplossingen voor het Internet of Things gemaakt (kunnen) worden.
  • LoRa radiogolven kunnen door dunne metalen objecten zenden.
  • GPS signalen zijn zwak. Een GPS antenne inbouwen in een fietsframe werkt niet.
  • De Microchip RN2483 is erg makkelijk om mee te werken in tegenstelling tot SX1272 gebaseerde LoRa modules als de Modtronix InAir9/9B.

Obstakels:
  • De beperkte mogelijkheden van de standaard Arduino IDE
  • Verzonden berichten die niet ontvangen worden door LoRa gateways. Spelen met de spreading factor doet wonderen, ligt dus niet aan het LoRa netwerk.
  • Het verkrijgen van een GPS locatie gaat niet werken wanneer je omringd bent door dikke muren. Goede reden om in de zomer buiten te gaan werken 🆒

Tips:
  • Gebruik Microsoft Visual Studio met de Visual Micro extensie voor de ontwikkeling van embedded systemen.
  • Gebruik Arduino Unit voor het testen van je embedded systeem.
  • Gebruik een Microchip RN2483 als je weinig ervaring hebt met LoRa.
  • Begin met een simpel project.
  • Begin altijd met de basis van wat het systeem moet doen. Breid dit later uit met extra functionaliteit.

Ik wil KPN hartelijk bedanken voor de goede test mogelijkheden van het KPN LoRa netwerk. Verder wens ik leden van het LoRa forum veel succes met hun (toekomstige) LoRa projecten. Mochten er vragen of suggesties zijn dan hoor ik het graag.

2 reacties

Reputatie 7
Badge +11
Hallo Timo, wat een tof project en geweldig om je verslag te lezen!
Goede tips en ervaringen voor developers. Van Raam is vast en zeker trots op de beheerapplicatie, zeer mooi resultaat, :D

Bedankt voor je waardevolle bijdrage op het LoRa Forum!
Reputatie 2
Badge
Bedankt Tim! Graag gedaan.

Reageer