In dit lab sluiten we de GPS aan op de Arduino (Lora32u4) en bekijken we de tekst output van de GPS op het scherm. Hoe krijgt de GPS zijn locatie? Hoe communiceert deze het verder naar de Arduino, hoe vertaalt de Arduino dit weer naar zinvolle informatie?
Dit is een deel van de lessenseries en workshops voor het bouwen van de GPS tracker, waarbij alle beschrijvingen te vinden zijn op: https://junioriot.nl/leraren-support-lab-bouw-je-eigen-ttn-gps-tracker-met-de-arduino-lora32u4/
Met een GPS wordt het een tracker
We sluiten een GPS aan waardoor het device kan zien op welke locatie op aarde het zich bevindt. Hiermee wordt het een GPS tracker.
Het aansluitschema zie je ook op https://github.com/JuniorIOT/Junior-IOT-in-a-box-Project
De GPS module bepaalt de locatie op aarde aan de hand van de signalen die de satellieten uitzenden. Dit gaat het beste als de GPS de hemel kan zien, en vaak heeft het de eerste keer een half uur nodig voordat er voldoende informatie is ontvangen voor een goede plaatsbepaling.
We gebruiken een snoer waarvan de stekker op de GPS past. Het andere einde solderen we aan de Lora32u4. Om het netjes te kunnen solderen ga je eerst dit snoer vertinnen. Dit is ook meteen het voorbeeld hoe je de snoeren bij de andere sensors klaarmaakt.
GPS snoer vertinnen
Eerst gaan we de snoertjes vertinnen, omdat ze daarna veel makkelijker op de Lora32u4 gesoldeerd kunnen worden.
Voor elk snoertje haal je met de striptang, of heel voorzichtig met je nagels, of met een kniptang of een schaar een paar millimeter van het plastic af. Let op dat er niets verdwijnt van de koperen binnenkant, anders zal het snoertje later te makkelijk afbreken. De koperen draadjes hou je een beetje bij elkaar, en hou ze tegen de punt van je soldeerbout. Zodra de draadjes warm zijn hou je er een beetje soldeertin tegenaan, waardoor de tin makkelijk tussen de draadjes trekt.
Je ziet vaak nog een klungelig kloddertje tin hangen, en de uiteindjes blijven rafelig. Ook zie je dat het plastic soms ietsje krimpt. Dit komt allemaal goed, want je knipt nu met de schaar een stukje af, zodat er aan de draad nog maar een stukje van 2 of 3 millimeter overblijft. (Hoe groot is 3 millimeter eigenlijk?)
Doe dit voor alle draadjes.
GPS snoer aan de Lora32u4
Je hebt de snoertjes van de GPS stekker netjes vertint en ingekort tot 2 of 3 millimeter. Controleer of aan de stekker de kleuren inderdaad op deze volgorde zitten: zwart – wit – groen – rood.
Wit komt op poort 10 van de Lora32u4. Steek het draadje voorzichtig via de onderzijde door het gaatje en soldeer het vast.
Nu monteer je groen op poort 11.
Draai het werkje om.
Bij de volgende soldering gebruik je de pennen in 3V3 en GND. Als je de soldeerbout er te lang op houdt dan wordt de pen te warm en kunnen eerder gesoldeerde draden losraken. Om te zorgen dat solderen zo makkelijk mogelijk gaat moet je de pennen nu even helemaal vertinnen. Met de soldeerbout breng je een dun laagje tin aan over de hele lengte op beide pinnen, maar maak ze niet te warm.
Soldeer dan van de GPS stekker de rood op 3V3 en zwart op GND. zoals op de foto.
Terwijl er geen USB kabel is aangesloten, en ook geen batterij, zet je de GPS module op de stekker.
Bij het aansluiten van de USB-kabel let je goed op of er niet iets heel warm wordt, mocht dat het geval zijn dan is er wellicht een draadje verwisseld.
Sluit nu de USB-kabel aan op de Lora32u4. Op de GPS module horen nu leds aan te gaan en te knipperen. Als dat niet zo is dan moet je de USB kabel losnemen, en alle GPS draadjes te controleren volgens het aansluitschema. Vooral zwart en groen moeten op de goede plek zitten.
GPS serial test in de Arduino omgeving
De GPS geeft de informatie over een seriële verbinding. Om te kijken welke seriële informatie er wordt verzonden gebruiken we het test programma C:\arduino_port\GitHub\Junior-IOT-in-a-box-Project\arduino_test_SoftwareSerialExample\arduino_test_SoftwareSerialExample.ino
Open dit programma. Rechtsboven in de programmeeromgeving zit een vierkante knop met een vergrootglas. Klik hierop om de serial monitor te openen. Stuur nu het programma naar je Lora32u4.
De serial monitor toont de informatie die van de GPS wordt ontvangen. In het begin zullen er minder getallen zijn en veel regels met voornamelijk komma’s, maar naarmate er meer satellieten worden herkend zien we meer getallen verschijnen.
Als er helemaal geen info op het scherm komt dat hebben we een probleem. Controleer of je de draden hebt gesoldeerd aan poort 10 en 11. Ik heb vaak gehad dat ik de draden op 10 en 11 heb omgewisseld.
Als er wel informatie is, maar je ziet meer komma’s dan echte getallen dan moet je wachten tot er meer satellieten worden gezien. Buiten met zicht op de hemel werkt het beste.
GPS test van locatie en tijd
Nadat de seriële monitor de GPS data kan laten zien, kunnen we de volgende test doen. Daarbij gebruiken we een library die het vertaalwerk voor ons doet van die getallen naar informatie die we zelf makkelijker begrijpen.
Omdat het geheugen van de Lora32u4 relatief klein is voor de dingen die wij ermee willen doen moeten we een beetje zuinig zijn. De library die we voor de GPS gebruiken kunnen we instellen zodat precies de informatie wordt opgehaald die we nodig hebben. Dat scheelt geheugenruimte en tijd. Het is wel belangrijk om te testen of alle functies doe we nodig hebben goed werken. Daarvoor is dit testprogramma.
Open het GPS testprogramma op C:\arduino_port\GitHub\Junior-IOT-in-a-box-Project\arduino_test_GPS. Open de serial monitor en stuur het test programma naar de Lora32u4.
Het eerste stukje in de serial monitor is een weergave van de informatie die van de GPS wordt ontvangen.
Vanaf drie seconden zal de software een poging doen om deze informatie te interpreteren. We zoeken de latitude, longitude, hoogte en hdop. In onderstaand voorbeeld kan je zien dat de library een aantal van deze waardes weet af te leiden. Bij Latitude en Longitude mag je de komma overigens 7 posities verschuiven. Het scheelt ons wat geheugen en rekenkracht door te werken met integers zonder komma.
Je ziet in het voorbeeld ook dat de satellieten informatie geven over de datum en de tijd. Elke seconde wordt er een bericht getoond, en het is geen toeval dat het knipperen op de GPS ook eens per seconde gebeurt.