Von Türkçe mit KI übersetzt ·
Bei den meisten dieser Steckdosen steckt ein HLW8012 oder dessen Klon BL0937, 8 Beine, und die Pins, die du beschreibst, passen genau. Ich habe in der Gemeinde in Wasserpumpen-Schaltschränken dieselben Chipmodule verwendet, so funktioniert es:
- CF (dein Pin 5): Impulsausgang, dessen Frequenz proportional zur Wirkleistung ist.
- CF1 (Pin 4): je nach SEL-Pin ein Impuls proportional zu entweder Strom oder Spannung.
- SEL (Pin 6): Auswahlpin vom Logikboard zum Chip. Beim HLW8012 ist SEL=1 Strom, beim BL0937 umgekehrt; wenn man das verwechselt, kommen unsinnige Werte heraus.
Auslesen ist einfach: Beide Pins an einen Interrupt anschließen und die Impulse in einem 1-Sekunden-Fenster zählen. Für die Leistung grob:
volatile uint32_t cfPulses = 0;
void IRAM_ATTR onCF() { cfPulses++; }
// setup:
attachInterrupt(digitalPinToInterrupt(PIN_CF), onCF, RISING);
// every second:
noInterrupts(); uint32_t n = cfPulses; cfPulses = 0; interrupts();
float power_w = n * powerFactor; // kalibrasyonla bulunacak
energy_wh += power_w / 3600.0;
Den powerFactor-Wert ermittelst du mit einer bekannten Last: Einen 100-W-Heizlüfter oder eine Glühlampe anschließen und die gezählten Impulse durch die reale Leistung teilen. Für die Spannung dasselbe, nur SEL ändern und CF1 verwenden.
Sicherheit: Beim Flashen des Codes die Steckdose vom Netz trennen, den ESP32-C3 per USB programmieren, dann abstecken und wieder einstecken. USB anzuschließen während sie am Netz hängt bedeutet, deinen Computer ans Netz zu hängen. Die Kalibrierung über Wi-Fi mit Log-Ansicht durchführen.
Sende an Hermetry einen energy_wh-Zähler, der zusammen mit power_w steigt; den täglichen Verbrauch später aus dem Zähler zu holen ist deutlich sauberer.
Bu prizlerin çoğunda HLW8012 ya da onun kopyası BL0937 var, 8 bacak ve tarif ettiğin pinler tam uyuyor. Ben belediyede su pompası panolarında aynı entegreli modüller kullandım, şöyle çalışıyor:
- CF (senin 5. pin): frekansı aktif güçle orantılı darbe çıkışı.
- CF1 (4. pin): SEL pinine göre ya akım ya gerilimle orantılı darbe.
- SEL (6. pin): lojik karttan entegreye giden seçim pini. HLW8012’de SEL=1 akım, BL0937’de tersi, bunu karıştırınca değerler saçma çıkıyor.
Okuması kolay: iki pini kesmeye bağla, 1 saniyelik pencerede darbe say. Güç için kabaca:
volatile uint32_t cfPulses = 0;
void IRAM_ATTR onCF() { cfPulses++; }
// setup:
attachInterrupt(digitalPinToInterrupt(PIN_CF), onCF, RISING);
// her saniye:
noInterrupts(); uint32_t n = cfPulses; cfPulses = 0; interrupts();
float power_w = n * powerFactor; // kalibrasyonla bulunacak
energy_wh += power_w / 3600.0;
powerFactor değerini bilinen bir yükle bul: 100 W’lık bir ısıtıcı ya da akkor ampul tak, sayılan darbeyi gerçek güce böl. Gerilim için de aynısını SEL’i değiştirip CF1’den yap.
Güvenlik: kodu yüklerken prizi şebekeden çek, ESP32-C3’ü USB ile programla, sonra kapat ve tak. USB bağlıyken şebekeye takmak, bilgisayarını şebekeye bağlamak demek. Kalibrasyonu da Wi-Fi üzerinden log izleyerek yap.
Hermetry’ye power_w ile birlikte artan bir energy_wh sayacı gönder, sonradan günlük tüketimi sayaçtan almak çok daha temiz oluyor.

