Nachdem wir die GPS-Daten schon verarbeiten können geht es langsam an den Einbau ins Auto - und dafür muß die Stromversorgung noch vorbereitet werden. Die Stromversorgung des Raspberry Pi ist wohl in der Praxis eine der größeren Hürden beim Einsatz im Auto: Will man den RPi sinnvoll als Fahrtenbuch, GPS-Tracker, oder Mediaplayer verwenden, muß er ohne Benutzereingriff jederzeit zu Verfügung stehen.
Die meisten KFZ-Steckdosen sind glücklicherweise Zündungs-geschaltet - beim Einschalten geht also der Strom an, beim Ausschalten auch direkt wieder aus. Dies hat den Hintergrund, daß eine Dauerbeschaltung der Steckdose die Batterie leer saugen könnte.
In der Folge kann man also den Raspberry Pi direkt an einen KFZ-USB Adapter betreiben - er schaltet sich beim starten automatisch an, wird aber beim Abschalten des Autos hart vom Strom genommen. Genau dies führt teilweise zur Stromunterbrechung exakt während eines Schreibvorgangs auf die SD-Karte und kann diese in ihrer Funktion beeinträchtigen.
Als einfache aber zweckmässige Lösung gegen dieses unerwünschte harte Abschalten kann man zwischen Raspberry und KFZ-Steckdose eine USB-Powerbank zwischenschalten. Dies hat neben der Funktion des gesicherten Herunterfahrens weiters den Vorteil, daß der Raspberry auch ohne angeschaltene Zündung verwendet werden kann, beispielsweise während man auf jemanden wartet.
Jetzt würde der Raspberry jedoch so lange laufen, bis die Akkubank leer ist - was durchaus mehrere Tage dauern kann, jedoch auch in diesem Fall dann wieder hart abschalten.
Wir können aber mittels eines einfachen Skripts kontrollieren, ob ein Netzwerkswitch erreichbar ist - und somit feststellen, ob die Zündung an ist, wenn wir einen Switch dort anschließen.
Schaltet man nun die Zündung aus, wird der Raspberry vom Akkupack weiter betrieben, durch das Skript merkt der Raspberry aber den Wegfall des Switches und kann - mit einer einstellbaren Verzögerung - sauber heruntergefahren werden.
Hier meine entsprechende Konfiguration:
Wir erstellen ein Skript
sudo nano /usr/local/bin/checklan.sh
Mit dem Inhalt
ping -c4 169.254.4.214 > /dev/null
if [ $? != 0 ]
then
sudo /sbin/shutdown now
fi
Statten das Skript mit ausreichend Rechten aus
Fügen es zur regelmässigen Ausführung dem Crontab hinzu
crontab -e
und können nach dem nächsten Neustart ausprobieren, ob das Skript greift.
Die meisten KFZ-Steckdosen sind glücklicherweise Zündungs-geschaltet - beim Einschalten geht also der Strom an, beim Ausschalten auch direkt wieder aus. Dies hat den Hintergrund, daß eine Dauerbeschaltung der Steckdose die Batterie leer saugen könnte.
In der Folge kann man also den Raspberry Pi direkt an einen KFZ-USB Adapter betreiben - er schaltet sich beim starten automatisch an, wird aber beim Abschalten des Autos hart vom Strom genommen. Genau dies führt teilweise zur Stromunterbrechung exakt während eines Schreibvorgangs auf die SD-Karte und kann diese in ihrer Funktion beeinträchtigen.
Als einfache aber zweckmässige Lösung gegen dieses unerwünschte harte Abschalten kann man zwischen Raspberry und KFZ-Steckdose eine USB-Powerbank zwischenschalten. Dies hat neben der Funktion des gesicherten Herunterfahrens weiters den Vorteil, daß der Raspberry auch ohne angeschaltene Zündung verwendet werden kann, beispielsweise während man auf jemanden wartet.
Jetzt würde der Raspberry jedoch so lange laufen, bis die Akkubank leer ist - was durchaus mehrere Tage dauern kann, jedoch auch in diesem Fall dann wieder hart abschalten.
Wir können aber mittels eines einfachen Skripts kontrollieren, ob ein Netzwerkswitch erreichbar ist - und somit feststellen, ob die Zündung an ist, wenn wir einen Switch dort anschließen.
Schaltet man nun die Zündung aus, wird der Raspberry vom Akkupack weiter betrieben, durch das Skript merkt der Raspberry aber den Wegfall des Switches und kann - mit einer einstellbaren Verzögerung - sauber heruntergefahren werden.
Hier meine entsprechende Konfiguration:
Wir erstellen ein Skript
sudo nano /usr/local/bin/checklan.sh
Mit dem Inhalt
ping -c4 169.254.4.214 > /dev/null
if [ $? != 0 ]
then
sudo /sbin/shutdown now
fi
Statten das Skript mit ausreichend Rechten aus
sudo chmod 775 /usr/local/bin/checklan.sh
Fügen es zur regelmässigen Ausführung dem Crontab hinzu
*/1 * * * * /usr/bin/sudo -H /usr/local/bin/checklan.sh >> /dev/null 2>&1
und können nach dem nächsten Neustart ausprobieren, ob das Skript greift.
Das Ganze ist nur hier zusammengetragen, ein Tutorial zum Restart zum Wiederaufbau einer WLAN-Verbindung brachte mich auf diese Idee:
Hallo,
AntwortenLöschenvielen Dank für das Tutorial, aber wie fährt man ihn dann wieder hoch sobald die Zündung gestatet wird? ._.
Hi, sobald die Zündung an geht, geht die Powerbank an und versorgt den RPi mit Strom.
LöschenDie Powerbank muss also bei anliegendem Ladestrom an gehen - das tun nicht alle. Ich habe eine von Tecknet, die so arbeitet.