Loyiha · Energiya · Monitoring
Uy yoqayotgan har vattni koʻrish
Elektr hisobi qancha ishlatganingizni aytadi; jonli monitor — qachon va nimaga. 100 A CT qisqichli PZEM-004T V3 butun uyni oʻlchaydi — kuchlanish, tok, quvvat, yigʻilgan kVt·soat — ESP32 esa buni divandan qaraladigan narx hisoblagichli dashboardga aylantiradi. Bulutsiz, obunasiz — maʼlumotlar uyda qoladi.
Qanday oʻlchanadi
PZEM-004T — tugallangan oʻlchov fronti: tarmoq kuchlanishini toʻgʻridan sempllaydi, tokni ochiladigan CT qisqich orqali (fazaga qisib qoʻydingiz — simlarni uzmasdan), aktiv quvvatni oʻzi hisoblaydi va ESP’ga UART orqali toza raqamlar beradi. Mikrokontroller xavfli analog signalga tegmaydi — shunchaki V, A, W, kVt·soat soʻraydi.
⚠ Yuqori kuchlanish tomoni qoidalari
PZEM’ning oʻlchov tomoni jonli 220 V tarmoqqa ulanadi — hurmat qiling: hammasi yopiq montaj qutisida, AC kirish 1 A predoxranitel orqali, barcha yerlar umumiy, CT qisqich strelkasi (S1→S2) tok yoʻnalishi boʻyicha. U tomonga tegishdan oldin — avtomatni oʻchiring. Tarmoq bilan ishlash sizniki boʻlmasa — elektrik qutini oʻn daqiqada yigʻadi: qiziq qismi past kuchlanish tomonida.
Dashboard — tarif kiradi, narx chiqadi
pzem004t preseti kerakli vidjetlarga oʻzi ochiladi; number vidjeti
tarifingizni saqlaydi, narx — bitta koʻpaytirish. Quyidagi sketch umuman tarmoqsiz
ishlaydi — RisalFakePower realistik maishiy yuklamani aylantiradi, butun hisoblagich
stolda yigʻiladi:
#include <RisalUI.h>
#include <RisalFake.h> // fake household load — test with no mains at all
RisalUI dash("Energy");
RisalFakePower meter;
float volts = 230, amps = 0, watts = 0, kwh = 0, pf = 0.9f, freq = 50, cost = 0;
int tariff = 12; // cents per kWh — tune it live
void setup() {
dash.layout("Live", RICON_FLASH);
dash.sensor("pzem004t", &volts, &s, &watts, &kwh); // V gauge · A · W chart · kWh
dash.metric("Power factor", &pf);
dash.stat("Cost", &cost, "$").decimals(2);
dash.number("Tariff c/kWh", &tariff, 1, 100, 1);
dash.beginAP("RisalDash-Power", "12345678");
}
void loop() {
dash.update();
meter.update(); // appliances switch on/off, kWh accumulates
volts = meter.voltage(); amps = meter.current(); watts = meter.power();
kwh = meter.energy(); pf = meter.powerFactor();
cost = kwh * tariff / 100.0f;
} Quti yigʻilgach, fake’ni real oʻquvchiga almashtirasiz — oʻzgaruvchilar oʻsha, dashboard oʻzgarmaydi:
// The real reader — PZEM-004T V3 on Serial2 (library: mandulaj/PZEM-004T-v30).
#include <PZEM004Tv30.h>
PZEM004Tv30 pzem(Serial2, 16, 17); // RX2, TX2
float v = pzem.voltage();
if (!isnan(v)) { // NaN = no reading — keep the last good value
volts = v;
amps = pzem.current();
watts = pzem.power();
kwh = pzem.energy();
pf = pzem.pf();
} Ikkala yarim kutubxona namunalari sifatida bor: examples/04_Templates/PowerMeter (oʻlchagich) va EnergyMonitor (kVt·soat + narx + rubilnik). MQTT ga publish qilsangiz — Home Assistant energiya paneliga avtomatik tushadi.
Komponentlar roʻyxati
| Qism | Vazifa | ~Narx |
|---|---|---|
| ESP32 (yoki ESP8266) | miya + Wi-Fi + dashboard | $3–5 |
| PZEM-004T V3 + CT 100 A | hisoblagichning oʻzi | $8–12 |
| HLK-PM01 (AC→5 V) | ESP’ni oʻsha qutidan quvvatlaydi | $2–3 |
| Predoxranitel 1 A + ushlagich | kirish himoyasi | $1 |
| Montaj qutisi + salniklar | barmoqlarni tarmoqdan uzoq tutadi | $3–5 |
| LCD 16x2 I²C (ixt.) | qutidagi lokal ekran | $2 |
Jami $25 dan kam — ilovali tijoriy analoglar bir necha barobar qimmat, ustiga bunisining dashboardini chipning oʻzi beradi.
Butun hisoblagichni fake yuklamada yigʻib sozlang — quti tayyor boʻlganda ulaysiz.