5. Strommessung mit Hall-Effekt-Sensor & Leistungsberechnung¶
5.1. Einleitung¶
In den vorherigen Projekten (Projekt 1, Projekt 2, Projekt 3 & Projekt 4) nutzten wir bereits einen Raspberry Pi Zero 2W, um verschiedene neue Technologien kennen zu lernen. Dieses Projekt soll die bereits erstellten Funktionalitäten durch eine Strommessung und Leistungsberechnung erweitert werden. Hierbei verwenden wir den Raspberry Pi in Kombination mit einem Hall-Effekt Sensor und einem ADS1115-Analog-Digital-Wandler (ADC). Die gemessenen Daten sollen anschließend wie Messdaten aus der Spannungsmessung in einer Datenbank abgelegt und anschließend mit Grafana abgebildet werden können.
5.2. Grundlagen¶
5.2.1. Hall-Effekt-Strommesser¶
Hall-Effekt-Stromsensoren messen den elektrischen Strom, indem das von einem stromdurchflossenen Leiter erzeugte Magnetfeld erfasst wird. Dabei entsteht durch Lorentzkräfte eine Spannung auf einer Leiterplatte. Elektronen werden durch das Magnetfeld an ein Ende der Leiterplatte gedrückt, wodurch eine Potentialdifferenz entsteht, die dann gemessen werden kann. Diese ist proportional zur Magnetfeldstärke und somit auch zum Strom. Diese Spannung wird anschließend aufbereitet und als analoges Signal ausgegeben. Dieses Prinzip ermöglicht eine Messung von sowohl Gleich- als auch Wechselstrom.
Für dieses Projekt haben wir einen HSTS023R Split Core Hall Effekt Sensor verwendet. Der Sensor besitzt einen offenen Kern, dieser ermöglicht die Montage im laufenden Betrieb, dies kann Zeit und Kosten sparen. Die leichte Handhabung und die robuste Bauweise machen sie zur ersten Wahl für viele Anwendungen im Bereich Energieüberwachung und industrielle Messtechnik. Dieser Senor ermöglicht eine galvanische Trennung der Messung von Gleichstrom, Wechselstrom und Pulsströmen, besitzt eine hohe Isolationsfestigkeit eine geringe Störempfindlichkeit durch einen ferromagnetischen Kern, und eine Bandbreite bis zu 25kHz. Dieser Split-Core-Stromsensor bietet somit eine flexible, sichere und sehr einfach zu installierende Lösung für die Strommessung bis 50A.
Der Sensor verfügt über vier Pins:
Vcc: Versorgungsspannung (5V)
0V: Masse / GND
Vout: Ausgangsspannung (2,5V ± 0,625V)
Vref: Referenzspannung (2,5V)
5.2.2. Signalverarbeitung und Berechnung des Stroms¶
Der Sensor liefert ein analoges Spannungssignal, das propotional zum Strom ist die Umrechung erfolgt nach folgender Formel:
I: Gemessener Strom(A)
Vout: Sensorspannung (V)
Vref. Referenzspannung, meist 2,5V (Nullpunkt)
5.2.3. Pin Vout¶
Vout ist die Spannung, die über die der Sensor den gemessenen Strom ausgibt. Die Spannung bewegt sich dabei im Bereich ± 0,625V um die Referenzspannung. Die maximale Spannung liegt dementsprechend bei 3,125V, die minimale Spannung hingegen bei 1,875V. Geht man von einer Messgenauigkeit der Spannung von 1mV aus, so ergibt sich eine Messgenauigkeit des Stroms von
5.2.4. Pin Vref¶
Vref ist die Referenzspannung des Sensors. Diese Spannung legt den Nullpunkt der Messung fest.
Vref kann also theoretisch ignoriert und der Strom mit den vorgegebenen 2,50V berechnet werden. Für eine genauere Messung haben wir uns jedoch dazu entschieden, Vref zu messen und in die Berechnung einzubeziehen. So wird die Messung nicht durch Schwankungen der Versorgungsspannung beeinflusst.
Der Sensor kann Ströme in beiden Richtungen messen. Die Spannung an Vout steigt entsprechend bei positiven Strömen und fällt bei negativen Strömen.
5.2.5. Berechnung der elektrischen Leisung¶
Die Leistung wird über die Gleichung
berechnet, wobei U die gemessene Spannung und I der berechnete Strom ist.
5.3. Durchführung¶
5.3.1. Hardware¶
Unser bisheriger Aufbau, bestehend aus einem Raspberry Pi Zero 2W und einem ADS1115-ADC wurde um den HSTS023R Hall-Effekt-Stromsensor erweitert. Der Schaltplan wurde entsprechend erweitert, wie auf folgender Abbildung zu sehen ist:
Der entsprechende Hardwareaufbau sieht in der Realität wie folgt aus:
Außerdem wurde ein Verbraucher angeschlossen, um den Strom messen zu können.
5.3.2. Software¶
5.3.2.1. Anpassung Datenbank¶
Der erste Schritt war die Anpassung der TimescaleDB. Die Tabelle wurde um eine Spalte current erweitert, die den gemessenen Strom in Ampere speichert. Die Tabelle sieht nun wie folgt aus:
CREATE TABLE IF NOT EXISTS
measurements_5
(
id SERIAL,
timestamp TIMESTAMPTZ NOT NULL,
voltage FLOAT NOT NULL DEFAULT 0,
current FLOAT NOT NULL DEFAULT 0,
PRIMARY KEY (id, timestamp)
);
5.3.2.2. Anpassung Skript¶
Um die Übersichtlichkeit der Skriptausgaben zu erhöhen, wurden alle Ausgaben um ein \r (Carriage Return) ergänzt. So wird die Ausgabe in der Konsole immer auf der gleichen Zeile aktualisiert und nicht mit jeder Messung eine neue Zeile hinzugefügt. Die Ausgabe wurde außerdem farblich angepasst.
Die Messung der Spannung wurde vom vorherigen Skript übernommen. Zusätzlich wurden Methoden zur Messung der Stromstärke implementiert. Die Berechnung des Stroms erfolgt dabei über die oben genannte Formel, während die Messung von Vout und Vref analog zur Spannungsmessung der Batterie funktioniert.
Eine wichtige Funktion ist die automatische Kalibrierung des Sensors. Diese wird einmalig beim Start des Skripts durchgeführt. Hierbei geht das Skript davon aus, dass zu Beginn keine Leistung fließt. Es wird eine eine Messung des Stroms durchgeführt und dieser Wert global als Referenz gespeichert. Alle folgenden Messungen werden anschließend mit diesem Referenzwert verrechnet.
5.3.2.3. Anpassung Grafana Dashboard¶
Wie auch im vorherigen Projekt nutzten wir Grafana für die Visualisierung der Messungen. Das bestehende Dashboard wurde neu aufgebaut, um neben der Spannung auch den Strom und die Leistung abzubilden. Die Leistung konnte direkt in der Abfrage berechnet werden, weshalb eine Speicherung in der Datenbank nicht von Nöten war.
5.3.3. Praktischer Test¶
Das Projekt wurde entsprechend der oben genannten Schritte umgesetzt und anschließend getestet. Hierfür nutzten wir eine 7Ah 12V Bleibatterie, die zuvor vollständig aufgeladen wurde. Der Verbrauch lag bei unserem Test zwischen 3-5 A. Es wurde ein kompletter Entladevorgang gemessen. Über Grafana konnten die Messungen live verfolgt werden:
Folgendes Video zeigt die Messung der Spannung und das Verhalten bei Anschluss des Verbrauchers: