# Speedtest_Display_Rasberry_Pi ## 1. Raspberry Pi OS installieren Empfohlen: - Raspberry Pi OS Lite (64 Bit) Mit Raspberry Pi Imager auf die SD-Karte schreiben. Während des Flashens direkt konfigurieren: - WLAN - SSH aktivieren - Hostname setzen --- ## 2. System aktualisieren ```bash sudo apt update sudo apt full-upgrade -y sudo reboot ``` --- ## 3. SPI aktivieren ```bash sudo raspi-config ``` Dann: ```text Interface Options → SPI → Enable ``` Neustarten: ```bash sudo reboot ``` --- ## 4. Prüfen ob SPI aktiv ist ```bash ls /dev/spi* ``` Erwartet: ```text /dev/spidev0.0 /dev/spidev0.1 ``` --- ## 5. TFT-Display aktivieren Datei öffnen: ```bash sudo nano /boot/firmware/config.txt ``` Ganz unten ergänzen: ```ini dtparam=spi=on dtoverlay=piscreen,speed=16000000,rotate=270 ``` --- ## 6. Framebuffer aktivieren Neustart: ```bash sudo reboot ``` Danach prüfen: ```bash ls /dev/fb* ``` Erwartet: ```text /dev/fb0 ``` --- ## 7. Testbild auf Framebuffer ```bash sudo apt install -y fbi ``` Test: ```bash sudo fbi -T 1 -d /dev/fb0 -noverbose test.jpg ``` --- ## 8. Python installieren ```bash sudo apt install -y python3 python3-pip python3-pil python3-numpy ``` --- ## 9. DejaVu Fonts installieren ```bash sudo apt install -y fonts-dejavu-core ``` Prüfen: ```bash ls /usr/share/fonts/truetype/dejavu/ ``` --- ## 10. InfluxDB Python Client installieren ```bash pip3 install --break-system-packages influxdb-client ``` --- ## 11. Python-Datei anlegen ```bash nano /home/hubobel/down.py ``` Python-Code einfügen und speichern. --- ## 12. Testlauf ```bash python3 /home/hubobel/down.py ``` Jetzt sollte sichtbar sein: - Downloadrate - Uploadrate - Ping - WLAN-IP - WAN-IP - Verlaufsgrafik --- ## 13. systemd Service anlegen ```bash sudo nano /etc/systemd/system/down.service ``` Inhalt: ```ini [Unit] Description=Framebuffer Speedtest Display After=network-online.target [Service] Type=simple User=hubobel WorkingDirectory=/home/hubobel ExecStart=/usr/bin/python3 /home/hubobel/down.py Restart=always RestartSec=5 [Install] WantedBy=multi-user.target ``` --- ## 14. Service aktivieren ```bash sudo systemctl daemon-reload sudo systemctl enable down.service sudo systemctl start down.service ``` --- ## 15. Status prüfen ```bash systemctl status down.service ``` Live-Log: ```bash journalctl -u down.service -f ``` --- ## 16. Nach Reboot testen ```bash sudo reboot ``` --- # Ergebnis Das System läuft danach: - ohne Desktop - direkt auf `/dev/fb0` - rebootfest über systemd - ressourcenschonend - ideal für Embedded-Statusanzeigen ## Dashboard-Umschaltung per GPIO-Taster Das Display unterstützt drei unterschiedliche Dashboards, die direkt über GPIO-Taster am Raspberry Pi ausgewählt werden können. ### Verwendete GPIOs | Funktion | GPIO | Pin | |---|---|---| | Dashboard 2 | GPIO5 | Pin 29 | | Dashboard 3 | GPIO21 | Pin 40 | | Masse (GND) | — | Pin 39 | Die Taster werden jeweils zwischen GPIO und GND angeschlossen. Die internen Pull-Up-Widerstände des Raspberry Pi werden per `gpiozero` verwendet, daher sind keine zusätzlichen Widerstände notwendig. ### Logik | Zustand | Anzeige | |---|---| | kein Taster aktiv | Dashboard 1 | | GPIO5 gegen GND | Dashboard 2 | | GPIO21 gegen GND | Dashboard 3 | ## Hinweise zur Konfiguration Die dargestellten Werte werden nicht direkt durch das Projekt ermittelt, sondern aus bereits vorhandenen Datenquellen abgerufen. Voraussetzung ist, dass die benötigten Messwerte über ioBroker und/oder InfluxDB bereitgestellt werden. Die verwendeten Datenpunkte, Measurements, URLs, Zugangsdaten und Abfragen müssen daher an die jeweilige Umgebung angepasst werden. Das Projekt dient als Beispiel für die Visualisierung von Infrastruktur-, Netzwerk- und Systemdaten. Welche Werte angezeigt werden, hängt von den in der eigenen Installation verfügbaren Datenquellen ab. Aktuell werden die Daten unter anderem aus folgenden Quellen bezogen: - InfluxDB (z. B. Speedtest-, Proxmox- und Sensordaten) - ioBroker Simple-API (`/getPlainValue/...`) - UniFi Controller / UniFi Network über ioBroker - Linux-Control Adapter für Systemdaten Vor der Inbetriebnahme müssen die verwendeten Datenpunkte und URLs entsprechend der eigenen Umgebung angepasst werden. ## Displaysteuerung Die Hintergrundbeleuchtung des Displays kann über einen ioBroker-Datenpunkt gesteuert werden: ```text javascript.0.Variablen.Server_Display ``` Mögliche Werte: - `true` → Dashboard aktiv - `false` → Display wird schwarz geschaltet Bei deaktiviertem Display werden keine Dashboards erzeugt und keine Datenabfragen durchgeführt. Das Skript prüft lediglich in regelmäßigen Abständen den Schaltzustand und aktiviert die Anzeige automatisch wieder, sobald der Datenpunkt auf `true` gesetzt wird. # Screenshots ## Dashboard 2 – Hubobels Netzwerk Übersicht über die UniFi-Infrastruktur mit: - Aktive Clients (LAN / WLAN) - UXG Max CPU- und RAM-Auslastung - US24 CPU- und RAM-Auslastung - US24 Temperatur - Gateway-Uptime ## Dashboard 3 – Proxmox Monitoring Übersicht über den Proxmox-Host mit: - Aktuelle CPU-Frequenz - CPU-Auslastung - Load Average (1 / 5 / 15 Minuten) - RAM-Auslastung inkl. absolutem Verbrauch - CPU-Temperatur - Serverraumtemperatur ## Lizenz Dieses Projekt steht unter der MIT-Lizenz. Details siehe Datei `LICENSE`.