Idee: Wattmeter mit ESP8266 und ADE7953

Begonnen von Dr. Boris Neubert, 22 August 2016, 19:21:08

Vorheriges Thema - Nächstes Thema

Pf@nne

Moin Boris,

Zitat von: Dr. Boris Neubert am 01 Januar 2017, 17:12:09
Wenn ich allerdings danach versuche, mich per Browser mit 192.168.4.1 zu verbinden, bekomme ich keine Webseite angezeigt. Auch wenn ich schnell genug bin, bevor der nächste Neustart-Zyklus beginnt.

Muss ich noch was spezielles beachten?

Hmmm...eigentlich bleibt der AP dauerhaft offen.
Erst wenn du dein Netz im WEB-IF angegeben hast und einen Neustart durchgeführt hast sollte sollte der AP zu gemacht werden.
Was sagt er denn über das Terminal beim Booten?
Sieht aus als ob er immer durch einen Reset läuft und neu bootet?

Was vielleicht noch wichtig ist, nach dem seriellen Flashen muss immer ein Hardreset durchgeführt werden.
Entweder durch die Wegnahme der Hilfsspannung oder durch drücken der Resettaste.

Gruß
Marco
FHEM auf: DS415+ (Master), Raspberry Pi 2

Dr. Boris Neubert

Hallo,

habe dem NodeMCU den Strom schon weggenommen. Auf der seriellen Konsole kommt folgendes in einer Endlosschleife. Er versucht sich, mit dem nicht konfigurierten WiFi zu verbinden und druckt derweil ein paar Punkte. Dann geht es ab "AccessPoint start" wieder los. Der ADE7953 ist noch nicht angebunden.

Viele Grüße
Boris

ccessPoint start
AP IP address: 192.168.4.1
Start WEB-Server
HTTP server started


Config:
########################################
WEBcfg Username:  ESPuser
WEBcfg Password:  ESPpass
----------------------------------------
AP SSID:          ESP8266_799835
AP Password:      ESP8266config
----------------------------------------
WiFi SSID:       
WiFi Password:   
DHCP IP:         
----------------------------------------
MQTT-Server IP:   
MQTT-Server Port: 1883
MQTT-DeviceName:  ESP8266_799835
----------------------------------------
Update-Server IP:
FilePath:         
########################################
init running...................................................ADE7953.init TIMEOUT!!!!

Soft WDT reset

ctx: cont
sp: 3fff5160 end: 3fff5360 offset: 01b0

>>>stack>>>
3fff5310:  3ffeace0 3fff17c8 3fff4270 4020811d 
3fff5320:  00000000 00000000 00000000 3fff432c 
3fff5330:  3fffdad0 00000000 3fff17c8 40209a38 
3fff5340:  feefeffe feefeffe 3fff4324 40214580 
3fff5350:  feefeffe feefeffe 3fff4340 40100718 
<<<stack<<<

ets Jan  8 2013,rst cause:2, boot mode:(3,7)



load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v3de0c112
~ld
   �C�H��������������������������������������������j
                                                    Flash real id:   001640EF
Flash real size: 4194304
Flash ide  size: 4194304
Flash ide speed: 40000000
Flash ide mode:  QIO
Flash Chip configuration ok.
============================================

read config

mounting FS...
mounted file system
reading config file
opened config file
json success
fsMount OK and File exist

mounting FS...for MyFile
mounted file system
MyFile does not exist

Connecting WiFi to:
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Pf@nne

Hänge den ADE mal drann, wenn der nicht erkannt wird geht es nicht weiter...
FHEM auf: DS415+ (Master), Raspberry Pi 2

Pf@nne

Ich habe den ESP und den ADE als Einheit gesehen.


//ADE7953 POWER-UP PROCEDURE
  Serial.print("init running");
  while (digitalRead(ADE7953_IRQ)){
    timeout++;
    Serial.print(".");
    if (timeout > 50){
      check = false;
      Serial.println("ADE7953.init TIMEOUT!!!!");
      while (1){}
    }
  }
  Serial.println("");
  Serial.println("ADE7953.init OK");
FHEM auf: DS415+ (Master), Raspberry Pi 2

Dr. Boris Neubert

Okay, Danke. Habe die Initialisierung kurzerhand auskommentiert und nun geht es.

Nächstes Wochenende geht es los. Habe auch schon ein ~Netzteil aus der Grabbelkiste mit Anschluss fürs Breadboard versehen.

Ich wünsche Dir noch ein frohes neues Jahr!

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Pf@nne

Wünsche ich dir auch!

Prima wenn es erstmal läuft, OTA sollte auch laufen.
Ich habe heute mal ein paar CTs zum Testen bestellt.
Wie gesagt, momentan sind nur Grundfunktionen implementiert.
Um qualifizierte Messwerte habe ich mich noch nicht gekümmert.

Gruß
Marco
FHEM auf: DS415+ (Master), Raspberry Pi 2

Dr. Boris Neubert

Hallo,

habe ich mich heute intensiv mit der Sache beschäftigt.

Hier zunächst der Teil, der funktioniert, nämlich die Anbindung an FHEM.

Installation von Mosquitto und Konfiguration der Firmware des Prototypen, so dass die Werte über MQTT ausgeliefert werden. Konfiguration in FHEM:


define mqtt MQTT sauron:1883 <username> <password>

define ade MQTT_DEVICE
attr ade subscribeReading_V_RMS ESP8266_xxxxxx/ADE7953/values/V_RMS
attr ade subscribeReading_IA_RMS ESP8266_xxxxxx/ADE7953/values/IA_RMS
attr ade subscribeReading_IB_RMS ESP8266_xxxxxx/ADE7953/values/IB_RMS


ESP8266_xxxxxx ist unter MQTT | Devicename im Webinterface der Firmware konfiguriert. <username> und <password> wurden mit mosquitto_password gesetzt.

Unspektakuläres Bild anbei.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dr. Boris Neubert

Hallo,

mir gelingt es nicht, dass die angelegte Spannung im Bereich von ca. 180 mV (effektiv) registriert und per MQTT versendet wird. In der seriellen Konsole läuft immer nur folgendes durch:

incoming subscribe: ESP8266_xxxxxx/ADE7953/values/V_RMS | 0.00
incoming subscribe: ESP8266_xxxxxx/ADE7953/values/IA_RMS | 0.00
incoming subscribe: ESP8266_xxxxxx/ADE7953/values/IB_RMS | 0.00


ESP8266-Modul (NodeMCU-Klon) und Prototyp-Board sind verbunden wie in der handschriftlichen Skizze aus einem der vorigen Beiträge verlangt, wobei ich mir die beiden 2k-Pullups erstmal gespart habe.

Die Spannung erzeuge ich aus einem 9VAC-Steckernetzteil, das eine etwas eckige Wechselspannung erzeugt (schön für die spätere Wellenformanalyse). Ich leite daraus

  • zum einen mit einem Spannungsteiler aus 22k-Festwiderstand und 1k-Poti eine Spannung mit ca. 540 mVss (effektiv 184 mV) ab (gelber Verlauf im Screenshot vom Oszi) und
  • zum anderen mit einem Spannungsteiler aus einem 100k- und einem 1,5k-Festwiderstand eine Spannung von ca. 500 mVss (effektiv 170 mV) ab (türkiser Verlauf im Screenshot vom Oszi) (leider sind mir die Trimmer in der richtigen Größenordnung ausgegangen, um beides einstellbar zu machen).
Die Idee ist, die Festspannung an VN/VP zu legen und die per Poti einstellbare Spannung an IAN/IAP.

Wenn ich die "gelbe" Spannung an VN/VP (oder IAN/IAP) lege, verschmiert das Oszi-Bild, aber die Ausgabe von V_RMS bzw. IA_RMS der Firmware ändert sich nicht.

Woran könnte das liegen? Überträgt der Bus nicht richtig wegen der fehlenden Pullups, muss ich noch die Kalibrierungsregister auf irgendwelche sinnvollen Werte setzen, oder was könnte da los sein?

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dr. Boris Neubert

Hallo,

nun zur Frage der Software. Die Firmware sollte m.E. noch folgendes können:

  • Kalibrierung über die Weboberfläche (Eingabe der Parameter, Kalibrierungsvorgehen ist hier beschrieben)
  • Meldung sämtlicher relevanter Größen (Wirkleistung, Scheinleistung, cosphi, Energie, Frequenz, Spannungs- und Stromspitzen)
  • Auslieferung der Wellenform on-demand

Soll ich an der Firmware weitermachen (sobald ich was messen kann)?

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Pf@nne

Auf die Schnelle.....

Die I2C-PullUps (2-5k) müssen rein.
Was sagt die Debugausgabe, ist der ADE Initialisiert?
Ich baue das morgen parallel nochmal auf, die Messwerte gingen bei mir ohne Probleme.

Die Configuration über WebIF halte ich nicht zwingend für erforderlich.
Alle Register können per MQTT geändert werden, hier hilft mir der MQTT-Spy
https://github.com/eclipse/paho.mqtt-spy/wiki/Downloads
Das erscheint mir komfortabler als ein WebIF.

ZitatSoll ich an der Firmware weitermachen (sobald ich was messen kann)?
Könnte ich machen, kleine Änderungen würde ich auch machen.
Ich überarbeite die FW gerade. Die MQTT-Topics sollen in einen json-File im SPIFFS ausgelagert werden.
So kann man die Topics später noch ändern.

Hast du hier schonmal geschaut?
https://github.com/Pfannex/ADE7953_Breakoutboard/wiki

Die anderen Messwerte kann ich morgen nachpflegen.

Sonst auch gerne per E-Mail.... pf@nne-mail.de
FHEM auf: DS415+ (Master), Raspberry Pi 2

Dr. Boris Neubert

Zitat von: Pf@nne am 07 Januar 2017, 21:56:37
Die I2C-PullUps (2-5k) müssen rein.
Was sagt die Debugausgabe, ist der ADE Initialisiert?

Danke!

Ja, ist initialisiert.

Mache morgen damit weiter.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

sash.sc

Guten morgen zusammen.

Hab da mal ne Frage.
Die Daten werden ja per mqtt übermittelt.
Baut die Firmware auf espeasy auf, oder ist das was komplett eigenständiges?

Hintergrund der Frage ist, ich benutze das espeasy Modul von dev0.
Jetzt wollte ich nur fragen, ob der Empfang damit auch möglich ist oder nur mqtt?

Gruß Sascha
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Dr. Boris Neubert

Zitat von: sash.sc am 08 Januar 2017, 09:07:37
Baut die Firmware auf espeasy auf, oder ist das was komplett eigenständiges?
Hintergrund der Frage ist, ich benutze das espeasy Modul von dev0.
Jetzt wollte ich nur fragen, ob der Empfang damit auch möglich ist oder nur mqtt?

Die Firmware ist was eigenständiges. Von den benötigten Features (AP, Konfiguration WiFi/MQTT, OTA) aber gleichwertig.

Die Übertragung erfolgt per MQTT.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dr. Boris Neubert

Zitat von: Pf@nne am 07 Januar 2017, 21:56:37
Die I2C-PullUps (2-5k) müssen rein.
Was sagt die Debugausgabe, ist der ADE Initialisiert?

2k4-Pullups drin, Busleitungen auf 10cm verkürzt. Dennoch leider kein von Null verschiedenes Ergebnis :-(

...
########################################
init running.................
ADE7953.init OK
###############################
Read from json
###############################

mounting FS...for ADE7953
mounted file system
ADE7953 does not exist
start Register settings
### MQTT has disconnected...
Connecting to MQTT-Broker: 192.168.31.8:1883
MQTT connected
incoming subscribe: ESP8266_799835/ADE7953/values/V_RMS | 0.00
incoming subscribe: ESP8266_799835/ADE7953/values/IA_RMS | 0.00
incoming subscribe: ESP8266_799835/ADE7953/values/IB_RMS | 0.00
...
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dr. Boris Neubert

Dank Pf@annes Hilfe klappt's jetzt bei mir. Ganz lieben Dank!

Woran lag's?
- man braucht die aktuelle Firmware
- man muss die JSON-Konfiguration in den ESP dazuladen (z.B. mit ESP8266FS als Plugin in der Arduino-IDE)
- man muss darauf achten, dass SCL/SDA richtig gesteckt sind (aus Platzgründen sind die Beschriftungen auf dem Breakoutboard etwas gegenüber den PINs verschoben)
- MQTT-Spy ist sehr hilfreich und die Konfiguration im Pfannex-Wiki beschrieben (Obwohl aus Java habe ich MQTT-Spy nur unter Windows zum laufen gebracht)

Der ADE7953 ist ein sehr sehr interessanter Chip und Pf@annes Firmware mit Konfiguration via MQTT ist der Hammer.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!