تصميم نظام إنذار لتسرب الغاز باستخدام ESP32: شرح عملي + تحليل الإشارات وكود كامل

14 أبريل 2026
المتجر
تصميم نظام إنذار لتسرب الغاز باستخدام ESP32: شرح عملي + تحليل الإشارات وكود كامل

تصميم نظام إنذار لتسرب الغاز باستخدام ESP32: شرح عملي + تحليل الإشارات وكود كامل


📝 المقدمة:

في أنظمة الأمان الحديثة، تعتبر مراقبة الغازات القابلة للاشتعال أو الضارة من العناصر الأساسية، خصوصًا في البيئات المغلقة أو التي تحتوي على مصادر حرارية.

في هذا المشروع، نقوم ببناء نظام إنذار بسيط وفعّال باستخدام لوحة ESP32 وحساس غاز من فئة MQ، بحيث يتم تحليل الإشارة القادمة من الحساس واتخاذ قرار فوري بتفعيل إنذار صوتي عند تجاوز مستوى معين.

المشروع لا يقتصر على التنفيذ فقط، بل يوضح أيضًا كيفية التعامل مع إشارات Analog وتحويلها إلى قرار منطقي داخل المتحكم.


⚙️ المكونات المستخدمة:

  • لوحة ESP32 (متحكم دقيق مع دعم WiFi و ADC)
  • حساس غاز (MQ-2 أو MQ-135)
  • بوزر (Buzzer Module)
  • أسلاك توصيل


🔬 مبدأ العمل:

تعتمد حساسات MQ على عنصر تسخين داخلي يقوم برفع درجة حرارة المادة الحساسة، مما يسمح لها بالتفاعل مع الغازات المحيطة.

عند وجود غاز، تتغير مقاومة الحساس، ويتم تحويل هذا التغير إلى جهد كهربائي (Analog Voltage)، والذي يقوم ESP32 بقراءته عبر محول ADC.

بعد ذلك:

  • يتم مقارنة القيمة المقروءة مع حد معين (Threshold)
  • في حال تجاوز الحد → يتم تفعيل الإنذار
  • في حال عدم التجاوز → يبقى النظام في حالة مراقبة


🔌 التوصيل الكهربائي:


حساس الغاز:

  • VCC → 5V
  • GND → GND
  • AO → GPIO34


البوزر:

  • VCC → 3.3V أو 5V
  • GND → GND
  • IN → GPIO25


💻 الكود:


#define GAS_PIN 34

#define BUZZER_PIN 25


int threshold = 1800;


void setup() {

Serial.begin(115200);

ledcAttach(BUZZER_PIN, 2000, 8);

}


void loop() {

int gasValue = analogRead(GAS_PIN);

Serial.println(gasValue);


if (gasValue > threshold) {

for (int i = 0; i < 50; i++) {

ledcWriteTone(BUZZER_PIN, 4000);

delay(20);

ledcWriteTone(BUZZER_PIN, 0);

delay(20);

}

} else {

ledcWriteTone(BUZZER_PIN, 0);

}

}


🧠 تحليل الكود:

يعتمد النظام على قراءة مستمرة لقيمة الحساس باستخدام analogRead.

القيمة الناتجة تكون ضمن مدى:

  • 0 → 4095 (في ESP32)


عند تجاوز القيمة المحددة:

  • يتم تشغيل البوزر باستخدام PWM
  • تم اختيار تردد عالي (4000 Hz) مع تقطيع سريع
  • الهدف: إنتاج إشارة صوتية مزعجة وقابلة للتمييز


⚠️ اعتبارات مهمة:

1. وقت التسخين (Warm-up Time)

حساسات MQ تحتاج وقت قبل إعطاء قراءات مستقرة، وقد تصل إلى دقيقة أو أكثر.

2. المعايرة (Calibration)

قيمة Threshold ليست ثابتة، وتعتمد على:

  • البيئة
  • نوع الغاز
  • حساسية الحساس

يفضل أخذ قراءات في الوضع الطبيعي ثم تحديد الحد المناسب.

3. الضوضاء (Noise)

قراءات الحساس قد تحتوي على تذبذب بسيط، لذلك يمكن تحسين النظام باستخدام:

  • متوسط القراءات
  • أو فلترة بسيطة


🚀 تطوير المشروع:

يمكن تطوير النظام بسهولة ليصبح أكثر احترافية، مثل:

  • إرسال تنبيه عبر WiFi
  • عرض القراءات على شاشة
  • إضافة LED للتنبيه البصري
  • تسجيل البيانات وتحليلها


🎯 الخلاصة:

هذا المشروع يوضح كيف يمكن استخدام ESP32 مع الحساسات التناظرية لبناء نظام يعتمد على قراءة البيانات واتخاذ قرار فوري.

كما يفتح المجال لفهم أعمق لكيفية تحويل الإشارات الفيزيائية إلى أنظمة إنذار عملية.


🛒 الكيت المستخدم:

يمكنك الحصول على نفس الكيت المستخدم في هذا المشروع من هنا:

https://electronlabtech.com/gasKIT/p1828827236