RisalDash RisalDash

مشروع · غرفة ذكيّة · سلامة

لوحة واحدة تراقب الغرفة كلّها

أربع قطع رخيصة تغطّي الغرفة تمامًا: DHT22 للمناخ، وPIR للحركة، وMQ-2 للغاز والدخان، ومرحّل بقناتين للمصباح والمروحة. ESP32 واحد يربطها في لوحة سلامة بسلسلة إنذار — شارة وجرس وسجلّ وتهوية تلقائيّة — تتحكّم بها من لوحة يقدّمها الشريحة بنفسها.

مشروعغرفة ذكيّةPIRMQ-2ESP32
مشروع مراقب غرفة بـ ESP32: DHT22 وPIR وMQ-2 ومرحّلات وإنذار

القطع وطبائعها

القطعةالدورما يجب معرفته
DHT22حرارة + رطوبةقراءة كلّ ثانيتين، بروتوكول سلك واحد
PIR (HC-SR501)حركةيثبّت خرجه نافذة إعادة قدح — عامله كذلك
MQ-2غاز / دخانيحتاج إحماءً ومعايرة لكلّ وحدة
مرحّل بقناتينمصباح + مروحةلوحات العزل الضوئيّ تريد 5 V؛ تحقّق من قطبيّة IN
جرسإنذار محلّيّالنشط يكفيه GPIO مرتفع

سلسلة الإنذار — أولويّات لا معكرونة

للّوحة حالة واحدة والغاز يفوز دائمًا: GAS! > Motion > All clear. إصابة الغاز تُطلق الجرس وتشغّل المروحة قسرًا للتهوية وتكتب الحدث؛ الحركة تقلب الشارة وتُسجَّل فحسب. منطق الأولويّات كلّه خمسة أسطر:

// Alarm chain: gas beats motion; the buzzer follows the gas state, fan auto-vents.
bool gasBad = gas > 350;                      // real: calibrate to your MQ-2
if (gasBad && roomState != 2 && evlog) evlog->print("GAS/SMOKE - venting");
roomState = gasBad ? 2 : (motion ? 1 : 0);
alarmOut = gasBad;
if (gasBad) fan = true;                       // auto-vent on gas

// PIR: the module holds its output ~3 s per trigger — treat it as a window.
motion = millis() < motionUntil;

اللوحة

صفحتان: Room (قراءات + حالة + سجلّ) وControl (مصباح، مروحة، إنذار). إعدادا dht22 وmq2 يختاران الأدوات والمديات بنفسيهما:

dash.layout("Room", RICON_HOME);
dash.sensor("dht22", &temp, &hum);            // temp gauge + humidity metric
dash.sensor("mq2", &gas);                     // smoke/LPG gauge with the right range
dash.badge("Status", &roomState).labels("All clear", "Motion", "GAS!");
dash.led("Motion", &motion);                  // PIR state, live
evlog = &dash.log("Events", 6);

dash.layout("Control", RICON_BULB);
dash.toggle("Light", &light);                 // relay channel 1
dash.toggle("Fan", &fan);                     // relay channel 2
dash.led("Alarm", &alarmOut);                 // buzzer output
dash.beginAP("RisalDash-Room", "12345678");

المثال المرفق (examples/04_Templates/RoomMonitor) يعمل بلا عتاد — MQ-2 الوهميّ «يشمّ دخانًا» أحيانًا وPIR يقدح عشوائيًّا، فترى السلسلة كاملة: شارة ← جرس ← سجلّ ← مروحة. ثمّ صِل القطع الحقيقيّة واحذف الوهميّات. وكلّ أداة هي أيضًا أداة MCP: يسأل وكيل الذكاء الاصطناعيّ «هل في الغرفة أحد؟» أو يشغّل المروحة — هذا نمط الوكيل الذكيّ.

بناءات قريبة

تحتاج الحراسة فقط؟ قالب MotionSecurity يضيف مناطق ومفتاح تسليح. الغاز فقط؟ GasSafety يجمع MQ-2 + MQ-7 مع مؤشّرات قدح. الشقّة كاملة؟ SmartHome يوسّع النمط نفسه إلى مشاهد وغرف — هذه اللوحة خلاصة الثلاثة لغرفة واحدة.

شاهد سلسلة الإنذار تعمل على الوهميّات الليلة — ووصّل الغرفة في العطلة.