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

مبتدئ

image_pdf

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

الكود البرمجي لنظام انذار الحرائق باستخدام حساس الغاز.
#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
تم إضافة المنتج إلى السلة بنجاح