RisalDash RisalDash

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.

LoyihaEnergiyaPZEM-004TCT qisqichESP32
ESP32 uy energiya monitori loyihasi: PZEM-004T, 100 A CT qisqich, kVt·soat va narx

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.

PZEM-004T ESP32’ga UART orqali ulangan: 5V, GND, TX RX2 ga, RX TX2 ga
Past kuchlanish tomonida toʻrt sim: 5 V, GND, TX→RX2, RX→TX2. BoardLab’da yigʻilgan.

⚠ 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, &amps, &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

QismVazifa~Narx
ESP32 (yoki ESP8266)miya + Wi-Fi + dashboard$3–5
PZEM-004T V3 + CT 100 Ahisoblagichning oʻzi$8–12
HLK-PM01 (AC→5 V)ESP’ni oʻsha qutidan quvvatlaydi$2–3
Predoxranitel 1 A + ushlagichkirish himoyasi$1
Montaj qutisi + salniklarbarmoqlarni 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.