(WS19-01)Wetterballon Installation: Unterschied zwischen den Versionen
(→Hut (Weatherballon Controller Board)) |
(→Installation: Bedienung im Überblick hinzugefügt) |
||
(7 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
= Installationsschritte = | = Installationsschritte = | ||
== Master (Raspberry Pi Zero) == | == Master (Raspberry Pi Zero) == | ||
− | Die Anleitung beschreibt diverse Schritte/Befehle die nur von einem debian-basierten System (z.B. Ubuntu) ausgeführt werden können. Für andere Systeme muss selbst nach entsprechenden Alternativen gesucht werden. Für SSH unter Windows kann z.B. PuTTY verwendet werden. | + | Die Anleitung beschreibt diverse Schritte/Befehle die nur von einem debian-basierten System (z.B. Ubuntu) ausgeführt werden können. Für andere Systeme muss selbst nach entsprechenden Alternativen gesucht werden. Für SSH unter Windows kann z.B. PuTTY verwendet werden. |
+ | |||
+ | === Hardware-Zusammenbau === | ||
+ | Vor Inbetriebnahme sind USB-Hub und HAT an den Pi Zero anzuschließen. Die RTC kommt zwischen Pi Zero und HAT. | ||
+ | |||
+ | Die Jumper auf dem HAT sind wie folgt zu setzen: | ||
+ | * Watchdog (JP1): GND (vorläufig zur Installation) | ||
+ | * I2C-Spannung (JP2): 3,3 V | ||
+ | * Stromversorgung (P7): Netzbetrieb -> offen, Batteriebetrieb -> geschlossen | ||
+ | |||
+ | Weitere Komponenten wie LEDs, I2C-Geräte, Kameras etc. sind nach Bedarf anzuschließen. | ||
=== Betriebssystem === | === Betriebssystem === | ||
Zeile 99: | Zeile 109: | ||
=== Software === | === Software === | ||
− | |||
==== Master (Flugcomputer) ==== | ==== Master (Flugcomputer) ==== | ||
Zeile 112: | Zeile 121: | ||
Wenn entsprechende SSH-Schlüssel sowohl auf Server als auch dem Pi eingerichtet über: | Wenn entsprechende SSH-Schlüssel sowohl auf Server als auch dem Pi eingerichtet über: | ||
<code>git clone ssh://git@gitlab.cs.hs-rm.de/amuel001/wetterballon.git</code> | <code>git clone ssh://git@gitlab.cs.hs-rm.de/amuel001/wetterballon.git</code> | ||
+ | |||
+ | Zielordner sollte mit <code>/home/pi/wetterballon/</code> übereinstimmen, ansonsten müssen die Pfade in den Systemd-Service-Dateien händisch angepasst werden. | ||
bcm-library installieren | bcm-library installieren | ||
Zeile 117: | Zeile 128: | ||
===== Autostart einrichten ===== | ===== Autostart einrichten ===== | ||
− | Der Autostart erfolgt mittels systemd | + | Der Autostart erfolgt mittels systemd Services: |
− | 1. | + | 1. Dateien <code>wetterballon/systemd-services/*.service</code> nach <code>/etc/systemd/system/*.service</code> kopieren. |
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | </ | ||
− | |||
− | 2. '''Aktivieren und Starten''' | + | 2. '''Aktivieren und Starten''' der Services mit: |
<pre> | <pre> | ||
systemctl daemon-reload | systemctl daemon-reload | ||
− | systemctl enable weatherballoon.service | + | systemctl enable weatherballoon.service watchpuppy.service |
− | systemctl start weatherballoon.service | + | systemctl start weatherballoon.service watchpuppy.service |
</pre> | </pre> | ||
− | Damit | + | Damit laufen der Flugcomputer "master" sowie der "Watchdog-Light" Watchpuppy im Hintergrund als Service und starten automatisch mit jedem Neustart. |
Service-'''Status überprüfen''' mit | Service-'''Status überprüfen''' mit | ||
<pre> | <pre> | ||
systemctl status weatherballoon.service | systemctl status weatherballoon.service | ||
+ | systemctl status watchpuppy.service | ||
</pre> | </pre> | ||
Service '''stoppen''' mit | Service '''stoppen''' mit | ||
<pre> | <pre> | ||
− | systemctl stop weatherballoon.service | + | systemctl stop weatherballoon.service watchpuppy.service |
</pre> | </pre> | ||
Zeile 167: | Zeile 170: | ||
Zur Verwendung ist darauf zu achten, dass der Pi nach dem Anschließen der Kamera neu gestartet werden muss. | Zur Verwendung ist darauf zu achten, dass der Pi nach dem Anschließen der Kamera neu gestartet werden muss. | ||
− | == | + | == Watchdog == |
− | + | Zum Scharfschalten des Watchdogs, den PI ausschalten und Jumper JP1 auf VCC umstecken. | |
+ | Mit dem nächsten Start erwartet der Watchdog einen regelmäßigen PIN-Wechsel, ansonsten wird die Batteriestromversorgung resetet. | ||
+ | |||
+ | == Bedienung im Überblick == | ||
+ | Verbindung: | ||
+ | <pre>ssh -t pi@wetterballon19.local 'cd /home/pi/wetterballon/master; exec "$SHELL"'</pre> | ||
+ | Verbindung mit direktem Ausführen eines weiteren Programms (hier vim): | ||
+ | <pre>ssh -t pi@wetterballon19.local 'cd /home/pi/wetterballon/master; vim -S Session.vim; exec "$SHELL"'</pre> | ||
+ | |||
+ | Service Steuerung: | ||
+ | <pre> | ||
+ | sudo systemctl status weatherballoon.service | ||
+ | sudo systemctl start weatherballoon.service | ||
+ | sudo systemctl stop weatherballoon.service | ||
+ | sudo systemctl enable weatherballoon.service | ||
+ | sudo systemctl disable weatherballoon.service | ||
+ | |||
+ | sudo systemctl status watchpuppy.service | ||
+ | sudo systemctl start watchpuppy.service | ||
+ | sudo systemctl stop watchpuppy.service | ||
+ | sudo systemctl enable watchpuppy.service | ||
+ | sudo systemctl disable watchpuppy.service | ||
− | + | sudo systemctl start watchpuppy.service weatherballoon.service | |
− | + | sudo systemctl stop watchpuppy.service weatherballoon.service | |
+ | |||
+ | sudo systemctl status pifacertc.service | ||
+ | </pre> | ||
+ | |||
+ | Bei Manipulation am Service-Code: | ||
+ | <pre> | ||
+ | sudo systemctl daemon-reload | ||
+ | </pre> | ||
+ | |||
+ | Download / Upload: | ||
+ | <pre> | ||
+ | scp pi@wetterballon19.local:wetterballon/master/vids/* Downloads/vids | ||
+ | scp Downloads/watchpuppy.service pi@wetterballon19.local:wetterballon/master/ | ||
+ | </pre> | ||
+ | |||
+ | Aufräumen: | ||
+ | <pre> | ||
+ | sudo rm *.csv vids/* imgs/* logs/* phase *.pers | ||
+ | </pre> | ||
+ | |||
+ | Status abfragen (Ausgabe im Logfile des Masters): | ||
+ | <pre> | ||
+ | ./status.sh | ||
+ | </pre> | ||
+ | |||
+ | Phase setzen: | ||
+ | <pre> | ||
+ | ./setphase.sh | ||
+ | </pre> | ||
= Externes GPS-Gerät = | = Externes GPS-Gerät = |
Aktuelle Version vom 18. März 2020, 19:40 Uhr
Inhaltsverzeichnis
- 1 Installationsschritte
- 2 Externes GPS-Gerät
- 3 LTE-Stick
Installationsschritte
Master (Raspberry Pi Zero)
Die Anleitung beschreibt diverse Schritte/Befehle die nur von einem debian-basierten System (z.B. Ubuntu) ausgeführt werden können. Für andere Systeme muss selbst nach entsprechenden Alternativen gesucht werden. Für SSH unter Windows kann z.B. PuTTY verwendet werden.
Hardware-Zusammenbau
Vor Inbetriebnahme sind USB-Hub und HAT an den Pi Zero anzuschließen. Die RTC kommt zwischen Pi Zero und HAT.
Die Jumper auf dem HAT sind wie folgt zu setzen:
- Watchdog (JP1): GND (vorläufig zur Installation)
- I2C-Spannung (JP2): 3,3 V
- Stromversorgung (P7): Netzbetrieb -> offen, Batteriebetrieb -> geschlossen
Weitere Komponenten wie LEDs, I2C-Geräte, Kameras etc. sind nach Bedarf anzuschließen.
Betriebssystem
Installation auf SD-Karte
Getestetes und verwendetes System: Raspbian Buster Lite (2020-02-13)
Installation auf SD-Karte prinzipiell nach Raspberry Pi Anleitung.
Folgenden Befehl zur Installation auf SD-Karte nur nach sorgfältigem Lesen der Erläuterungen verwenden. Bei unbedarfter Ausführung Datenverlust möglich!
sudo dd bs=4M if=2020-02-13-raspbian-buster-lite.img of=/dev/mmcblk0 conv=fsync status=progress
if: Input file. Das Image zur Installation.
of: Output file. Das Ziel-Device welches überschrieben wird. Unbedingt überprüfen und gegebenenfalls anpassen! Der Name kann u.a. über das Programm disks
ermittelt werden. Sämtliche Partitionen dieses Devices sollten ausgehängt und entfernt werden.
Nach Fertigstellung die Bootpartition der SD-Karte mounten und die nachfolgenden Schritte befolgen.
Login
Default-Login ist pi//raspberry
. Das Passwort sollte beim ersten Login mittles passwd pi
geändert werden.
Drahtloser Zugriff über WLAN und Hotspot
Einrichtung auf der SD-Card des Pis:
- Erstelle die Datei
/boot/wpa_supplicant.conf
. - Füge folgenden Inhalt ein (der zweite
network
-Block ist nur ein Beispiel für ein weiteres WLAN):
country=DE ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="wettspot" psk="<password>" key_mgmt=WPA-PSK priority=2 } network={ ssid="<heimnetz>" psk="<password2>" key_mgmt=WPA-PSK priority=1 }
Beim nächsten Boot wird diese Datei automatisch nach /etc/wpa_supplicant/wpa_supplicant.conf
verschoben und kann dort bei Bedarf angepasst werden. Der Pi verbindet sich automatisch mit dem Hotspot.
Es können beliebig weitere WLANs hinzugefügt werden, indem weitere network
-Blöcke passend abgeändert angehängt werden. Beispielsweise um sich im heimischen Umfeld komfortabel zu verbinden.
Sollte mit mehreren WLANs gearbeitet werden, kann mit priority
die Priorität festgelegt werden. Default ist 0, eine höhere Zahl beutet höhere Priorität. Auch bei bestehender Verbindung wechselt der Pi zum Netzwerk mit der höchsten Priorität. So kann dem Hotspot eine höhere Priorität zugewiesen werden, um auch im heimischen WLAN über den Hotspot arbeiten zu können.
Einrichtung des (Smartphone-)Hotspots und Laptops: Geräteabhängig, allerdings sollten alle Geräte selbstverständlich dieselbe SSID und dasselbe Passwort verwenden.
Verbindung über SSH
SSH Aktivierung
Erstelle eine Datei /boot/ssh
auf der SD-Card des Pi. Der Inhalt der Datei spielt keine Rolle.
Beim nächsten Boot wird die Datei automatisch entfernt und SSH aktiviert.
Hostname ändern (optional)
Um den Pi über einen eindeutigen(!) Namen und nicht nur seine üblicherweise veränderliche IP-Adresse ansprechen zu können, kann der Standard-Hostname raspberrypi
mit folgenden Schritten abgeändert werden: https://geek-university.com/raspberry-pi/change-raspberry-pis-hostname/
Zugriff über Hostname
Der Zugriff über den Hostnamen ist nur zuverlässig möglich, wenn wie oben beschrieben der Hostname auf einen eindeutigen Namen geändert wurde.
Working directory im Homeverzeichnis:
ssh pi@<hostname>.local
Working directory beliebig (um z.B. direkt im Projektordner zu starten):
ssh -t pi@<hostname>.local 'cd /path/to/any/folder; exec "$SHELL"'
Zugriff über IP-Adresse
IP-Adresse des Pis herausfinden, wenn Laptop und Pi mit dem Hotspot verbunden sind:
- Ermittle Netzadresse und Netzmaske des WLAN-Interfaces des Laptop mittels
ifconfig
oderip a
. - Scanne das Hotspot-Netz nach Adressen:
nmap -sn [Netzadresse]/[Netzmaske]
. Bsp.nmap -sn 192.168.68.0/24
.
Working directory im Homeverzeichnis:
ssh pi@<ip-address>
Working directory beliebig (um z.B. direkt im Projektordner zu starten):
ssh -t pi@<ip-address> 'cd /path/to/any/folder; exec "$SHELL"'
SSH-Schlüssel für (passwortlosen) Login
- Erstelle Schlüssel auf dem Gerät, mit dem sich verbunden werden soll, mit
ssh-keygen -t rsa -b 4096
, dabei ist der Name unwichtig, die Datei sollte allerdings am Ende im Ordner ~/.ssh liegen. Für passwortlosen Login muss die Passphrase leer sein. - Übertrage den öffentlichen Schlüssel auf den Pi mit
ssh-copy-id -i ~/path/to/keyfile.pub pi@<hostname.local/ip-address>
.
Systemkonfiguration auf dem Pi
Nach einem Neustart raspi-config
ausführen und:
- Passwort ändern
- Network Options -> Hostname ändern
- Localisation Options -> Locale ändern
- Interfacing Options -> Camera aktivieren
- Interfacing Options -> I2C aktivieren
- Interfacing Options -> Serial -> Shell deaktivieren, Serial aktivieren (für GPS)
- Advanced Options -> "Expand Filesystem"
Noch einmal Neustarten.
Software
Master (Flugcomputer)
- Apt aktualisieren: sudo apt update
- GitLab installieren
- automake installieren
- doxygen installieren
- wiringpi installieren
sudo apt install git automake doxygen wiringpi
Projekt klonen von HSRM GitLab Wetterballon.
Wenn entsprechende SSH-Schlüssel sowohl auf Server als auch dem Pi eingerichtet über:
git clone ssh://git@gitlab.cs.hs-rm.de/amuel001/wetterballon.git
Zielordner sollte mit /home/pi/wetterballon/
übereinstimmen, ansonsten müssen die Pfade in den Systemd-Service-Dateien händisch angepasst werden.
bcm-library installieren herunterladen, entpacken, ./configure; make; make install
Autostart einrichten
Der Autostart erfolgt mittels systemd Services:
1. Dateien wetterballon/systemd-services/*.service
nach /etc/systemd/system/*.service
kopieren.
2. Aktivieren und Starten der Services mit:
systemctl daemon-reload systemctl enable weatherballoon.service watchpuppy.service systemctl start weatherballoon.service watchpuppy.service
Damit laufen der Flugcomputer "master" sowie der "Watchdog-Light" Watchpuppy im Hintergrund als Service und starten automatisch mit jedem Neustart.
Service-Status überprüfen mit
systemctl status weatherballoon.service systemctl status watchpuppy.service
Service stoppen mit
systemctl stop weatherballoon.service watchpuppy.service
RTC (PiFace Shim RTC)
- Installiere i2c-tools
sudo apt-get install i2c-tools
- Befolge die Schritte "Installing the battery" und "Fitting on the Raspberry Pi" aus http://www.piface.org.uk/assets/piface_clock/PiFaceClockguide.pdf.
- Lade und installiere die gepatchte Version des Installers von hier: https://github.com/fschwarz19/PiFace-Real-Time-Clock/blob/patch-1/install-piface-real-time-clock.sh.
- Mit
sudo hwclock -r
sollte nun die RTC-Zeit ausgegeben werden können. Falls nicht hilftsudo systemctl status pifacertc.service
bei der Fehlersuche.
- Mit
- Falls keine Verbindung mit dem Internet besteht, setze mit
sudo date -s "14 JAN 2014 10:10:30"
die aktuelle Zeit. - Teste, ob die RTC richtig funktioniert:
- Trenne die Internetverbindung (ansonsten synchronisiert das System seine Zeit darüber und nicht über die RTC).
- Fahre den Pi herunter, trenne die Stromverbindung und warte ein paar Minuten.
- Fahre den Pi wieder hoch und überprüfe mit
date
die Uhrzeit.
Boden- und Front-Kamera
USB-Kamera
Einrichtung
fswebcam muss installiert sein:sudo apt install fswebcam
Raspicam
Zur Verwendung ist darauf zu achten, dass der Pi nach dem Anschließen der Kamera neu gestartet werden muss.
Watchdog
Zum Scharfschalten des Watchdogs, den PI ausschalten und Jumper JP1 auf VCC umstecken. Mit dem nächsten Start erwartet der Watchdog einen regelmäßigen PIN-Wechsel, ansonsten wird die Batteriestromversorgung resetet.
Bedienung im Überblick
Verbindung:
ssh -t pi@wetterballon19.local 'cd /home/pi/wetterballon/master; exec "$SHELL"'
Verbindung mit direktem Ausführen eines weiteren Programms (hier vim):
ssh -t pi@wetterballon19.local 'cd /home/pi/wetterballon/master; vim -S Session.vim; exec "$SHELL"'
Service Steuerung:
sudo systemctl status weatherballoon.service sudo systemctl start weatherballoon.service sudo systemctl stop weatherballoon.service sudo systemctl enable weatherballoon.service sudo systemctl disable weatherballoon.service sudo systemctl status watchpuppy.service sudo systemctl start watchpuppy.service sudo systemctl stop watchpuppy.service sudo systemctl enable watchpuppy.service sudo systemctl disable watchpuppy.service sudo systemctl start watchpuppy.service weatherballoon.service sudo systemctl stop watchpuppy.service weatherballoon.service sudo systemctl status pifacertc.service
Bei Manipulation am Service-Code:
sudo systemctl daemon-reload
Download / Upload:
scp pi@wetterballon19.local:wetterballon/master/vids/* Downloads/vids scp Downloads/watchpuppy.service pi@wetterballon19.local:wetterballon/master/
Aufräumen:
sudo rm *.csv vids/* imgs/* logs/* phase *.pers
Status abfragen (Ausgabe im Logfile des Masters):
./status.sh
Phase setzen:
./setphase.sh
Externes GPS-Gerät
GPS Tracker TK 102
Verwendung
Das Gerät kann durch das Drücken der "on/off"-Taste von drei bis fünf Sekunden gestartet werden. Die grüne LED beginnt zu blinken bzw. durchgängig zu leuchten, wenn kein Signal empfangen wird. Auf eine SMS mit dem Test "smslink123456" antwortet der Tracker mit den GPS-Daten inkl. eines Google-Maps-Links der aktuellen Position. Mit "check123456" können per SMS die GSM-Signalstärke, die Information, ob ein GPS-Signal empfangen wird, sowie der Akkustand abgefragt werden. Unsere Tests haben jedoch ergeben, dass die Daten nicht zuverlässig sind, da bspw. der Akkustand nur zwischen drei Werten alternierte.
Incutex GPS Tracker TK116
Da wir für den TK 102 Tracker keine Anleitung des Herstellers haben und uns nur durch Ausprobieren sowie der Anleitung ähnlicher GPS-Tracker mit der Bedienung vertraut machen konnten, haben wir den TK116 Tracker als Alternative angeschafft.
Verwendung
Sobald das Gerät eingeschaltet ist und ein GPS-Signal empfangen hat, kann es von jedem Handy aus angerufen werden. Sobal ein Besetzt-Signalton zu hören ist kann man auflegen. Kurz darauf empfängt man eine SMS mit Koordinaten und Google-Maps Link. Alternativ kann man eine SMS mit dem Text "G[Passwort]#" an das Gerät schicken (z.B. G123456#). Das Standardpasswort lautet 123456. Dieses wurde von uns nicht geändert.
Nummer autorisieren
Wenn man Einstellungen ändern möchte, muss man zunächst seine Handynummer autorisieren, dies geht per SMS mit dem Inhalt "admin[Passwort] [Eigene Nummer]" (z.B. admin123456 0162444555666).
Wichtig: Sobald wenigstens eine autorisierte Nummer gespeichert ist, kann das Gerät nur noch von dieser Nummern aus angerufen werden. Sind keine gespecihert, kann es von jeder Nummer aus angerufen werden.
Sleep-Modus
Das Gerät hat einen Modus, in dem es nur ein GPS-Signal sucht, wenn es bewegt wird. Liegt es still, wechselt es in den Standby-Modus, um Strom zu sparen. Dies konnte im Test nicht bestätigt werden. Das Gerät ist auch ohne Bewegung nicht in den Standby-Modus gewechselt. Aktiviert werden kann der Modus mit SMS "sleep[Passwort] shock" (z.B. sleep123456 shock).
Wanzen-Modus
Der Tracker verfügt über ein eingebautes Mikro. Im Wanzenmodus nimmt er den eingehenden Anruf an und man kann über das Mikro die Umgebung hören. Dieser Modus wurde nicht getestet. Aktivierung per SMS "monitor[Passwort]" (z.B. monitor123456). Rückkehr in Tracking-Modus mit "tracker[Passwort]".
Weitere Befehle
- Auf Werkseinstellungen zurücksetzen:
- SMS: format
- Beispiel: format
- Passwort ändern:
- SMS: passwort[Altes Passwort] [Neues Passwort]
- Beispiel: passwort123456 654321
- Autorisierte Nummer entfernen:
- SMS: noadmin[Passwort] [Nummer]
- Beispiel: noadmin123456 0162444555666
LEDs
- Rot: Akku
- Leuchtet: Akku lädt
- Blinkt: Akku schwach
- Aus: Akku voll(während des Ladens)/Akku nicht leer(im Betrieb)
- Blau: GPS
- Leuchtet: GPS Signal wird gesucht
- Blinkt: GPS-Signal vorhanden
- Aus: Gerät ist im Standby-Modus
- Grün: GSM/GPRS
- Leuchtet: Eines von beiden vorhanden (i.d.R. GSM), wenn das Gerät per SMS anwortet ist alles ok
- Blinkt: Beides vorhanden, das Gerät kann entweder über das Handy oder über das Ortungsportal (nicht getestet) verwendet werden
- Aus: Gerät ist im Standy-Modus
LTE-Stick
Achtung: Da der Stick ein virtuelles eth0 interface anlegt, welches höher priorisiert wird als wlan0, kann es zu Problemen mit der Verbindung kommen.
Lösung: Wechsel in Modem-Modus