Ucuz Wi-Fi prizin içini açtım: lojik kart ile güç kartı arasındaki sinyaller ne?
Elimde 6 tane ucuz Wi-Fi priz var, kendi bulut uygulamalarıyla çalışıyor ve o uygulamadan kurtulmak istiyorum. Plan: Wi-Fi modülünü söküp yerine ESP32-C3 koymak, kendi firmware’imle hem röleyi sürmek hem de tüketimi Hermetry’ye göndermek.
Prizi açtım, iki kart var: üstte Wi-Fi modülünün olduğu küçük lojik kart, altta röle ve ölçüm entegresinin olduğu güç kartı. Aralarında 7 pinli bir header var. Fişten çekili halde, multimetre ile ölçebildiğim kadarıyla:
1 3V3 (güç kartından geliyor)
2 GND
3 REL lojik karttan çıkış, 3.3V = röle çekiyor
4 ? sürekli kare dalga, yük yokken çok yavaş
5 ? kare dalga, yükle birlikte hızlanıyor
6 ? lojik karttan çıkış, sabit
7 LED
4 ve 5 numaralı pinlerde frekans yükle değişiyor, sanırım ölçüm entegresinin çıkışları. Entegrenin üstündeki yazı silinmiş gibi, 8 bacaklı SOIC. Bu sinyalleri nasıl okumam lazım, ve fişe takılıyken osiloskop bağlayabilir miyim?
Fişe takılıyken osiloskop bağlama. Bu kartların çoğunda izolasyon yok, GND doğrudan şebekeye bağlı oluyor. Osiloskobun toprağı ile kısa devre yaparsın, hem prob gider hem sen.
Tamam, korktum biraz 🙂 Şimdiye kadar hep fişten çekili ölçtüm, kartı ayrı bir 3.3V ile besleyip baktım, frekans orada değişmiyor tabii yük olmadığı için.
Biz hastanede bu yoldan vazgeçtik, kalibrasyon sertifikası olan ölçüm prizleri aldık. Tüketim verisini ölçüm olarak raporlayacaksan bunu düşün. Hobi içinse tabii devam.
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.
BL0937 çıktı, SEL’i ters kullanıyormuşum, akım ile gerilimi yer değiştirmiş okuyordum, 230 V’u 0.8 A sanıyordu 🙂 100 W ısıtıcıyla kalibre ettim, prizin üstündeki 60 W ampulde 59.2 W okuyor. Programlarken artık prizi hiç takmıyorum, OTA ayarladım. Teşekkürler Oğuz.
- Bu konuyu yanıtlamak için giriş yapmış olmalısınız.
Sohbete katılın
Soru sormak ve yanıtlamak, yararlı gönderileri beğenmek ve sorununuzu çözen yanıtı işaretlemek için oturum açın. Her katkı puan ve seviye kazandırır.

