Es gibt Situationen, die eine genauere Analyse erfordern, als der Strommesser aus dem Baumarkt sie liefert. Ein Selbstbaumodul samt Pi Zero zeichnet Messdaten für die spätere Auswertung auf.
Im Handel gibt es Strommessgeräte, die entweder primärseitig messen oder die man in das USB-Kabel einschleift (Abbildung 1). Erstere eignen sich nicht für den Schwachlastbereich, die Geräte der zweiten Kategorie sind schwierig abzulesen und sorgen oft aufgrund von Spannungsabfall für Probleme mit den Verbrauchern.
Beide Typen haben gemeinsam, dass sie abgesehen vom Maximum und dem Gesamtverbrauch keine Aufzeichnung über längere Zeiträume erlauben. Daher lassen sich bestimmte Fragestellungen nur mit Mühe beantworten – etwa wie eine Festplatte beim Schreiben am RasPi den Stromverbrauch beeinflusst oder wie sich ein Spindown der Platte auswirkt.
Im Folgenden stellen wir ein Messmodul zum Eigenbau vor, das Stromverbrauch und Spannung über längere Zeit misst und mithilfe eines Pi Zero aufzeichnet. Die zum Projekt gehörende Software [1] macht dabei nicht nur die Aufzeichnung zum Kinderspiel, sondern auch das Auswerten der Daten. Die Installation beschreibt der Kasten “Pi-Vameter: Aufbau, Installation und Konfiguration”.
Pi-Vameter: Aufbau, Installation und Konfiguration
Für die Platine verwenden Sie die auf dem Schaltplan verzeichneten Komponenten. Eine Bestückungsliste finden Sie im Verzeichnis doc/ des Github-Projekts [1]. Der Anschluss an den Pi Zero erfolgt per SPI über die physischen Pins 19 (MOSI), 21 (MISO), 23 (CLK), 24 (SPI**CS0) und 25 (GND) (Abbildung 2).
Das LCD-Modul verbinden Sie über I2C, also die Pins 3 (SDA) und 5 (SCL). Den Strom bekommt das Display über Pin 2 oder 4, den anderen 5-Volt-Pin verbinden Sie für die Speisung des Mess-Pi mit dem 5-Volt-Eingang des Messmoduls.
Für den Mess-Pi benötigen Sie die Lite-Version von Raspian “Stretch”. Mit “Jessie” funktioniert die Software wegen veralteter RRD-Tools nicht. Nach der Ersteinrichtung installieren Sie noch das Paket git (Listing 1, Zeilen 1 und 2) und mit dessen Hilfe dann die Projekt-Software (Zeilen 3 bis 5). Möchten Sie die Messung per Hardware-Taster steuern, benötigen Sie zusätzliche Software (Zeilen 7 bis 9). Da die Installationsskripts auch die Hardware-Konfiguration ändern, müssen Sie zum Abschluss den Pi Zero neu booten.
Als letzter Schritt steht das Anpassen des Messprogramms an den verwendeten ADC-Baustein an. Der Einfachheit halber erledigen Sie das direkt im Programm vameter.py, etwa mit dem Editor Nano. Im Abschnitt configuration finden Sie die Variable ADC, in die Sie den von Ihnen verwendeten ADC-Baustein eintragen. Überprüfen Sie in der Variable ADC_VALUES, ob das Programm den Baustein bereits unterstützt. Falls nicht, müssen Sie das Datenblatt konsultieren und den Chip auch in ADC_VALUES eintragen. Wichtig sind hier die Kommando-Bytes für das Auslesen des ADC und die Auflösung des ADCs in Bits.
Listing 1
$ sudo apt-get update $ sudo apt-get -y install git $ git clone https://github.com/bablokb/pi-vameter.git $ cd pi-vameter $ sudo tools/install $ cd .. $ git clone https://github.com/bablokb/gpio-poll-service.git $ cd gpio-poll-service $ sudo tools/install
Das Messmodul
Das Messmodul (Abbildung 3) besteht nur aus wenigen Komponenten, die Sie den Schaltplänen in Abbildung 4 und Abbildung 5 entnehmen können. Im Zentrum steht ein Analog-Digital-Konverter (ADC) mit mindestens zwei Kanälen. Er misst auf jedem davon die Eingangsspannung im Verhältnis zu einer Referenzspannung und gibt (bei einer 10-Bit-Auflösung) das Ergebnis als Hexadezimalzahl zwischen 0 und 1023 aus.
Mit dem Messmodul misst der Raspberry Pi Spannungen von 0 bis 5,5 Volt und Gleichströme von 0 bis 5 Ampere, zusätzlich berechnet er daraus die Leistung. Das Layout wurde für die Spannungsmessung mit den ADCs Microchip MCP3002 (10 Bit) beziehungsweise MCP3202 (12 Bit), beide für eine 8-polige DIP-Fassung, entworfen.
Huckepack auf der Platine befindet sich das Strommessmodul ACS712-05 der Firma Allegro. Da der chinesische Hersteller die Module mit unterschiedlichen PCB-Maßen produziert, lässt sich kein festes Layout vorgeben. Sie müssen also erst das Modul kaufen und dann das Layout entsprechend anpassen.
Die für die Messungen erforderlichen genauen Referenzspannungen hebt der DC-DC-Konverter SX1308 von 5 auf 7,5 Volt an (Abbildung 4) und erzeugt dann daraus über zwei Spannungsregler LM317M (SMD) die Referenzspannungen 5,00 Volt und 3,30 Volt (Abbildung 5). Das ist zwingend nötig, weil Abweichungen der Betriebsspannungen des ADC und ganz besonders des Stromsensors sich direkt negativ auf das Messergebnis (Nullpunkt bei 2,5 Volt) auswirken.
Pegelprobleme ergeben sich bei Messungen der eigenen 5-Volt-Betriebsspannung des RasPi, die je nach Schaltnetzteiltyp auch 5,1 Volt oder mehr betragen kann. Deshalb kommt ein Eingangsspannungteiler (R1=10k, R2=15k) zum Einsatz, der bei Umess=+5,5V eine Spannung von 3,3 Volt erreicht (Abbildung 6).
Der ADC wird ebenfalls mit 3,3 Volt gespeist, sodass der RasPi spannungsmäßig keine Probleme bekommt. Das Python-Programm muss diesen Messspannungsteiler mit einem Korrekturwert von 5/3 berücksichtigen:
Spannung = 3,3*(ADC-Wert/1024)*5/3
Die obige Formel geht von der Verwendung eines MCP3002 als ADC aus, der 10-Bit-Werte von 0 bis 1023 liefert.
Die Strommessung
Für die Strommessung bedarf es mit dem bereits erwähnten ACS712 eines weiteren Bausteins, eines sogenannten Hall-Sensors. Hier induziert Strom ein Magnetfeld, das wiederum eine Spannung erzeugt. Diese liegt dann am zweiten Eingangskanal des ADC an. Der Mess-Pi kann so aus dem vom ADC gelieferten Wert auf einfache Weise die Stromstärke zurückberechnen.












