(WS19-01)Wetterballon Installation

Aus Verteilte Systeme - Wiki
Version vom 17. März 2020, 19:24 Uhr von Mfell001 (Diskussion | Beiträge) (Hut (Weatherballon Controller Board))

Wechseln zu: Navigation, Suche

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:

  1. Erstelle die Datei /boot/wpa_supplicant.conf.
  2. 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:

  1. Ermittle Netzadresse und Netzmaske des WLAN-Interfaces des Laptop mittels ifconfig oder ip a.
  2. 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

  1. 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.
  2. Ü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:

  1. Passwort ändern
  2. Network Options -> Hostname ändern
  3. Localisation Options -> Locale ändern
  4. Interfacing Options -> Camera aktivieren
  5. Interfacing Options -> I2C aktivieren
  6. Interfacing Options -> Serial -> Shell deaktivieren, Serial aktivieren (für GPS)
  7. Advanced Options -> "Expand Filesystem"

Noch einmal Neustarten.

Software

TODO u.a. Master, Bibliotheken (BCM2835, ...)

Master (Flugcomputer)

  1. Apt aktualisieren: sudo apt update
  2. GitLab installieren
  3. automake installieren
  4. doxygen installieren
  5. 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)

  1. Installiere i2c-tools sudo apt-get install i2c-tools
  2. Befolge die Schritte "Installing the battery" und "Fitting on the Raspberry Pi" aus http://www.piface.org.uk/assets/piface_clock/PiFaceClockguide.pdf.
  3. 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 hilft sudo systemctl status pifacertc.service bei der Fehlersuche.
  4. Falls keine Verbindung mit dem Internet besteht, setze mit sudo date -­s "14 JAN 2014 10:10:30" die aktuelle Zeit.
  5. Teste, ob die RTC richtig funktioniert:
    1. Trenne die Internetverbindung (ansonsten synchronisiert das System seine Zeit darüber und nicht über die RTC).
    2. Fahre den Pi herunter, trenne die Stromverbindung und warte ein paar Minuten.
    3. 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.

Sensoren

TODO

USB-Hub

TODO

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

GPS-Tracker

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