{"id":7490,"date":"2021-12-08T20:02:33","date_gmt":"2021-12-08T19:02:33","guid":{"rendered":"https:\/\/www.picademie.nl\/?p=7490"},"modified":"2022-02-18T15:25:23","modified_gmt":"2022-02-18T14:25:23","slug":"gps-monitor","status":"publish","type":"post","link":"https:\/\/www.picademie.nl\/index.php\/2021\/12\/08\/gps-monitor\/","title":{"rendered":"GPS-monitor"},"content":{"rendered":"\n<p>In de tutorial &#8216;<span class=\"has-inline-color has-vivid-cyan-blue-color\">Bluetooth GPS module koppelen<\/span>&#8216; heb je kennis gemaakt hoe je een GPS ontvanger met de Raspberry Pi verbindt en hoe je via een COM-poort een connectie met de software kunt maken. Op basis van deze kennis leg ik in deze tutorial uit hoe je <strong>GPSMon <\/strong>en <strong>XGPS <\/strong>kunt gebruiken. <\/p>\n\n\n\n<p><strong>GPSMon<\/strong> is een monitor die pakketten bekijkt die van een GPS komen en deze samen met diagnostische informatie weergeeft. Gpsmon verschilt van een navigatieclient doordat het voornamelijk onbewerkte gegevens van de GPS dumpt, met alleen voldoende gegevens om controles tegen de verwachte output mogelijk te maken. Het gebruikt geen gpsd om pakketten te decoderen. <\/p>\n\n\n\n<p><strong>XGPS<\/strong> is een eenvoudige testclient voor GPSD met een X-interface. Het geeft de huidige GPS-positie\/tijd\/snelheidsinformatie weer en (voor GPS&#8217;en die de functie ondersteunen) de locaties van toegankelijke satellieten.<\/p>\n\n\n\n<p><strong>GPSD<\/strong> is een programma dat gegevens verzamelt van een GPS-ontvanger en de gegevens eventueel via een IP-netwerk levert aan mogelijk meerdere cli\u00ebnt toepassingen in een server-cli\u00ebnt toepassingsarchitectuur. GPSD kan worden uitgevoerd als een daemon om transparant te werken als een achtergrondtaak van de server. <\/p>\n\n\n\n<p><strong>Eerst nog dit!<\/strong><br>Voordat je deze tutorial gaat doen, raad ik aan eerst <a href=\"https:\/\/www.picademie.nl\/index.php\/2021\/12\/04\/bluetooth-gps-module-koppelen\/\">deze tutorial<\/a> te doen. Je leert hier de basis t.a.v. communicatiepoorten en je test de opstelling van de GPS-ontvanger. Weliswaar wordt hier een bluetooth ontvanger gebruikt, maar dat kan ook een andere interface zijn. Een pientere hobbyist doorziet hoe het werkt. Het helpt als je al wat met communicatiepoorten gewerkt hebt.<\/p>\n\n\n\n<p><strong>Let op!<\/strong> Om het eindresultaat, de X-interface te kunnen gebruiken heb je in deze tutorial een grafische interface nodig. Derhalve kun je geen gebruik maken van de SSH-client zoals <span class=\"has-inline-color has-vivid-cyan-blue-color\">PuTTY<\/span>. Je kunt gebruik maken van het beeldscherm dat rechtstreeks op de Pi aangesloten is, of je gebruikt <span class=\"has-inline-color has-vivid-cyan-blue-color\">VNC<\/span> om de Pi op afstand te bedienen.<\/p>\n\n\n\n<p>Installeer de volgende hulpprogramma&#8217;s: <\/p>\n\n\n\n<p><code><span class=\"has-inline-color has-vivid-cyan-blue-color\">sudo apt-get install gpsd gpsd-clients python-gps<\/span><\/code><\/p>\n\n\n\n<p>We gaan er van uit dat er een actieve verbinding met de GPS-ontvanger is. M.a.w. de poort waarover de communicatie verloopt is bekend. Omdat deze tutorial een vervolg is van de tutorial &#8216;<a href=\"https:\/\/www.picademie.nl\/index.php\/2021\/12\/04\/bluetooth-gps-module-koppelen\/\">Bluetooth GPS module koppelen<\/a>&#8216;, gebruiken we poort <span class=\"has-inline-color has-vivid-cyan-blue-color\">rfcomm1<\/span>.<\/p>\n\n\n\n<p>Om te de GPS-ontvanger straks te kunnen binden is het MAC-adres ervan nodig. <\/p>\n\n\n\n<p><strong>Host Controler Interface tool<\/strong> (HCItool)<br>Om een <strong><span class=\"has-inline-color has-vivid-cyan-blue-color\">Bluetooth <\/span><\/strong>device met een MAC-adres te detecteren kun je het standaard <a href=\"https:\/\/linux.die.net\/man\/1\/hcitool\">hcitool <\/a>gebruiken. Het hcitool wordt gebruikt om de verbindingen te configureren en een speciale commando&#8217;s naar apparaten devices te sturen. Je vindt de apparaten met het volgende commando:<\/p>\n\n\n\n<p><code><span class=\"has-inline-color has-vivid-cyan-blue-color\">hcitool scan<\/span><\/code><\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2021\/12\/image-9.png\" alt=\"\" class=\"wp-image-7385\" width=\"440\" height=\"116\" srcset=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2021\/12\/image-9.png 705w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2021\/12\/image-9-300x79.png 300w\" sizes=\"auto, (max-width: 440px) 100vw, 440px\" \/><figcaption>Mijn Bluetooth GPS ontvanger met <strong>BlueGPS BD93CD<\/strong>&nbsp;en MAC-adres<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Binding<\/strong><br>Bind de COM-poort met het MAC-adres van de GPS-ontvanger. In dit voorbeeld is het MAC-adres van de GPS-ontvanger <span class=\"has-inline-color has-vivid-cyan-blue-color\">00:02:C7:BD:93:CD<\/span>:&nbsp;<\/p>\n\n\n\n<p><code><span class=\"has-inline-color has-vivid-cyan-blue-color\">sudo rfcomm bind \/dev\/rfcomm1 00:02:C7:BD:93:CD<\/span><\/code><\/p>\n\n\n\n<p>Controleer of de poort voor Python beschikbaar is met:<\/p>\n\n\n\n<p><code><span class=\"has-inline-color has-vivid-cyan-blue-color\">python -m serial.tools.list_ports<\/span><\/code><\/p>\n\n\n\n<p>Als het goed is staat de COM-poort er nu bij als: <span class=\"has-inline-color has-vivid-cyan-blue-color\">\/dev\/rfcomm1<\/span><\/p>\n\n\n\n<p>Stop het gpsd-socket met:<\/p>\n\n\n\n<p><code><span class=\"has-inline-color has-vivid-cyan-blue-color\">sudo systemctl stop gpsd.socket<\/span><\/code><\/p>\n\n\n\n<p>Schakel het gpsd-socket uit met:<\/p>\n\n\n\n<p><code><span class=\"has-inline-color has-vivid-cyan-blue-color\">sudo systemctl disable gpsd.socket<\/span><\/code><\/p>\n\n\n\n<p>Open als super-user het bestand <span class=\"has-inline-color has-vivid-cyan-blue-color\">gpsd.socket<\/span> met de editor <\/p>\n\n\n\n<p><code><span class=\"has-inline-color has-vivid-cyan-blue-color\">sudo nano \/lib\/systemd\/system\/gpsd.socket<\/span><\/code><\/p>\n\n\n\n<p>Het bestand opent zich.<\/p>\n\n\n\n<p><span class=\"has-inline-color has-vivid-cyan-blue-color\">[Unit]<br>Description=GPS (Global Positioning System) Daemon Sockets<\/span><\/p>\n\n\n\n<p><span class=\"has-inline-color has-vivid-cyan-blue-color\">[Socket]<br>ListenStream=\/var\/run\/gpsd.sock<br>ListenStream=[::1]:2947<br>ListenStream=127.0.0.1:2947  <br>SocketMode=0600<\/span><\/p>\n\n\n\n<p><span class=\"has-inline-color has-vivid-cyan-blue-color\">[Install]<br>WantedBy=sockets.target<\/span><\/p>\n\n\n\n<p>Wijzig nu de regel : <span class=\"has-inline-color has-vivid-cyan-blue-color\">ListenStream=127.0.0.1:2947<\/span><\/p>\n\n\n\n<p>in : <span class=\"has-inline-color has-vivid-cyan-blue-color\">ListenStream=0.0.0.0:2947<\/span><\/p>\n\n\n\n<p>Sla het bestand op en sluit de editor.<\/p>\n\n\n\n<p>Sluit nu alle afhankelijkheden van gpsd met:<\/p>\n\n\n\n<p><span class=\"has-inline-color has-vivid-cyan-blue-color\"><code>sudo killall gpsd<\/code><\/span><\/p>\n\n\n\n<p><span class=\"has-inline-color has-black-color\">De juiste reactie die terug gekoppeld wordt is: <\/span><span class=\"has-inline-color has-vivid-cyan-blue-color\">gpsd: geen proces gevonden<\/span><\/p>\n\n\n\n<p>Start als super-user gpsd als volgt op:<\/p>\n\n\n\n<p><span class=\"has-inline-color has-vivid-cyan-blue-color\"><code>sudo gpsd \/dev\/rfcomm1 -F \/var\/run\/gpsd.sock<\/code><\/span><\/p>\n\n\n\n<p>Start de GPS-monitor:<\/p>\n\n\n\n<p><span class=\"has-inline-color has-vivid-cyan-blue-color\">gpsmon<\/span><\/p>\n\n\n\n<p>Als alles goed gegaan is verschijnt het volgende venster met de GPS informatie en je eigen locatie gegevens:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"643\" height=\"387\" src=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2021\/12\/image-23.png\" alt=\"\" class=\"wp-image-7541\" srcset=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2021\/12\/image-23.png 643w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2021\/12\/image-23-300x181.png 300w\" sizes=\"auto, (max-width: 643px) 100vw, 643px\" \/><figcaption>gpsmonitor<\/figcaption><\/figure>\n\n\n\n<p>Geef vervolgens het volgende commando om de grafische weergave van de ontvangen satellieten te tonen:<\/p>\n\n\n\n<p><code><span class=\"has-inline-color has-vivid-cyan-blue-color\">xgps<\/span><\/code><\/p>\n\n\n\n<p>Indien de: <span class=\"has-inline-color has-vivid-red-color\">TypeError: Couldn&#8217;t find conversion for foreign struct &#8216;cairo.Context.<\/span> zichtbaar is, installeer dan <span class=\"has-inline-color has-vivid-cyan-blue-color\">cairo <\/span>met:<\/p>\n\n\n\n<p><code><span class=\"has-inline-color has-vivid-cyan-blue-color\">sudo apt-get install python3-gi-cairo<\/span><\/code><\/p>\n\n\n\n<p>En geef opnieuw het commando:<\/p>\n\n\n\n<p><code><span class=\"has-inline-color has-vivid-cyan-blue-color\">xgps<\/span><\/code><\/p>\n\n\n\n<p>Als alles goed gegaan is, opent zich het <span class=\"has-inline-color has-vivid-cyan-blue-color\">xgps-venster<\/span>. Hierin zie je alle satellieten die voor de GPS-ontvanger zichtbaar zijn, ieder met zijn specifieke data.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"949\" height=\"733\" src=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2021\/12\/image-21.png\" alt=\"\" class=\"wp-image-7501\" srcset=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2021\/12\/image-21.png 949w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2021\/12\/image-21-300x232.png 300w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2021\/12\/image-21-768x593.png 768w\" sizes=\"auto, (max-width: 949px) 100vw, 949px\" \/><\/figure>\n\n\n\n<p>Wil je meer weten over de xgps-client? <a href=\"https:\/\/gpsd.gitlab.io\/gpsd\/xgps-sample.html\">Klik dan hier<\/a>.<\/p>\n\n\n\n<p> <\/p>\n\n\n\n<p> <\/p>\n\n\n\n<p><strong>USB GPS ontvanger<\/strong><br>Hierboven heb ik een Bluetooth GPS ontvanger als voorbeeld genomen, Maar ik begrijp heel goed dat er waarschijnlijk meer GPS ontvangers met een USB interface zijn. Daarom in het kort ook nog even de procedure voor de USB-variant.<\/p>\n\n\n\n<p> Laat alle USB apparaten zien met: <\/p>\n\n\n\n<p><code><span class=\"has-inline-color has-vivid-cyan-blue-color\">lsusb<\/span><\/code><\/p>\n\n\n\n<p>Bekijk met de volgende commando&#8217;s het device-overzicht en zoek welke poort jouw USB-apparaat gebruikt. Dit zou bijvoorbeeld <span class=\"has-inline-color has-vivid-cyan-blue-color\">ttyUSB0 <\/span>kunnen zijn. <\/p>\n\n\n\n<p><code><span class=\"has-inline-color has-vivid-cyan-blue-color\">cd \/dev\/<\/span><\/code><\/p>\n\n\n\n<p><code><span class=\"has-inline-color has-vivid-cyan-blue-color\">ls<\/span><\/code><\/p>\n\n\n\n<p>GPSD moet geinstalleerd worden, als je dit nog niet gedaan hebt met:<\/p>\n\n\n\n<p><code><span class=\"has-inline-color has-vivid-cyan-blue-color\">sudo apt-get install gpsd gpsd-clients python-gps<\/span><\/code><\/p>\n\n\n\n<p>Stop gpsd ter voorkoming van Pi invloed:<\/p>\n\n\n\n<p><span class=\"has-inline-color has-vivid-cyan-blue-color\"><code>sudo systemctl stop gpsd.socket<\/code><\/span><\/p>\n\n\n\n<p>en vervolgens:<\/p>\n\n\n\n<p><code><span class=\"has-inline-color has-vivid-cyan-blue-color\">sudo systemctl disable gpsd.socket<\/span><\/code><\/p>\n\n\n\n<p>Tot slot koppelen (binden) we gpsd handmatig met de USB GPS ontvanger:<\/p>\n\n\n\n<p><code><span class=\"has-inline-color has-vivid-cyan-blue-color\">sudo gpsd \/dev\/ttyUSB0 -F \/var\/run\/gpsd.sock<\/span><\/code><\/p>\n\n\n\n<p>De resultaten kun je laten zien met:<\/p>\n\n\n\n<p><code><span class=\"has-inline-color has-vivid-cyan-blue-color\">cgps -s<\/span><\/code><\/p>\n\n\n\n<p>Nu zou je de gpsmonitor moeten zien.<\/p>\n\n\n\n<p>Zodra ik in het bezit ben van een USB GPS ontvanger zal ik er een uitgebreide tutorial aan wijden.<\/p>\n\n\n\n<p><em>Have A Nice Day!<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>In de tutorial &#8216;Bluetooth GPS module koppelen&#8216; heb je kennis gemaakt hoe je een GPS ontvanger met de Raspberry Pi verbindt en hoe je via <a class=\"mh-excerpt-more\" href=\"https:\/\/www.picademie.nl\/index.php\/2021\/12\/08\/gps-monitor\/\" title=\"GPS-monitor\">[&#8230;]<\/a><\/p>\n<\/div>","protected":false},"author":1,"featured_media":7507,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[251,250,258,260,71,259,261,151,257],"class_list":["post-7490","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-bluetooth","tag-gps","tag-gpsmon","tag-ontvanger","tag-python","tag-satelliet","tag-skyview","tag-usb","tag-xgps"],"jetpack_featured_media_url":"https:\/\/www.picademie.nl\/wp-content\/uploads\/2021\/12\/SkyView.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/posts\/7490","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/comments?post=7490"}],"version-history":[{"count":0,"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/posts\/7490\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/media\/7507"}],"wp:attachment":[{"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/media?parent=7490"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/categories?post=7490"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/tags?post=7490"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}