پروژه الکترونیکپروژه های آردوینوپروژه های اندازه گیری

پروژه تشخیص دود با آردوینو (اندازه گیری PPM دود با Arduino)

سلام. پروژه تشخیص دود با آردوینو (اندازه گیری PPM دود با Arduino) را آماده کردیم.

پروژه اعلام حریق با آردوینو و سنسور MQ2

آشکار ساز های دود در تشخیص دود یا آتش سوزی ساختمان ها بسیار مفید هستند. در این پروژه آردوینو ما میخواهیم یک مدار تشخیص دود بسازیم که نه تنها دود موجود در هوا را تشخیص میدهد، بلکه سطح و میزان دود موجود در محیط را بر حسب PPM محاسبه میکند و در یک ال سی دی نمایش میدهد. در این مدار هنگامی که سطح دود از 1000 PPM بیشتر شود، بازر فعال میشود. این مقدار آستانه را میتوانید به راحتی در کد تغییر دهید. همچنین میتوانید بجای بازر از رله استفاده کنید و آژیر یا … را فعال کنید. شما میتوانید به راحتی این مدار را با استفاده از برد بورد یا برد نقطه ای بسازید همچنین در صورت تمایل برای استفاده از PCB، میتوانید فایل فیبر مدار چاپی موجود در فایل دانلودی انتهای صفحه را دانلود کنید.

پروژه اعلام حریق با آردوینو و سنسور MQ2

فیلم عملکرد پروژه در انتهای صفحه قرار گرفته است.

حتما ببینید :  آموزش کامل پروژه سیستم اعلام حریق با آردوینو (تشخیص آتش و شعله توسط Arduino)

توض‏یحات مدار پروژه

در این مدار از سنسور تشخیص دود MQ2 برای تشخیص دود استفاده میکنیم. از یک ال سی دی کاراکتری نیز برای نمایش مقدار PPM دود استفاده میشود. یک آی سی LM358 (اختیاری) برای تبدیل خروجی سنسور به حالت دیجیتال استفاده میشود. و بازر نیز همانطور که گفته شد برای هشدار حریق استفاده میشود.

پروژه تشخیص دود با آردوینو و PCB

اتصالات مدار برای این پروژه بسیار ساده است ، ما یک مدار مقایسه کننده برای مقایسه ولتاژ خروجی سنسور دود با ولتاژ از پیش تعیین شده (خروجی متصل به پین ​​D7) داریم. همچنین خروجی حسگر دود به پین آنالوگ A0 متصل می شود. Buzzer در پین D9 وصل شده است.

پروژه تشخیص دود با آردوینو

توجه: در مدار ما باید برای محاسبه PPM دود ، سه پین ​​هدر J2 را کوتاه کنیم.

قطعات مورد نیاز

  1. برد آردوینو UNO
  2. ال سی دی کاراکتری 16*2
  3. ماژول سنسور تشخیص دود MQ2
  4. مقاومت 1 کیلو اهم
  5. مقاومت 10 کیلو اهم
  6. پتانسیومتر 10 کیلو اهم
  7. ال ای دی
  8. آی سی LM358

برنامه نویسی پروژه تشخیص دود با Arduino

توجه داشته باشید کد پروژه در انتهای صفحه قرار گرفته است و تمام محاسبات انجام شده است. و در صورت نیاز برای درک کامل پروژه این قسمت را بخوانید.

برنامه این پروژه کمی دشوار است. برای درک محاسبات مربوط به این پروژه، کاربر باید اطلاعات حسگر دود MQ2 را با دقت بخواند.  پس از خواندن صفحه داده ، مقادیر لازم را در کد قرار می دهیم تا ppm دود موجود در هوا را محاسبه کنیم. در اینجا به اطلاعات منحنی زیر نیاز داریم.

برنامه نویسی پروژه تشخیص دود با Arduino

محاسبه با استفاده از دو نقطه از منحنی، مقاومت حسگر و مقدار ثابت هوای تمیز و مقاومت قرار داده شده (در اینجا از 10 کیلو اهم استفاده کردیم) در مدار انجام میشود. میتوانید مقاومت بار قرار داده شده را از 5 کیلو اهم تا 54 کیلو اهم انتخاب کنید.

از دو نقطه منحنی لگاریتم بگیرید :

(lg200, lg3.4)=(2.3,0.53) و (lg10000,lg0.63)=(4,-0.20)

سپس شیب را با استفاده از فرمول زیر پیدا میکنیم :

اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید.

(y2-y1)/(x2-x1)

سپس یک نقطه را انتخاب میکنیم و شیب آن را (-0.44) در نظر میگیریم. و از این مقدار در برنامه استفاده میکنیم.

در کد پروژه ابتدا باید کتابخانه ال سی دی کاراکتری را فراخوانی کنیم و پین ها را برای آن تعریف کنیم. سپس مقادیر منحنی و مقاومت بار را تعریف میکنیم.

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

#define buzzer 9 // پین بازر
#define sensor A0  // پین سنسور
#define load_Res 10  // مقاومت بار
#define air_factor 9.83  // ثابت هوای پاک
                                                    
float SmokeCurve[3] ={2.3,0.53,-0.44}; // مقدار منحنی

سپس در تابع void setup() باید سنسور را با استفاده از SensorCalibration کالیبره کنیم.

void setup()
{   
  lcd.begin(16,2);
  lcd.print("Calibrating.....");
  Res = SensorCalibration();
  lcd.print("Calibration done.");
  lcd.setCursor(0,1); 
  lcd.print("Res=");
  lcd.print(Res);
  lcd.print("kohm");
  delay(2000);
  lcd.clear();
  pinMode(buzzer, OUTPUT);
}
float SensorCalibration()
{
  int i;
  float val=0;    
  val=resistance(50,500);                
  val = val/air_factor;  
  return val; 
}

سپس در تابع void loop () ، ما با استفاده از توابع مقاومت ، میزان PPM دود را محاسبه می کنیم:

void loop()
{  
   lcd.setCursor(0,0); 
   lcd.print("SMOKE:"); 
   float res=resistance(5,50);
   res/=Res;
   int result=pow(10,(((log(res)-SmokeCurve[1])/SmokeCurve[2]) + SmokeCurve[0]));
   lcd.print(result);
   lcd.print( " ppm        ");
   if(result>1000) // در اینجا میتوانید مقدار آستانه هشدار را تعریف کنید
   {
      digitalWrite(buzzer, HIGH);
      delay(2000);
   }
   else
   digitalWrite(buzzer, LOW);
   delay(500);
}
float resistance(int samples, int interval)
{
   int i;
   float res=0; 
   for (i=0;i<samples;i++) 
   {
      int adc_value=analogRead(sensor);
      res+=((float)load_Res*(1023-adc_value)/adc_value);
      delay(interval);
   }
   res/=samples;
   return res;
}

توجه: قبل از کالیبره کردن ماژول ، پروژه را به مدت 10 دقیقه در هوای تمیز روشن بگذارید و سپس کالیبراسیون را شروع کنید. این فرایند کالیبراسیون حداقل 25 ثانیه طول می کشد.

فیلم عملکرد پروژه

بنابراین در اینجا با استفاده از آردوینو سنسور تشخیص دود MQ2 را راه اندازی کردیم. این پروژه علاوه بر نمایش PPM میتواند هشدار هم بدهد. فیلم زیر به شما  در درک نحوه کار این پروژه کمک میکند.

برای دانلود فیلم عملکرد پروژه تشخیص دود با آردوینو کلیک کنید.

موارد موجود در فایل : سورس کامل ، شماتیک کامل ، تصویر PCB

برای دانلود فایل های پروژه ثبت نام کنید، تنها چند ثانیه زمان لازم است. از طریق فرم زیر اقدام کنید.

ایمیل خود را وارد کنید

نظرتان را در مورد این مطلب با ستاره دادن اعلام کنید امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید
برچسب ها

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
بستن
بستن