Herzlich Willkommen auf der Homepage von Sven Jordan! Freitag, 29. März 2024, 06:55

Easymeter mit Raspberry Pi auslesen

Die Idee ist, einen intelligenten Stromzähler vom Typ EasyMeter Q3D über die optische D0-Schnittstelle mit einem Raspberry Pi Model B auszulesen.

Vorbereitung der Software auf dem Raspberry Pi

Nach der Installation des Betriebssystems Raspbian wird die UART-Schnittstelle standardmäßig verwendet, um die Konsolenausgabe auszugeben und ein Login über die UART-Schnittstelle zu ermöglichen. Das müssen wir dem Betriebssystem zunächst abgewöhnen, damit wir die Schnittstelle nach unserem eigenen Geschmack nutzen können:

Die Datei /boot/cmdline.txt öffnen und
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
in
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
ändern.

Dann die Datei /etc/inittab öffnen und die Zeile
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
mit # auskommentieren:
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

Danach ist ein Reboot erforderlich.

Anschluss des Infrarot-Empfängers an den Raspberry Pi

Mit folgender einfacher Schaltung konnte ich das Infrarot-Signal des EasyMeter auf der UART-Schnittstelle des Raspberry Pi empfangen:


(Gegebenenfalls muss man aufgrund von Bauteil-Toleranzen mit den beiden Widerstandswerten etwas variieren. Ein Besucher hat mir geschrieben, dass er statt der 470k/100k in seiner Schaltung 47k/10k verwendet hat. Ein anderer Besucher hat statt der 470k bei sich 180k verwendet, aber auch abweichende Transistoren. Am Besten ist es, wenn man sich das Ausgangssignal mit einem Oszilloskop anschauen kann. Es sollte einem Rechtecksignal möglichst nahe kommen.)

Anzeigen der Daten

Nachdem der Phototransistor entsprechend am Raspberry Pi angeschlossen und auf die Infrarot-LED an der Oberseite des EasyMeter ausgerichtet wurde, schauen wir, ob wir die Daten empfangen können.

Zunächst müssen die Parameter der Schnittstelle an die Eigenheiten des EasyMeter angepasst werden (9600, 7E1). Dazu dient der Befehl:
stty -F /dev/ttyAMA0 9600 evenp inlcr

Mit folgendem Befehl schauen wir, welche Daten so empfangen werden:
cat /dev/ttyAMA0

Alle 2 Sekunden sollte ein Text in der Art wie auf dem folgenden Bild ausgegegeben werden:



Wie geht es weiter?

Die nächsten Schritte sind das Mitschreiben der Werte und eine hübsche Darstellung auf einer Webseite des Raspberry Pi.

Mal sehen, wann ich dazu komme...

© Sven Jordan Letzte Änderung: 01.10.2019, 08:16 1 Aufruf heute Druckansicht beenden