Das Waveshare PoE HAT (B) ist eine PoE-Hardwareerweiterung für den Raspberry Pi 3B+ und 4B, die eine Stromversorgung über das Netzwerkkabel ermöglichst. Neben der Hardware für die Spannungswandlung ist ein Lüfter und eine OLED-Display mit 128×32 Pixel vorhanden.
Für die Steuerung des Lüfters und der Displayanzeige gibt es Programme in C und Python. Ich habe mich für die Variante in Python(3) entschieden, weil ich diese Sprache am ehesten verstehe und ggf. Änderungen bzw. Ergänzungen vornehmen kann.
Installation der notwendigen Pakete:
sudo apt-get install python3-pip python3-pil python3-numpy sudo pip3 install RPi.GPIO smbus
python/readme_EN.txt
im Archiv) wird das Paket numpy* nicht als Abhängigkeit genannt. Ohne das Paket bricht das Script jedoch mit einem entsprechenden Fehler ab.pip3
löst nicht alle Abhängigkeiten auf, sodass es notwendig ist, stattdessen das Pakte python3-nunpy über apt
zu installieren.1)
Als nächster Vorbereitungsschritt ist das I²C-Interface zu aktivieren (sudo raspi-config
> Interface Options > I2C).
Anschließend ist das Archiv mit dem Beispiel-Code herunterzuladen und zu installieren.
cd wget https://www.waveshare.com/w/upload/b/b7/PoE_HAT_B_code.7z 7z x PoE_HAT_B_code.7z python -r -o./PoE_HAT_B_code # Nur Unterverzeichnis 'python' entpacken cd PoE_HAT_B_code mv python/* . # Inhalt von 'python' eine Ebene nach oben bewegen rmdir python # Nun leeres Verzeichnis 'python' löschen
Das Script zur Steuerung von Display und Lüfter findet sich unter ~/PoE_HAT_B_code/examples
.
Das Script wird über die Konsole als Parameter des Python-Interpreters aufgerufen und verfügt über keine Parameter:
python3 ~/PoE_HAT_B_code/examples/main.py
Abweichend von der Waveshare-Dokumentation ist bei mir ein Aufruf mit sudo
nicht notwendig.
Die Temperatur, bei der der Lüfter aktiviert wird, ist im Quelltext kodiert. Sie kann durch eine Änderung der Zeile 20 des Scriptes main.py
angepasst werden. Hierfür ist der Wert in der Klammer des Funktionsaufrufes anzuapssen (Default 37°C):
POE.POE_HAT_Display(37)
Der Lüfter wird aktiviert, wenn die vorgegebene Temperatur erreicht wird. Sobald die Temperatur auf zwei Grad unter der Grenztemperatur fällt, wird der Lüfter gestoppt.
Das Script kann mit <Ctrl>+<C> unterbrochen werden. Der Lüfter wird dann sofort gestoppt. Die Anzeige auf dem Display bleibt unverändert2).
kill
oder beim Runterfahren des Systems), dann verbleibt auch der Lüfter ist aktuellen Zustand.Mit dem folgenden Aufruf kann das Script gestartet und im Hintergrund ausgeführt werden:
python3 ~/PoE_HAT_B_code/examples/main.py &
Um das Script beim Systemstart automatisch aufzurufen, empfiehlt Waveshare den Aufruf als vorletzte Zeile in die rc.local
aufzunehmen:
sudo nano /etc/rc.local
fi python3 /home/thosch/PoE_HAT_B_code/examples/main.py & exit 0
Ich plane die Software an einigen Stellen in Funktion und Umsetzung der Programmierung anzupassen.
Insbesondere das Verhalten beim Beenden des Scriptes sollte verbessert werden: