مشروع · طاقة · مراقبة
شاهد كلّ واط يحرقه منزلك
فاتورة الكهرباء تخبرك كم استهلكت؛ العدّاد الحيّ يخبرك متى وعلى ماذا. PZEM-004T V3 مع ملقط CT بسعة 100 A يقيس المنزل كلّه — الجهد والتيّار والقدرة والكيلوواط·ساعة المتراكمة — وESP32 يحوّلها إلى لوحة بعدّاد تكلفة جارٍ تتفقّده من الأريكة. بلا سحابة ولا اشتراك — بياناتك تبقى في البيت.
كيف يقيس
PZEM-004T واجهة قياس كاملة: يعيّن جهد الشبكة مباشرةً، والتيّار عبر ملقط CT المنفصم (اقبضه حول سلك الفاز — دون قطع الأسلاك)، ويحسب القدرة الحقيقيّة على متنه، ويسلّم ESP أرقامًا نظيفة عبر UART. متحكّمك لا يلمس إشارة تناظريّة خطرة — يسأل فقط عن V وA وW وkWh.
⚠ قواعد جانب الكهرباء
جانب القياس في PZEM يتّصل بـتيّار متردّد حيّ — فاحترمه: كلّ شيء داخل علبة توصيلات مغلقة، ودخل AC عبر منصهر 1 A، وكلّ الأرضيّات مشتركة، وسهم ملقط CT (S1→S2) مع اتجاه التيّار. اقطع القاطع قبل لمس أيّ شيء هناك. وإن لم يكن عمل الكهرباء اختصاصك فالكهربائيّ يوصّل العلبة في عشر دقائق — الجزء الممتع كلّه على جانب الجهد المنخفض.
اللوحة — التعرفة تدخل والتكلفة تخرج
إعداد pzem004t يتمدّد إلى الأدوات الصحيحة بنفسه؛ أداة number تحمل
تعرفتك، والتكلفة عمليّة ضرب واحدة. الكود أدناه يعمل بلا كهرباء إطلاقًا —
RisalFakePower يدير حملًا منزليًّا واقعيًّا فتبني العدّاد كلّه على مكتبك:
#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;
} حين تُوصَّل العلبة بدّل الوهميّ بالقارئ الحقيقيّ — المتغيّرات نفسها واللوحة لا تتغيّر:
// 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();
} النصفان متوفّران كمثالين في المكتبة: examples/04_Templates/PowerMeter (العدّاد) وEnergyMonitor (كيلوواط·ساعة + تكلفة + قاطع). انشر إلى MQTT فيظهر تلقائيًّا في لوحة طاقة Home Assistant.
قائمة المكوّنات
| القطعة | الدور | ~التكلفة |
|---|---|---|
| ESP32 (أو ESP8266) | الدماغ + Wi-Fi + اللوحة | $3–5 |
| PZEM-004T V3 + CT بسعة 100 A | العدّاد نفسه | $8–12 |
| HLK-PM01 (AC→5 V) | يغذّي ESP من العلبة نفسها | $2–3 |
| منصهر 1 A + حامل | حماية الدخل | $1 |
| علبة توصيلات + جلندات | تُبقي الأصابع بعيدة عن الكهرباء | $3–5 |
| LCD 16x2 I²C (اختياريّ) | قراءة محلّيّة على العلبة | $2 |
أقلّ من 25 دولارًا كاملة — النظائر التجاريّة بتطبيقاتها تبدأ بأضعاف ذلك، وفوق هذا لوحةَ هذا العدّاد يقدّمها الشريحة بنفسها.
ابنِ العدّاد كلّه واضبطه على حمل وهميّ — ووصِّل العلبة حين تجهز.