Carserver
Beschreibung
Dieses System ist komplett unabhängig vom Fahrzeug. Bei einer bestehenden Stromversorgung ( KFZ-Steckdose) ist es in wenigen Minuten in einem anderen Fahrzeug montiert und einsatzbereit.
Version 1
Der Carserver wurde mit einem Raspberry Pi 3 (B+) umgesetzt und darauf das Betriebssystem Ubuntu Mate mit der grafischen Oberfläche installiert.
Anschließend wurde eine 12 Volt Stromversorgung im Handschuhfach bereitgestellt. Bei der ersten Version des Carservers, befand er sich permanent im Handschuhfach, da noch kein Touchscreen vorhanden war. Er hatte nur die Funktion, die Playlist automatisch zu synchronisieren (Playlist Synchronizer).
Der Raspberry mit dem kleinen Touchscreen besitzt nun auch ein neues Gehäuse aus Kunststoff. Dieser befindet sich meistens im Handschuhfach , aber er kann auch direkt an das Armaturenbrett eingehängt werden. Man könnte damit z. B. alle WLANs automatisch scannen, so wie es auch bei Google Street View geschehen ist. Der Empfang bzw. die Antenne des WLANs ist leider beim Raspberry Pi 3 noch nicht optimal.
Da es ein großer Aufwand wäre, einen Netzwerkkabel von der Wohnung in die Garage zu verlegen, ist die kostengünstigere Variante umgesetzt worden. Es wurde ein PowerLAN (Datentransfer über das Stromnetz) verwendet. Ein gutes und sicheres PowerLAN hat seinen Preis. Die Geschwindigkeit beträgt 500 MBit/s und die Daten, die über das Stromnetz laufen sind AES verschlüsselt.
Die technischen Daten des Carservers:
Chipsatz | ARM Cortex-A53 Quad |
CPU Takt | 1200 MHz |
RAM | 1024 MB |
Speicher | 32GB Samsung EVO Class 10 (Lesen - Schreiben: 80 MB/s - 20 MB/s) |
WLAN / LAN | ja |
HDMI | ja |
Bluetooth | ja |
Spannung | 5V (DC) / 2,5A |
Der Raspberry benötigt eine Leistung von mindesten 10 Watt (5V * 2,4A = 12W).
Version 2
Die Version 2 des Carservers ist nun abgeschlossen. Es besteht die Möglichkeit das WLAN zu verwenden oder direkt mit einem Smartphone (Hotspot) ins Internet zu gelangen. Dies ist vorwiegend für die Musik auf YouTube gedacht. Eigentlich laufen alle Programme von Linux auf einem Raspberry unter der Berücksichtigung der Leistung. Davon ausgeschlossen sind virtuelle Maschinen, diese werden von der ARM-Architektur nicht unterschützt.
Das Problem mit dem schlechten WLAN-Empfang kann einfach mit einem hochwertigen WLAN-Stick gelöst werden. Der Raspberry mit diesem Touchscreen und weiteren USB-Geräten benötigt eine Leistung von mindesten 15 Watt (5V * 3A = 15W). Der Raspberry und dieser Touchscreen müssen separat mit Strom versorgt werden (Raspberry mit Touchscreen)!
Weiterhin besteht die Möglichkeit ihn mit Modulen zu erweitern und ihn durch eine neuere Version zu ersetzen. Beim Ubuntu Mate stellt dies kein Problem dar, es muss einfach nur die SD-Karte beim neuen eingesteckt werden. Das System anschließend Upgraden und Updaten.
Der Shellskript zum Updaten des gesamten Systems:
#!/bin/bash # 23.03.2016 Bacher Oliver (www.technikwiki.org) # apt-get update apt-get upgrade apt-get dist-upgrade apt-get autoclean apt-get autoremove do-release-upgrade
Module
Playlist Synchronizer
Das Modul Playlist Synchronizer dient dazu, die aktuelle Playlist mit einem oder mehreren USB-Sticks zu synchronisieren. Die Seriennummer vom USB-Stick (idVendor & idProduct) wird mit Hilfe einer sogenannten udev-Regel erkannt und diese ruft einen Shellskript auf.
Der Shellskript zum Auslesen der USB Devices (idVendor & idProduct) sieht wie folgt aus:
#!/bin/bash # 07.08.2016 Bacher Oliver (www.technikwiki.org) # for X in /sys/bus/usb/devices/*; do if [ -f $X/idVendor ] && [ -f $X/idProduct ]; then idVendor=$(cat $X/idVendor) idProduct=$(cat $X/idProduct) echo "##" echo "## UsbDevice: $X" echo "## VendorId : $idVendor" echo "## ProductId: $idProduct" echo "##" echo "" fi done
Udev-Regel
In diesem Beispiel wird der Shellscript "SyncPlaylist.sh" nur aufgerufen, wenn der USB-Datenträger mit der "VendorId: 0951" und "ProductId: 1624" verbunden wird.
Der Shellskript selbst, setzt einen Mount-Punkt und ruft die Synchronisation mit Hilfe von rsync auf. Dadurch wird ein ständiges Löschen und Kopieren der gesamten Playlist vermieden (Performance).
Die Freigabe der Playlist erfolgt direkt auf dem Carserver mit einer Samba Freigabe (Windows - Netzlaufwerk). Natürlich ist es auch möglich, die Playlist mit SSH zu verwalten, diese Variante ist dann unabhängig vom Intranet.
ACTION=="add",ATTRS{idVendor}=="0951", ATTRS{idProduct}=="1624", ENV{DEVTYPE}=="usb_device", RUN+="/data/carserver/cronjobs/SyncPlaylist.sh"
Der Parameter ENV{DEVTYPE}=="usb_device" muss gesetzt werden, ansonsten wird der Shellscript mehrmals ausgeführt.
Eine weitere Möglichkeit wäre eine Cloud zu verwenden. Diese Variante ist ebenso etwas Zeitaufwändig bis diese läuft und die Daten der Cloud müssen ebenso auf die USB-Sticks kopiert werden.
Rsync
- -t = behält Zeiten der Quelldatei bei
- -v = zeigt während des Synchronisierens alle ausgeführten Schritte an
- -u = überspringt Dateien, die im Ziel neuer sind als in der Quelle
- --delete = vergleicht Quellverzeichnisse und Zielverzeichnisse und sorgt dafür, dass die Dateien, die im Quellverzeichnis nicht mehr vorhanden sind, gelöscht werden
Der Befehl zum Synchronisieren der Playlist via rsync.
Fotos
Version 1
Version 2
Komponenten
- Devolo dLAN 500 Wireless+ (500...
- External Battery 10,000mAh Min...
- Greluma 1 x Waterproof DC-DC 1...
- Miuzei Case for Raspberry Pi 4...
- RAMPOW Cigarette Lighter USB C...
- Raspberry 1373331 Pi 3 Model B...
- Raspberry Pi 4 Model B (4GB)
- REDTIGER Dash Cam Car Front Re...
- Rii Mini i8+ Black with Backli...
- Seagate Portable 2TB External ...
- SUNFOUNDER Touch Screen for Ra...
- USB WLAN Stick for PC, 1300Mbp...
- Waveshare 4.3 Inch DSI LCD Dis...