Aus Raspberry Pi Geek 06/2022

Stromverbrauch messen mit Hardkernels SmartPower 3 (Seite 2)

Verlaufsmessung

Das Display zeigt immer nur den aktuellen Zustand, für detaillierte Analysen benötigen Sie aber einen Verlauf. SBCs ziehen beim Booten kurzzeitig viel Strom, verbrauchen dann aber im Ruhemodus deutlich weniger. Je nach Aufgabenstellung interessiert eher nur das Maximum oder eher der langfristige Stromverbrauch, den meist tatsächlich der Idle-Wert bestimmt.

Zu diesem Zweck gibt das Messgerät nach entsprechender Konfiguration kontinuierlich die Messwerte im CSV-Format (per Komma getrennte Werte) auf der seriellen Konsole aus. Zum Abgreifen dieser Daten müssen Sie also einen PC per USB-C-Kabel mit dem SmartPower 3 verbinden, sich über Minicom oder ein anderes Terminalprogramm verbinden und die Daten in eine Datei umleiten (Abbildung 3). Das Wiki beschreibt das Ausgabeformat im Detail; es umfasst Spannung, Stromstärke und Leistung je Messintervall für den Eingang und die beiden Ausgabekanäle. Hinzu kommen Checksummen und Indikatorspalten, die angeben, ob ein Kanal angeschaltet war.

Abbildung 3: Vom SmartPower 3 abgegriffene Messdaten im CSV-Format (oben) und Menü (unten).

Abbildung 3: Vom SmartPower 3 abgegriffene Messdaten im CSV-Format (oben) und Menü (unten).

Mit der Firmware von Ende Februar 2022 und später klappt die Verbindung über das Netzwerk per UDP zuverlässig, was die Arbeit erleichtert, da das Hantieren mit dem seriellen Kabel wegfällt und man keinen Rechner in der Nähe des zu messenden Geräts benötigt.

Damit das SmartPower 3 weiß, wohin es die Daten senden soll, müssen Sie sich einmal per serieller Schnittstelle mit dem Gerät verbinden und wechseln danach mit [Strg]+[C] ins Menü (Abbildung 3, unten). Dort konfigurieren Sie den WLAN-Zugang sowie die IP-Adresse des UDP-Servers. Hardkernel verwechselte allerdings Server und Client und spricht im Wiki konsequent von Client. Gemeint sind aber der Rechner und Port, auf dem der UDP-Server läuft. Die Firmware behebt diesen Fehler jedoch schon.

Die Daten nehmen Sie auf dem Server mit einem Programm wie Netcat in Empfang. Einfacher klappt das jedoch mit dem Skript sp3-datalogger.py aus dem contrib/-Verzeichnis des SmartPower-Quellcodes [6]. Es implementiert den passenden UDP-Server und speichert die Daten in einer Datei. Alternativ liest das Skript die Daten auch direkt von der serielle Kabelschnittstelle. Ein typischer Aufruf sieht so aus wie in Listing 1. Die Option -t fügt den Daten einen absoluten Zeitstempel hinzu, alle verfügbaren Optionen zeigt -h an.

Listing 1

Datalogger aufrufen

$ sp3-datalogger.py -o meine_daten.csv -t

Daten auswerten

Allerdings lässt der Hersteller den Benutzer mit den Zahlenkolonnen allein und verweist lapidar auf die Auswertung per Tabellenkalkulation. Für eine einzelne Messung mag das akzeptabel erscheinen, denn gängige Programme laden CSV-Daten ohne Murren und erzeugen mit einigen Klicks auch eine Grafik daraus. Wer sich mit Office-Automation auskennt, hinterlegt die manuellen Schritte in einem Makro.

Eine bessere Alternative bietet aber der Einsatz einer sogenannten RRD-Datenbank (Round-Robin Database) zum Speichern der Daten. Das ist gerade für Langzeitmessungen das Mittel der Wahl, denn die Datenbank speichert Daten der näheren Vergangenheit sehr feinkörnig, Daten, die länger zurückliegen, aber ausgedünnt. Der Stromverbrauch eines Geräts im letzten Monat interessiert ja nicht auf Sekundenebene. Das eingangs schon erwähnte Selbstbauprojekt Pi-VA-Meter [2] setzt auf die RRD-Tools, im Artikel [1] dazu lesen Sie bei Interesse die Details nach.

Die dritte Alternative besteht im Auswerten mit einem kleinen Python-Skript. Mit Pandas gibt es ein für Tabellen ein maßgeschneidertes Programm, als Anwendungsfall dient der Vergleich der beiden Pi-Zero-Generationen. Pandas installieren Sie am besten via sudo pip3 install pandas.

Zero W vs. Zero 2W

Zum Messen hängen die zwei Zeros an den beiden Ausgabekanälen des SmartPower 3. Sowohl die Installation als auch die SD-Karte ist bei beiden gleich. Per Systemd startet nach dem Hochfahren ein Skript, das eine CPU-intensive Aufgabe erledigt und danach den Rechner sofort wieder herunterfährt. Dabei handelt es sich um einen typischen Anwendungsfall, wenn der RasPi an einer Batterie hängt.

Ein weiterer Rechner im Netz verwendet den Aufruf aus Listing 1 für das Sammeln der Daten. Die Ausgabekanäle schalten möglichst zeitgleichzeitig ein und nach dem Herunterfahren wieder aus. Die Auswertung erfolgt mit dem Skript aus Listing 2 – hier nur für einen Kanal, der andere funktioniert analog. Die Komplettversion finden Sie ebenfalls im bereits erwähnten Verzeichnis contrib/, das Ergebnis zeigt Abbildung 4.

Abbildung 4: Auswertung: Der RasPi Zero W und 2W im Verbrauchsvergleich.

Abbildung 4: Auswertung: Der RasPi Zero W und 2W im Verbrauchsvergleich.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben