Rasbpberry Pi 3B+, Pi Camera, USB GPS/Glonass
Archiv > Raspberry 3 B+
Implementace GPS do systému

GPS fleška jako GPS logger
Logování trasy pomocí USB GPS flešky lze řešit jednoduše a elegantně pomocí systémových prostředků.
gpspipe -r -d -l -o /home/pi/`date +"%Y%m%d-%H-%M-%S"`.nmea
Na webu jsem našel návod na využití "gpspipe" služby. Její pomocí necháme zaznamenávat pozici do souboru v NMEA formátu, který lze následně pod Windows zpracovat v GPS Track Editoru. Službu spustíme příkazem:
gpspipe -r -d -l -o /home/pi/`date +"%Y%m%d-%H-%M-%S"`.nmea
-r = výstup do NMEA protokolu
-d = služba běží na pozadí
-l = pozastaví službu na 10 sec, než se připojí k gpsd službě
-o = výstup do souboru
%Y%m%d-%H-%M-%S = prefix názvu souboru s datem
Aby se služba spustila okamžitě po startu (restartu Raspi), musíme upravit soubor "rc.local". Do terminálu zadáme
sudo nano /etc/rc.local
Otevře se nám editor a do souboru na jeho konec, avšak před "exit 0", vepíšeme:
gpspipe -r -d -l -o /home/pi/`date +"%Y%m%d-%H-%M-%S"`.nmea
Soubor zapíšeme pomoc "Ctrl-O" a kombinací kláves "Ctrl-X" editor opustíme. Od této chvíle, kdykoliv Raspi spustíme, se do adresáře "/home/pi/" začne zapisovat soubor s daty.
Služba loguje v intervalu 1 sec.
Samozřejmě, že cestu zápisu můžeme přesměrovat. Například "/home/media/pi/USB disk/"
("USB disk" je třeba nahradit jménem našeho disku).
Jestliže zapisujeme data na externí disk, může se stát, že se služba spustí dřív, než se externí disk připojí k systému (mountne). Pak celá služba "zkolabuje" a data nezapisuje. Nepomůže ani restart. V tom případě musíme službu, resp. její start pozdržet, aby se disk stačil mountnout. Toho docílíme tak, že před vlastní příkaz v rc.local přídame povel sleep:
sleep 15 && gpspipe -r -d -l -o /home/pi/`date +"%Y%m%d-%H-%M-%S"`.nmea
Tím docílíme, že služba čeká 15 sekund. Může být, že bude třeba časový interval prodloužit až na 45 sekund.
Získaný NMEA soubor můžeme později použít k fototaggingu a podobně. Zpracovat se dá například v PC programu GPS Track editor.