Forum: Mikrocontroller und Digitale Elektronik Netzfrequenz messen mit ESP82 oder ESP32


von Hans Markus G. (stromspannung)


Lesenswert?

Hallo,
ich möchte mit einem ESP8266 die Netzfrequenz messen und per MQTT 
publishen.
Die Hardware finde ich noch gar nicht so schwer zusammenzustöpseln.

DAzu hätte ich mich der Idee von hier bedient:
https://gitlab.com/jm_wtal/mains-frequency-measure/-/blob/master/Circuit%20%26%20Board/Schaltplan.png

Optokoppler und Smitttrigger oben links im Schematic.
Leider fehlt mir das Wissen, wie ich die Frequenzanalyse mit dem ESP8266 
machen kann.
Gibt es da eine fertige Bibliothek oder hat mir jemand ein Beispiel?
Wenns nicht viel aufwand ist evtl auch einen fertigen Codeschnipsel?

: Bearbeitet durch User
von Bauform B. (bauformb)


Lesenswert?

Schau dir mal dieses Projekt an, da gibt's C-Code und ein PDF mit 
Beschreibung inkl. Flussdiagramm:

https://gitlab.com/jm_wtal/mains-frequency-measure/

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Hans Markus G. schrieb:
> Smitttrigger
Otto schrieb sich zum Nachnamen "Schmitt":
- https://de.wikipedia.org/wiki/Schmitt-Trigger

Hans Markus G. schrieb:
> Leider fehlt mir das Wissen, wie ich die Frequenzanalyse mit dem ESP8266
> machen kann.
Du zählst einfach die Nulldurchgänge und vergleichst sie mit einer 
genauen Uhrzeit. Du musst das natürlich über längere Zeit machen, um den 
Jitter, den dir das OS reinbringt, rauszumitteln.

Denn wenn du die Netzfrequenz auf ein paar Nachkommastellen genau 
ermitteln willst, dann brauchst du einen guten und stabilen 
Quarzoszillator, der am besten noch temperaturgeregelt ist. Den 
vergleichst du dann und wann mit der Atomzeit und berechnest noch deinen 
Korrekturfaktor.

> ich möchte mit einem ESP8266 die Netzfrequenz messen und per MQTT
> publishen.
Ist im Prinzip unnötig, weil du sehr genaue Echtzeitinformationen dazu 
im Netz holen kannst:
- https://www.netzfrequenzmessung.de/
- https://www.netzfrequenz.info/aktuelle-netzfrequenz-full

Dagegen kannst du ja dann mal deine Messwerte vergleichen. Wenn du 
andere Werte bekommst, bist du noch nicht fertig.

Bauform B. schrieb:
> Schau dir mal dieses Projekt an
Da macht die Messung dann auch ein dedizierter µC, der sich nicht mit 
dem Jitter eines OS herumplagen muss.

: Bearbeitet durch Moderator
von Motopick (motopick)


Lesenswert?

Wenn man die Zeit mehrerer Perioden ermittelt, und davon den
Kehrwert nimmt, hat man auf jeden Fall viele Nachkommastellen.

> fehlt mir das Wissen, wie ich die Frequenzanalyse
Was du von der scheinbaren Aufloesung hast, weisst du also nicht.

> eine fertige Bibliothek
wird dir auch nicht dieses Wissen vermitteln.

Warum willst du also ueberhaupt
> die Netzfrequenz messen

Hast du eine Hammondorgel oder einen Plattenspieler die dazu
synchron laufen?

von Benedikt L. (Firma: Dem Ben seine Leiche) (dembenseineleiche) Flattr this


Lesenswert?

Es gibt eine Menge Kommunity-Projekte, Flugzeugsdaten, Blitzeermittlung, 
Schiffepositionen sogar das Wetter!
Aber es gibt kein Projekt für die Ermittlung der Netzfrequenz in der 
Fläche. Ein modifizierter Zwischenstecker sollte doch da gute Dienste 
tun.

Aber, so läuft nichts. Wieso eigentlich?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Benedikt L. schrieb:
> Aber es gibt kein Projekt für die Ermittlung der Netzfrequenz in der
> Fläche.
Doch, dort:
- https://gridradar.net/de/wide-area-monitoring-system

> Wieso eigentlich?
Ganz einfach: weil es ein Netz ist und es keine Unterschiede in der 
Netzfrequenz gibt. Wenn das Netzt aufgetrennt wird, dann nur kurzzeitig 
und auch dann ändert sich die Frequenz in den Teilnetzen nicht 
großartig. Und da kannst du jetzt (auf dem europäischen Netz) noch 1000 
weitere Messpunkte hinzufügen, die werden dann einfach alle das selbe 
anzeigen. Ganz anders als beim Wetter oder bei Bodenerschütterungen oder 
Wasserständen.

: Bearbeitet durch Moderator
von Mi N. (msx)


Lesenswert?

Bauform B. schrieb:
> Schau dir mal dieses Projekt an, da gibt's C-Code und ein PDF mit
> Beschreibung inkl. Flussdiagramm:

Na ja, wenn es schon keiner der angefragten Controller sein soll, dann 
kann man auch ein fertiges Pico-Pi Board nehmen, eine .UF2-Datei 
aufspielen und sich die Daten per ser. Schnittstelle ausgeben und/oder 
auf LCD anzeigen lassen.
http://mino-elektronik.de/fmeter/fm_software.htm#bsp_RP2040

Kosten für fertige Schaltung < 5 Euro, Löten nur nach Bedarf notwendig.

von Rainer W. (rawi)


Lesenswert?

Lothar M. schrieb:
> Du zählst einfach die Nulldurchgänge und vergleichst sie mit einer
> genauen Uhrzeit. Du musst das natürlich über längere Zeit machen, um den
> Jitter, den dir das OS reinbringt, rauszumitteln.

Das kommt davon, wenn man ein für solche Messungen ungeeignetes System 
verwendet.
Ein Arduino mit einem AVR und passend konfigurierter Timer-HW ist für 
die reine Messaufgabe deutlich besser geeignet und ein paar MQTT-Brocken 
bringt der auch noch raus. Nicht jeder mickrige Sensor muss ins WLAN.

von Benedikt L. (Firma: Dem Ben seine Leiche) (dembenseineleiche) Flattr this


Lesenswert?

Lothar M. schrieb:
> Ganz einfach: weil es ein Netz ist und es keine Unterschiede in der
> Netzfrequenz gibt.

Na das musste mal einer so deutlich erklären das auch ich das schnallen 
kann. Macht ja auch Sinn überall die gleiche Frequenz zu haben.
Danke!

von Mario M. (thelonging)


Lesenswert?

Rainer W. schrieb:
> ungeeignetes System

Der ESP32 mit seinem MCPWM lacht über deinen Arduino.

von Mi N. (msx)


Lesenswert?

Mario M. schrieb:
> Der ESP32 mit seinem MCPWM lacht über deinen Arduino.

Dann zeigt dem TO doch passenden Code oder welche LIBs man sich 
zusammenklicken muß.

Hans Markus G. schrieb:
> Gibt es da eine fertige Bibliothek oder hat mir jemand ein Beispiel?
> Wenns nicht viel aufwand ist evtl auch einen fertigen Codeschnipsel?

von Rainer W. (rawi)


Lesenswert?

Mario M. schrieb:
> Der ESP32 mit seinem MCPWM lacht über deinen Arduino.

Und der AVR lacht über Leute, die lange zum Messen brauchen, weil das OS 
auf einem ESP32 zu einem Jitter in der Signalerfassung führt ;-)

von Peter D. (peda)


Lesenswert?

Hans Markus G. schrieb:
> DAzu hätte ich mich der Idee von hier bedient:
> 
https://gitlab.com/jm_wtal/mains-frequency-measure/-/blob/master/Circuit%20%26%20Board/Schaltplan.png

Für eine höhere Auflösung führt man die 50Hz aber besser auf den ICP1 
(=PB0) des völlig ausreichenden ATmega48.

von Rick (rick)


Lesenswert?

Hans Markus G. schrieb:
> DAzu hätte ich mich der Idee von hier bedient:
> 
https://gitlab.com/jm_wtal/mains-frequency-measure/-/blob/master/Circuit%20%26%20Board/Schaltplan.png
...
> Leider fehlt mir das Wissen, wie ich die Frequenzanalyse mit dem ESP8266
> machen kann.
Du hast Dir das Projekt nicht genau genug angeschaut. Dort kommen 
fertige Telegramme mit der gemessenen Frequenz raus.

Außerdem kannst Du dort die Netzspannung nicht direkt anklemmen, da muß 
ein Klingeltrafo dazwischen (was sowieso eine gute Idee ist).

Früher hat man übrigens nicht nach 'mains frequency measure' gesucht, 
sondern nach 'zero crossing detector'. Da wußte man aber auch noch, wie 
man die Zeit zwischen zwei Impulsen in eine Frequenz umrechnen kann...

von Motopick (motopick)


Lesenswert?

Ganz
> Früher
hat man einfach einen Zungenfrequenzmesser gekauft und war damit fertig.
Der brummte dann in Schalttafel vor sich hin, und zu Silvester/Neujahr
konnte man sich darueber freuen :), dass auch mal die Zunge fuer die
49.5 Hz etwas zu tun bekam.
Besitzer eines nicht so einfach stimmbaren Rhodespiano durften
sich dann ueber die schraegen Toene ihrer Hammondorgel freuen...

von Ralf K. (kurtx)


Lesenswert?

Die einzige technisch weiterführende Antwort bisher kam von
Peter D. (peda):
> ... die 50Hz aber besser auf den ICP1 ...

Die Netzfrequenz muss man zu ihrer Bestimmung nicht groß analysieren, 
sondern ihre Periodendauer per ICP mit einem 16-Bit Timer erfassen,
der ausreichend genau mit einem TCXO o.ä. getaktet wird.
ICP führt zu einer Erfassung, deren Genauigkeit nur durch die 
Timer-Auflösung und das Frequenznormal begrenzt ist. Danach braucht es 
nur noch Grundschul-Mathematik.

16-Bit-Timer mit ICP gibt es schon ab ATTiny24...

Bei mir sind es 12,8 MHz / 8 = 1,600000 MHz, die in 1/50 s den 
Zählerstand  um 32000 erhöhen. Über 10 Perioden (1/5 s) ist die 
Erfassung auf 50,000 Hz +/- 0,001 Hz genau, wenn die Taktfrequenz auf 20 
ppm genau ist.

von Werner (Gast)


Angehängte Dateien:

Lesenswert?

Hans Markus G. schrieb:

> ich möchte mit einem ESP8266 die Netzfrequenz messen.

Nöpp. Die Netzfrequenz wird nicht nachträglich von irgendwelchen 
bequarzten zweiten oder dritten 08-15 ESP gemessen, sondern wie die 
Uhrzeit ist sie einmalig dokumentiert vorgegeben - europaweit und 
zwangssynchron:

https://www.netzfrequenz.info/aktuelle-netzfrequenz-full

Eine gemütlichere Alternative ist der Kuhritt in der Schweiz, viel Spaß 
mit diesen Mädels ;)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Werner schrieb:
> https://www.netzfrequenz.info/aktuelle-netzfrequenz-full
„Es ist schon alles gesagt, nur noch nicht von allen“, sagte Karl 
Valentin in so einem Fall. War aber auch recht früh am Morgen...

von Hans Markus G. (stromspannung)


Angehängte Dateien:

Lesenswert?

Lothar M. schrieb:
>> Wieso eigentlich?
> Ganz einfach: weil es ein Netz ist und es keine Unterschiede in der
> Netzfrequenz gibt. Wenn das Netzt aufgetrennt wird, dann nur kurzzeitig
> und auch dann ändert sich die Frequenz in den Teilnetzen nicht
> großartig.

Das stimmt so nicht.
https://www.swissgrid.ch/de/home/operation/grid-data/current-data.html

von Hans Markus G. (stromspannung)


Lesenswert?

Noch ein link der Unterschiedliche Phasen und Frequenzen zeigt
https://www.netzfrequenzmessung.de/wam.htm

Edit: https://gridradar.net/charts/map/map.html

: Bearbeitet durch User
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.