RPIGPS Bookworm: Porovnání verzí
(→Nastaveni PPS) |
(→Úvod) |
||
(Není zobrazeno 34 mezilehlých verzí od stejného uživatele.) | |||
Řádka 3: | Řádka 3: | ||
Po vytvoření image si nastavíme obvyklé rozhraní. Pozor, prvni odstavec je fakt jen pro mne ... | Po vytvoření image si nastavíme obvyklé rozhraní. Pozor, prvni odstavec je fakt jen pro mne ... | ||
sudo su root | sudo su root | ||
− | apt install -y mc | + | |
+ | apt update && apt install -y mc | ||
cd /root | cd /root | ||
sed -i 's/#alias ll=/alias ll=/' .bashrc | sed -i 's/#alias ll=/alias ll=/' .bashrc | ||
Řádka 13: | Řádka 14: | ||
exit | exit | ||
Následně provedeme upgrade celé distribuce: | Následně provedeme upgrade celé distribuce: | ||
− | sudo apt-get update && sudo apt-get | + | sudo apt-get update && sudo apt-get upgrade -y |
− | sudo apt-get upgrade -y && sudo apt autoremove -y | + | sudo apt-get dist-upgrade -y && sudo apt autoremove -y |
sudo rpi-update | sudo rpi-update | ||
+ | |||
== Nastavení COM == | == Nastavení COM == | ||
Pokud budeme GPS přijímač připojovat přes sériové rozhraní Raspberry (nikoliv přes USB), je potřeba z něj odpojit konzoli a nechat aktivoní sériový port. To provedeme pomocí konfiguraččního nástroje pro Raspberry. | Pokud budeme GPS přijímač připojovat přes sériové rozhraní Raspberry (nikoliv přes USB), je potřeba z něj odpojit konzoli a nechat aktivoní sériový port. To provedeme pomocí konfiguraččního nástroje pro Raspberry. | ||
Řádka 29: | Řádka 31: | ||
== Nastaveni PPS == | == Nastaveni PPS == | ||
Pro funkci PPS musíme vyčlenít jeden pin GPIO, | Pro funkci PPS musíme vyčlenít jeden pin GPIO, | ||
+ | sudo bash -c "echo '# Set PPS on GPIN' >> /boot/firmware/config.txt" | ||
sudo bash -c "echo 'dtoverlay=pps-gpio,gpiopin=4' >> /boot/firmware/config.txt" | sudo bash -c "echo 'dtoverlay=pps-gpio,gpiopin=4' >> /boot/firmware/config.txt" | ||
a přidat modul pps. | a přidat modul pps. | ||
sudo bash -c "echo 'pps-gpio' >> /etc/modules" | sudo bash -c "echo 'pps-gpio' >> /etc/modules" | ||
+ | Pro aplikování opět provést restart. | ||
== Zapojení == | == Zapojení == | ||
Řádka 56: | Řádka 60: | ||
sudo nano /etc/default/gpsd | sudo nano /etc/default/gpsd | ||
− | DEVICES="/dev/serial0" | + | DEVICES="/dev/serial0 /dev/pps0" |
GPSD_OPTIONS="-n" | GPSD_OPTIONS="-n" | ||
USBAUTO="false" | USBAUTO="false" | ||
Řádka 66: | Řádka 70: | ||
* gpsmon | * gpsmon | ||
* cgps -s | * cgps -s | ||
− | * ntpshmmon | + | * sudo ntpshmmon |
+ | |||
== Ověření PPS == | == Ověření PPS == | ||
+ | Prvně ověříme, že je modul PPS načtem | ||
+ | lsmod | grep pps | ||
+ | Měli by jsme dotat následující (obdobnou) informaci: | ||
+ | pps_gpio 16384 0 | ||
+ | |||
K ověření pulzů PPS můžeme použít: | K ověření pulzů PPS můžeme použít: | ||
sudo ppstest /dev/pps0 | sudo ppstest /dev/pps0 | ||
Řádka 80: | Řádka 90: | ||
Poznámka: V případě že GPS přijímač je připojen přes seriové rozhraní, tak pro PPS signál se využívá jeden z pinů DCD, RI a DSR. | Poznámka: V případě že GPS přijímač je připojen přes seriové rozhraní, tak pro PPS signál se využívá jeden z pinů DCD, RI a DSR. | ||
+ | == Web zobrazení == | ||
+ | Součástí gpsd je i php skript, který umožní zobrazení zachycených družic přes web rozhraní. V případě zájmu o toto zobrazení je potřeba doinstalovat web server z PHP. | ||
+ | sudo apt install -y lighttpd php-cgi php-gd php-bcmath | ||
+ | |||
+ | sudo lighty-enable-mod fastcgi | ||
+ | sudo lighty-enable-mod fastcgi-php | ||
+ | |||
+ | sudo service lighttpd force-reload | ||
+ | |||
+ | Následně z adresáře /usr/share/doc/gpsd-clients/examples překopírujeme soubor gpsd.php do adresáře /var/www/html. Při prvním spuštění gpsd.php se vytváří konfigurační soubor. Proto je potřeba alespoň dočasně povolit do adresáře zápis. | ||
+ | sudo cp /usr/share/doc/gpsd-clients/examples/gpsd.php /var/www/html | ||
+ | |||
+ | Někdy se stane, že po instalaci skript je zkompromován. Pak je jej rozbalíme příkazem "gzip -d gpsd.php.gz". | ||
+ | sudo cp /usr/share/doc/gpsd-clients/examples/gpsd.php.gz /var/www/html | ||
+ | cd /var/www/html | ||
+ | sudo gzip -d gpsd.php.gz | ||
+ | |||
+ | Pred prvním zpuštěním vytvoříme symlink a nastavíme práva, aby se mohl zapsat konfiguracni soubor | ||
+ | cd /var/www/html | ||
+ | sudo ln -s gpsd.php index.php | ||
+ | sudo chmod 777 ../html | ||
+ | |||
+ | Následně si zobrazime web stránku přes http://<IP_adresa/DNS_nazev gps serveru>. Poté vrátíme práva aby do adresáře nemohl kde kdo zapisovat | ||
+ | sudo chmod 755 ../html | ||
+ | |||
+ | Jestě překlad popisu v souboru gpsd.php (cca řádek 611): | ||
+ | <nowiki> | ||
+ | <p class="caption"> | ||
+ | <u>Plný objeket</u> - data ze satelitu byli použity pro synchronizaci<br> | ||
+ | <u>Odstup signál od šumu v dBHz</u>: | ||
+ | <span style="color:green;">Zelená=nejlepší</span>, | ||
+ | <span style="color:#c7a317;">žlutá=dobrý</span>, | ||
+ | <span style="color:#dc322f">rudá=nejhorší</span><br> | ||
+ | <i>Kruh</i> - satelity z GPS a QZSS<br> | ||
+ | <i>Kosočtverec</i> - satelity s rozšířením (SBAS, WAAS atd.)<br> | ||
+ | <i>Trojúhelník směrující nahoru</i> - satelity Galileo<br> | ||
+ | <i>Trojúhelník směrující dolů</i> - satelity BeiDou<br> | ||
+ | <i>Čtverec</i> - satelity GLONASS<br> | ||
+ | </p></nowiki> | ||
+ | |||
+ | A ve vytvořeném konfig souboru gpsd_config.inc: | ||
+ | $blurb = <<<EOT | ||
+ | <nowiki> <center> | ||
+ | Jedná se o <a href="https://gpsd.io/">gps</a>/<a href="https://www.ntp.org/">ntp</a> server <blink>v síti SlapNet.cz</blink>. | ||
+ | Je postaven na <blink>Raspberry pi</blink> z GSM přijímačem. | ||
+ | Tento server spravuje <a href="mailto://tydyt@tydyt.cz">Tydyt</a>.<br/> | ||
+ | </center></nowiki> | ||
+ | EOT; | ||
+ | |||
+ | Pokud chceme, aby se stránka z daty obnovovala, tak nastavíme autorefresh. Můžeme také nastavit zobrazeni mapy z polohou přijímače. | ||
+ | $autorefresh = 15; | ||
+ | |||
+ | == NTP / Chrony == | ||
+ | Pro postup instalce vlastního NTP server jsem zvolil samostatné stránky, pro lepší přehlednost. Na výběr je ze dvou SW, ale mějmě na paměti, že může být vždy nainstalován jen jeden. | ||
+ | * [[NTP_server]] | ||
+ | * [[Chrony]] | ||
+ | == Odkazy == | ||
+ | * [[RPIGPS | Původní návod GPS & NTP server]] | ||
+ | * [[NTP_server | Instalace NTP serveru]] | ||
+ | * [[Chrony | Instalace Chrony]] | ||
+ | * [[Zabbix | Instalace Zabbix serveru a klientu ]] | ||
+ | * [[Raspberry#Projekty | Zpět na projekty Raspberry Pi]] |
Aktuální verze z 29. 3. 2024, 18:05
Nová verze Raspberry a Debianu přináší také jiný způsob instalace.
Obsah
Úvod
Po vytvoření image si nastavíme obvyklé rozhraní. Pozor, prvni odstavec je fakt jen pro mne ...
sudo su root apt update && apt install -y mc cd /root sed -i 's/#alias ll=/alias ll=/' .bashrc sed -i 's/#alias la=/alias la=/' .bashrc cd /home/tydyt sed -i 's/#alias ll=/alias ll=/' .bashrc sed -i 's/#alias la=/alias la=/' .bashrc sed -i 's/#force_color_prompt=yes/force_color_prompt=yes/' .bashrc exit
Následně provedeme upgrade celé distribuce:
sudo apt-get update && sudo apt-get upgrade -y sudo apt-get dist-upgrade -y && sudo apt autoremove -y sudo rpi-update
Nastavení COM
Pokud budeme GPS přijímač připojovat přes sériové rozhraní Raspberry (nikoliv přes USB), je potřeba z něj odpojit konzoli a nechat aktivoní sériový port. To provedeme pomocí konfiguraččního nástroje pro Raspberry.
sudo raspi-config
Následné volíme:
3 Interface Options Configure connections to peripherals I5 Serial Port Enable/disable shell messages on the serial connection Would you like a login shell to be accessible over serial? <No> Would you like the serial port hardware to be enabled? <Yes>
Nakonec provedeme reboot, aby se změna nastavení sériového portu projevila.
Nastaveni PPS
Pro funkci PPS musíme vyčlenít jeden pin GPIO,
sudo bash -c "echo '# Set PPS on GPIN' >> /boot/firmware/config.txt" sudo bash -c "echo 'dtoverlay=pps-gpio,gpiopin=4' >> /boot/firmware/config.txt"
a přidat modul pps.
sudo bash -c "echo 'pps-gpio' >> /etc/modules"
Pro aplikování opět provést restart.
Zapojení
Ověření GPS
Před pokračováním je dobré se přesvědčit že modul GPS má dostatek dat ze satelitů a že je komunikace přes sériový port v pořádku. U některých modelů je dostatek dat signalizován led "Fix" na modulu:
- Bliká v intervalu 1s - No Fix (nedostatek dat)
- Blikne jednou za 10s - OK Fix
Je možné,že bude nutné přijímač GPS dát blíže k oknu, nebo připojit externí anténu. Pak můžeme pokračovat v ověření "surových" dat z přijímače přímo ze sériového portu:
cat /dev/serial0
Následně by se nám měli zobrazit "surová" data, například
$GPGGA,193338.000,4909.7635,N,01643.8563,E,1,10,0.87,221.4,M,43.4,M,,*6C $GPGSA,A,3,03,11,31,22,01,17,09,14,06,23,,,1.57,0.87,1.30*01 $GPRMC,193338.000,A,4909.7635,N,01643.8563,E,0.21,357.98,220717,,,A*64 $GPZDA,193338.000,22,07,2017,,*56 $GPGGA,193339.000,4909.7635,N,01643.8563,E,1,10,0.87,221.4,M,43.4,M,,*6D $GPGSA,A,3,03,11,31,22,01,17,09,14,06,23,,,1.57,0.87,1.30*01 $GPRMC,193339.000,A,4909.7635,N,01643.8563,E,0.11,57.42,220717,,,A*52
Pokud tomu tak je, můžeme pokračovat ....
Instalace GPS a PPS
Nainstalujeme vlastní ovladače pro GPS a PPS.
sudo apt-get install -y gpsd gpsd-clients pps-tools
Následně otevřeme konfigurační soubor /etc/default/gpsd kde nastavíme parametry
sudo nano /etc/default/gpsd
DEVICES="/dev/serial0 /dev/pps0" GPSD_OPTIONS="-n" USBAUTO="false"
Poté restartujeme službu, aby se změny projevily.
sudo systemctl restart gpsd.service
Ověření gpsd
Ověření funkčnosti GPS je možné použít několik pomocných programů které jsou součástí předchozí instalace. Například:
- gpsmon
- cgps -s
- sudo ntpshmmon
Ověření PPS
Prvně ověříme, že je modul PPS načtem
lsmod | grep pps
Měli by jsme dotat následující (obdobnou) informaci:
pps_gpio 16384 0
K ověření pulzů PPS můžeme použít:
sudo ppstest /dev/pps0
Následně by jsme měli získat podobný výpis
trying PPS source "/dev/pps0" found PPS source "/dev/pps0" ok, found 1 source(s), now start fetching data... source 0 - assert 1504898420.000395033, sequence: 2859 - clear 0.000000000, sequence: 0 source 0 - assert 1504898421.000394391, sequence: 2860 - clear 0.000000000, sequence: 0 source 0 - assert 1504898422.000394114, sequence: 2861 - clear 0.000000000, sequence: 0
Pokud by se zobrazil výpis " time_pps_fetch() error -1 (Connection timed out) " tak PPS pulzy nejsou na daném rozhraní k dispozici.
Poznámka: V případě že GPS přijímač je připojen přes seriové rozhraní, tak pro PPS signál se využívá jeden z pinů DCD, RI a DSR.
Web zobrazení
Součástí gpsd je i php skript, který umožní zobrazení zachycených družic přes web rozhraní. V případě zájmu o toto zobrazení je potřeba doinstalovat web server z PHP.
sudo apt install -y lighttpd php-cgi php-gd php-bcmath sudo lighty-enable-mod fastcgi sudo lighty-enable-mod fastcgi-php sudo service lighttpd force-reload
Následně z adresáře /usr/share/doc/gpsd-clients/examples překopírujeme soubor gpsd.php do adresáře /var/www/html. Při prvním spuštění gpsd.php se vytváří konfigurační soubor. Proto je potřeba alespoň dočasně povolit do adresáře zápis.
sudo cp /usr/share/doc/gpsd-clients/examples/gpsd.php /var/www/html
Někdy se stane, že po instalaci skript je zkompromován. Pak je jej rozbalíme příkazem "gzip -d gpsd.php.gz".
sudo cp /usr/share/doc/gpsd-clients/examples/gpsd.php.gz /var/www/html cd /var/www/html sudo gzip -d gpsd.php.gz
Pred prvním zpuštěním vytvoříme symlink a nastavíme práva, aby se mohl zapsat konfiguracni soubor
cd /var/www/html sudo ln -s gpsd.php index.php sudo chmod 777 ../html
Následně si zobrazime web stránku přes http://<IP_adresa/DNS_nazev gps serveru>. Poté vrátíme práva aby do adresáře nemohl kde kdo zapisovat
sudo chmod 755 ../html
Jestě překlad popisu v souboru gpsd.php (cca řádek 611):
<p class="caption"> <u>Plný objeket</u> - data ze satelitu byli použity pro synchronizaci<br> <u>Odstup signál od šumu v dBHz</u>: <span style="color:green;">Zelená=nejlepší</span>, <span style="color:#c7a317;">žlutá=dobrý</span>, <span style="color:#dc322f">rudá=nejhorší</span><br> <i>Kruh</i> - satelity z GPS a QZSS<br> <i>Kosočtverec</i> - satelity s rozšířením (SBAS, WAAS atd.)<br> <i>Trojúhelník směrující nahoru</i> - satelity Galileo<br> <i>Trojúhelník směrující dolů</i> - satelity BeiDou<br> <i>Čtverec</i> - satelity GLONASS<br> </p>
A ve vytvořeném konfig souboru gpsd_config.inc:
$blurb = <<<EOT <center> Jedná se o <a href="https://gpsd.io/">gps</a>/<a href="https://www.ntp.org/">ntp</a> server <blink>v síti SlapNet.cz</blink>. Je postaven na <blink>Raspberry pi</blink> z GSM přijímačem. Tento server spravuje <a href="mailto://tydyt@tydyt.cz">Tydyt</a>.<br/> </center> EOT;
Pokud chceme, aby se stránka z daty obnovovala, tak nastavíme autorefresh. Můžeme také nastavit zobrazeni mapy z polohou přijímače.
$autorefresh = 15;
NTP / Chrony
Pro postup instalce vlastního NTP server jsem zvolil samostatné stránky, pro lepší přehlednost. Na výběr je ze dvou SW, ale mějmě na paměti, že může být vždy nainstalován jen jeden.