Forum: Mikrocontroller und Digitale Elektronik DTZ541 mMe Datenlogger mit ESP (WEB-Sicht)


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Peter R. (peter_r689)


Angehängte Dateien:

Lesenswert?

Neues Projekt "Wir bleiben Zuhause" Stromzähler DTZ-541 auslesen.

Ich habe mit ein paar Bauteilen einen Datenlogger gebaut. Das ist noch 
eine Prototyp-Version 0.1
Mit diesen Logger lese ich die Daten aus meinem neuen Stromzähler aus. 
Genutzt wird die Optoelektronische Schnittstelle.
Bauelemente: 1 Fototransistor (den habe ich aus einer IR-Lichtschranke 
ausgebaut, weil ich keinen separaten Fototransistor hatte. Ich werde mir 
noch welche zum Testen bestellen.)
ein paar Widerstände, Kondensatoren, Kleinteile und einen ESP8266.
Funktion:
- der ESP empfängt die SML codierten Daten des Zählers und decodiert 
diese
- im ESP werden die Daten decodiert und intern gespeichert
- mit WEB-Browser kann man die Daten auslesen
- und werden alle 15 min an meinen Raspberry PI gesendet
- dieser speichert die Daten in einer DBase
- und per PHP kann ich die Daten auslesen

Das Projekt soll als eine Anregung fungieren. Es lässt sich auch auf 
andere Zählertypen erweitern. Ich kann aber nur mit diesen Typen testen.

Wer Interesse hat, hier der erste Ansatz dazu (Prototype V 0.1)

: Bearbeitet durch User
Beitrag #6490328 wurde vom Autor gelöscht.
von Peter R. (peter_r689)


Angehängte Dateien:

Lesenswert?

Hallo Guys,

ich habe noch ein paar kleine Änderungen vorgenommen.
- Schaltplan korrigiert
- momentane Leistung ergänzt
- Programm von alten Kommentaren bereinigt (haben sich durch copy and
paste eingeschlichen)
- die auseinandergebaute Lichtschranke war TCST2000

Bugs habe ich noch nicht gefunden, aufgrund stabiler Funktion seit
mehreren Tagen.
Übrigens, zur Einrichtung des WLANs habe ich die Routinen von tzapu
genutzt. Bei der ersten Einrichtung kann man damit die WLAN-Daten
eingeben. Diese brauchen nicht im Programm hinterlegt werden. Im
Programm muss derzeit noch die Zieladresse eingegeben werden. Bei mir
ist das 192.168.10.32

Also alpha Version 0.2

: Bearbeitet durch User
von Nullblicker (Gast)


Lesenswert?

Schönes Projekt.

Peter R. schrieb:
> - mit WEB-Browser kann man die Daten auslesen

Bin kein HTML-Profi aber ich denke dein Code erzeugt in einem Browser 
eine Ausgabe gemäß Bild1.png

Mich würde das Programm interessieren, welches die WEB_show.png ausgabe 
erzeugt.

Beitrag #6490379 wurde vom Autor gelöscht.
von Peter R. (peter_r689)


Angehängte Dateien:

Lesenswert?

Nullblicker schrieb:
> Mich würde das Programm interessieren, welches die WEB_show.png ausgabe
> erzeugt.

Die Ausgabe des Diagramms ist nicht ganz trivial.

Voraussetzung ist ein funktionierender WEB-Server mit eingerichteter und
funktionirender dbase und PHP. Bei mir ist es ein raspberry pi.
Anbei die PHP script's.

von Peter R. (peter_r689)


Angehängte Dateien:

Lesenswert?

Sorry,
ich habe noch das Layout und Bilder vergessen anzuhängen.

von Nullblicker (Gast)


Lesenswert?

Danke!

Peter R. schrieb:
> Die Ausgabe des Diagramms ist nicht ganz trivial.

Habe ich mir schon gedacht ;-)

Beitrag #6507206 wurde vom Autor gelöscht.
von Peter R. (peter_r689)


Angehängte Dateien:

Lesenswert?

Hallo Guys,

ich habe einige Ergänzungen hinzugefügt. Wie oben geschrieben, neuen 
Fototransistor getestet.

- als Fototransistor kann jetzt der SFH 309FA genutzt werden (Schaltplan 
angepasst)
- CRC16-CCITT zur Daten-Verifizierung einprogrammiert (hat lange 
gedauert, bis der richtige Wert kalkuliert wurde) CRC16 wird bereits im 
Datenstrom gebildet und ist somit am Protokollende fertig berechnet
- Anzeige der Manufractur und Zähler-ID ergänzt
- Programm-Code etwas umorganisiert
- Programm-Kommentare ergänzt / korrigiert
- Protokoll-Zähler und Fehlerzähler ergänzt (ich war selber über das 
Ergebnis überrascht)

Prototype auf Version 0.9 gesetzt

von Oliver M. (smeti)


Lesenswert?

Super Projekt :-)
Ich habe einen SFH 309 FA-4 Phototransistor direkt am Port in Gebrauch 
und wenn der Richtig ausgerichtet ist kommen keine Error mehr.
Leider mag mich der NTPClient nicht und macht beim Kompilieren Fehler
Welche Version wird benötigt bzw welche Bibliothek?
Danke

von Oliver M. (smeti)


Lesenswert?

Fehler gefunden:
Diese Zeile macht Ärger:
    timestamp = timeClient.getTimestamp() + (MESZ * 3600); // 3600 means 
add 1 hour for summer-time

die Zeile ersetzen mit:
    timestamp = timeClient.getEpochTime();
Es funktioniert die ganz normale NTPclient Library von Fabrice Weinberg. 
Habe
Version 3.2.0 ausprobiert

von Peter R. (peter_r689)


Lesenswert?

Ohh, sorry. Stimmt, ich hatte vergessen zu erwähnen, dass ich in dem 
NTPclient die Funktion ergänzt hatte... sorry.

Weiterhin habe ich das ganze Projekt weitergemacht und hier hinterlegt:
www.meinzaehler.info
https://infozaehler.de

Nur der Programcode steht da nicht mehr.

Gruß Peter

von Peter R. (peter_r689)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

hier die aktuelle Softwareversion 3.3 zum Datenlogger für Stromzähler.
Update:
- LittleFS eingebaut, um individuelle Einstellungsdaten zu speichern
- bis zu 3 Stunden Protokollzwischenspeicherung, wenn die Verbindung zum 
Server unterbrochen ist (Sendeinterval = 15 Minuten)
- Unterstützung mehrerer Zählertypen mit automatischer Erkennung(also 
Umsetzung des Standards)
- getestet mit Holley, ISKRA MT941 und Logarex LK13BE
- Fehler mit der Zeitsynchronisation behoben.
- WEB-Oberfläche überarbeitet
- inFluxDb (Grafana) und PHP-script (mySQL) Datenbankunterstützung
- und einige Verbesserungen / Ergänzungen

Um das Dateisystem zu nutzen, ist es erforderlich in den Tools das 
littleFS einzubinden. Für die Übergabe in ein PHP script habe ich eine 
einfache Variante hier mit angefügt. Die sonst notwendigen PHP's sind 
hier weiter oben hinterlegt.
Allerdings ist hier keine Datenverschlüsselung eingebaut. Die Daten 
gehen per POST (nicht GET) übers Netz zum Server. Steht der Server im 
eigenen Netz hinterm Router, ist das nicht weiter tragisch.
Detaillierte Informationen könnt ihr euch hier erlesen:
https://infozaehler.de oder meinzaehler.info

Viel Glück beim Update.

: Bearbeitet durch User
von Peter R. (peter_r689)


Lesenswert?

Hallo,

Wichtiger Hinweis:
Das hier im Beitrag vorgestellte Programm funktioniert mit dem DTZ541 
nur bis Baujahr 2019, bzw. Version 1.2
Bei neueren DTZ541 mit der Version 2.0 wird an der Schnittstelle keine 
Spannungen, Ströme und Frequenz mehr ausgegeben. Auch hat sich das 
Protokoll geändert. Der Zähler muss auf "Info on" gestellt, damit mit 
den Ergänzungen hier, wenigstens Zählerstände Auszulesen.
Aber Achtung-> die Angaben gelten nur für DTZ541 Version 2.0 !
In der Funktion ändern:
//****************** drop values until target value *******************
int dropValues(int actPointer, int drops){
  int d=0;
  if(drops > 0){
    for(int i=0; i<drops;i++){
      d=dataDTZ[actPointer];    // get value type and length
      if (d == 0x72) actPointer++; // neu für DTZ541
      else {
        d=d&0x0f;                 // extract length
        actPointer += d;          // add length to drop value
      }
    }
  }
  return actPointer;
}
und die Zeilen ändern (function readValuesOBIS()):
  DecodeOneValue(SearchOBIS(OBISoutGrid,7),6); FromGrid1 = singleValue; 
//7 bytes check and drop 7 values until target
  DecodeOneValue(SearchOBIS(OBISintoGrid,7),6); IntoGrid1 = singleValue;

Tja... immer wieder Überraschungen...

von Peter R. (peter_r689)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
ich habe das Programm an diverse Zählertypen angepasst.
Getestet mit:
Holley BJ 2019
Holley BJ 2020 +
EMH ED300L
ISKRA MT691
APATOR Norax
Logarex LK13

Neu: Anpassung des Scale-Faktors für nicht freigeschaltete Zähler, die 
nur Werte in kWh liefern (nach Freischaltung Werte in Wh).
Ausblendung von Spannungs- und Stromwerten, wenn keine geliefert werden.
Zeitsyncronisation nach Spannungsausfall -> jeder Wert vor 1.1.2021 wird 
aktualisiert.
Ergänzung von Zweitarifzähler, allerdings nur bei der Datenübertragung 
(1.8.0, 1.8.1 und 1.8.2)
Für WEMOS oder ähnliche Module muss der Serial.swap() im setup activiert 
werden.

Allerdings wieder alles ohne Datenverschüsselung... sorry

mfg
infozaehler.de

: Bearbeitet durch User
von Peter R. (peter_r689)


Lesenswert?

Hallo zusammen,

hier geht es weiter und es sind die aktuellen Sketche hinterlegt.
Beitrag "Digitale Stromzähler auslesen und in DB speichern"

Gruß infozaehler.de

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.