(WS19-01)Wetterballon Installation: Unterschied zwischen den Versionen

Aus Verteilte Systeme - Wiki
Wechseln zu: Navigation, Suche
(Systemkonfiguration auf dem Pi)
(Styroporbox)
Zeile 1: Zeile 1:
 
= Installationsschritte =
 
= Installationsschritte =
== Styroporbox ==
 
TODO
 
 
 
== 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.  

Version vom 16. März 2020, 15:41 Uhr

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.

Hut (Weatherballon Controller Board)

TODO - u.a. Positionierung auf dem GPIO, Jumper und deren Funktion

Sensoren

TODO

USB-Hub

TODO

Externes GPS-Gerät

TODO

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