(WS19-01)Wetterballon Installation
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.
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
TODO u.a. Master, Bibliotheken (BCM2835, ...)
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
bcm-library installieren herunterladen, entpacken, ./configure; make; make install
Autostart einrichten
Der Autostart erfolgt mittels systemd Service:
1. Datei /etc/systemd/system/weatherballoon.service
mit folgendem Inhalt anlegen:
[Unit] Description=Weatherballoon Master program autostart [Service] ExecStart=/bin/bash /home/pi/wetterballon/master/start.sh [Install] WantedBy=multi-user.target
Der Pfad muss mit dem tatsächlichen Pfad der start.sh im Wetterballon-Ordner übereinstimmen.
2. Aktivieren und Starten des Services mit:
systemctl daemon-reload systemctl enable weatherballoon.service systemctl start weatherballoon.service
Damit läuft der Flugcomputer "master" im Hintergrund als Service und startet automatisch mit jedem Neustart.
Service-Status überprüfen mit
systemctl status weatherballoon.service
Service stoppen mit
systemctl stop weatherballoon.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.
Hut (Weatherballon Controller Board)
TODO - u.a. Positionierung auf dem GPIO, Jumper und deren Funktion
Sensoren
TODO
USB-Hub
TODO
Externes GPS-Gerät
Incutex GPS Tracker TK116
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