عناوين الدرس

نظام انذار الحرائق باستخدام حساس الغاز مع الاردوينو

مبتدئ

مقدمة

في هذا الدرس، ستتعلم كيفية توصيل حساس الغاز مع الاردوينو؛ حتى تتمكن من الكشف عن تسرب الغاز في المنازل أو المصانع أو المكاتب بتكلفة بسيطة.

 بعد توصيل حساس الغاز مع الاردوينو يمكنك إضافة شاشة كرستالية تعرض كمية الغاز في المكان ومصدر صوت بمثابة صافرة إنذار حتى يتم إخطار الأفراد بحدوث أي تسرّب ويتم إخلاء المبنى فورًا قبل الوقوع في خطر الحرائق لا قدر الله.

حساس الغاز الاردوينو

المواد والأدوات

الاردوينو يستخدم في حساس الغاز/ الدخان

اردوينو اونو

arduino-smoke-gas-sensor

1× سلك الاردوينو

arduino-smoke-gas-sensor

لوحة تجارب – حجم كبير

الشاشة تستخدم في مع الاردوينو وحساس الغاز/ الدخان

 1× شاشة كرستالية

حساس الغاز/ الدخان الاردوينو

حساس الغاز

arduino-smoke-gas-sensor

1× مقاومة متغيرة

arduino-smoke-gas-sensor

1× مصدر صوت

arduino-smoke-gas-sensor

 حزمة أسلاك توصيل (ذكر- ذكر)

arduino-smoke-gas-sensor

1× مقاومة 220 Ω

مهاراتك في الرياضيات

1× 40 رأس دبوس

حساس الغاز

هو حساس يكشف عن تسرب الغاز في المكان.

يُمكن لحساس الغاز الكشف عن الغازات القابلة للاشتعال مثل البوتان، البروبان، الميثان والهيدروجين.

عند زيادة تركيز الغاز في الجو تزداد تبعًا لذلك قيمة الجهد وعند انخفاض تركيز الغاز أو انعدامه تنخفض قيمة الجهد في الحساس.

gas-smoke-sensor-gif

له أربعة مداخل موضحة في الشكل التالي:

arduino-smoke-gas-sensor

توصيل الدائرة

لمعرفة المزيد حول الشاشة الكرستالية يمكنك الرجوع للدرس التحكم بالشاشة الكرستالية LCD

لابد من تلحيم المنافذ مع الشاشة الكرستالية، للمزيد حول اللحام يمكنك الرجوع للدرس تعلم كيفية التلحيم – تلحيم القطع باللوحة الإلكترونية

arduino-smoke-gas-sensor

الكود البرمجي

الكود البرمجي لنظام انذار الحرائق باستخدام حساس الغاز.
#include <LiquidCrystal.h>
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
#define buzzer 8
#define Gas A0
void setup() {
Serial.begin(9600);
lcd.begin(16,2);
pinMode(buzzer,OUTPUT);
lcd.setCursor(0, 0);
lcd.print("Calibrating");
for(int i = 0; i <10; i++) {
if (i==4)
{
lcd.setCursor(0, 1);
lcd.print("."); }
else lcd.print(".");
delay(500);
}
lcd.setCursor(5,1);
lcd.print("done");
delay(1000);
lcd.clear() ;
lcd.setCursor(1,0);
lcd.print("SENSOR ACTIVE");
delay(1500);
lcd.clear(); }
void loop() {
int gasSensor = analogRead(Gas);
if (gasSensor > 300) {
digitalWrite(buzzer,HIGH);
lcd.setCursor(0, 0);
lcd.print("Value: ");
lcd.print(gasSensor);
Serial.print(gasSensor);
Serial.print("\t");
lcd.setCursor(0,1);
Serial.println("Gas is Detected"); 
lcd.print("Gas is Detected"); 
delay(300);
lcd.clear(); }
else if (gasSensor < 300) {
digitalWrite(buzzer,LOW);
lcd.setCursor(0, 0);
lcd.print("Value: ");
lcd.print(gasSensor);
Serial.print(gasSensor);
Serial.print("\t");
lcd.setCursor(0,1);
Serial.println("Gas not Detected"); 
lcd.print("Gas not Detected"); 
delay(300); }}

 إذا كانت نسبة التسرب 300 فأكثر سينطلق جرس الإنذار؛ لتنبيه الأفراد المتواجدين في المكان بوجود تسرب وسيكون هناك توضيح لكمية التسرب على الشاشة الكرستالية.

هذا السطر يطلب من الأردوينو استعمال مكتبة الشاشة الكرستالية (حتى يستطيع الاردوينو استيعاب الأوامر الخاصة بالشاشة).

نستطيع تحميلها بتتبع المسار التالي:

Sketch > Include libraries > Manage libraries

ثم نكتب بخانة البحث Liquid crystal by Arduino

ثم نضغط على Install.

#include <LiquidCrystal.h>

هذه الأسطر توضح منافذ الاردوينو التي ستستخدمها للربط في هذا المشروع:

#define buzzer 8
#define Gas A0

بعد ذلك أعلنا عن المتغيرات اللازمة مثل المتغيرات الخاصة بالشاشة الكرستالية والتي تستخدمها المكتبات أيضًا:

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

في الدالة ()setup قمنا بوضع الإعدادات اللازمة مثل تشغيل الشاشة الكرستالية وتهيئتها وبيان جاهزية الحساس لاختبار المكان:

void setup()
 { 
 Serial.begin(9600);
 lcd.begin(16,2); 
 pinMode(buzzer,OUTPUT); 
 lcd.setCursor(0, 0); 
 lcd.print("Calibrating"); 
 for(int i = 0; i <10; i++) 
 { if (i==4) { 
 lcd.setCursor(0, 1); 
 lcd.print("."); } 
 else lcd.print("."); 
 delay(500); } lcd.setCursor(5,1); 
 lcd.print("done"); 
 delay(1000); 
 lcd.clear();  
 lcd.setCursor(1,0); 
 lcd.print("SENSOR ACTIVE"); 
 delay(1500); 
 lcd.clear(); 
}

تبدأ عملية المعايرة واختبار جاهزية حساس الغاز.

 معايرة حساس الغاز/ الدخان المربوط مع الاردوينو

ستظهر رسالة عند انتهاء عملية المعايرة (done).

arduino-smoke-gas-sensor

تليها رسالة تبين جاهزية الحساس لاختبار المكان.

 جاهزية حساس الغاز/ الدخان المربوط مع الاردوينو

في الدالة ()loop يقوم الحساس بحساب نسبة الغاز الموجود في الهواء.

إذا كانت نسبة الغاز  أكثر من 300 فسينطلق جرس الإنذار؛ لتنبيه الأفراد بوجود تسرب وسيتم طباعة نسبة التسرب على الشاشة.

إذا كانت نسبة الغاز أقل من 300 فسينطفئ جرس الإنذار ويُطمئن الأفراد بعدم وجود تسرب وسيتم طباعة نسبة الغاز الطبيعية المنتشرة في الهواء على الشاشة.

void loop() 
{ 
int gasSensor = analogRead(Gas); 
if (gasSensor > 300) { 
digitalWrite(buzzer,HIGH); 
lcd.setCursor(0, 0); lcd.print("Value: "); 
lcd.print(gasSensor); 
Serial.print(gasSensor); 
Serial.print("\t"); 
lcd.setCursor(0,1); 
Serial.println("Gas is Detected"); 
lcd.print("Gas is Detected"); 
delay(300); lcd.clear(); } 
else if (gasSensor < 300) { 
digitalWrite(buzzer,LOW); 
lcd.setCursor(0, 0); 
lcd.print("Value: "); 
lcd.print(gasSensor); 
Serial.print(gasSensor); 
Serial.print("\t"); 
lcd.setCursor(0,1); 
Serial.println("Gas not Detected"); 
lcd.print("Gas not Detected"); 
delay(300); }
}

هنا نسبة الغاز في المكان أكثر من 300.

 بدء عمل حساس الغاز/ الدخان المربوط مع الاردوينو اكتشاف الغاز

هنا نسبة الغاز  في المكان أقل من 300.

 بدء عمل حساس الغاز/ الدخان المربوط مع الاردوينو

يصبح حساس الغاز بعد فترة من استخدامه ساخنًا علينا الحذر من لمسه.
X
تم إضافة المنتج إلى السلة بنجاح