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

محتویات
سلام. پروژه تشخیص دود با آردوینو (اندازه گیری PPM دود با Arduino) را آماده کردیم.
پروژه اعلام حریق با آردوینو و سنسور MQ2
آشکار ساز های دود در تشخیص دود یا آتش سوزی ساختمان ها بسیار مفید هستند. در این پروژه آردوینو ما میخواهیم یک مدار تشخیص دود بسازیم که نه تنها دود موجود در هوا را تشخیص میدهد، بلکه سطح و میزان دود موجود در محیط را بر حسب PPM محاسبه میکند و در یک ال سی دی نمایش میدهد. در این مدار هنگامی که سطح دود از 1000 PPM بیشتر شود، بازر فعال میشود. این مقدار آستانه را میتوانید به راحتی در کد تغییر دهید. همچنین میتوانید بجای بازر از رله استفاده کنید و آژیر یا … را فعال کنید. شما میتوانید به راحتی این مدار را با استفاده از برد بورد یا برد نقطه ای بسازید همچنین در صورت تمایل برای استفاده از PCB، میتوانید فایل فیبر مدار چاپی موجود در فایل دانلودی انتهای صفحه را دانلود کنید.
فیلم زیر به شما در درک نحوه کار این پروژه کمک میکند.
مدار پروژه تشخیص دود با آردوینو
در این مدار از سنسور تشخیص دود MQ2 برای تشخیص دود استفاده میکنیم. از یک ال سی دی کاراکتری نیز برای نمایش مقدار PPM دود استفاده میشود. یک آی سی LM358 (اختیاری) برای تبدیل خروجی سنسور به حالت دیجیتال استفاده میشود. و بازر نیز همانطور که گفته شد برای هشدار حریق استفاده میشود.
اتصالات مدار برای این پروژه بسیار ساده است ، ما یک مدار مقایسه کننده برای مقایسه ولتاژ خروجی سنسور دود با ولتاژ از پیش تعیین شده (خروجی متصل به پین D7) داریم. همچنین خروجی حسگر دود به پین آنالوگ A0 متصل می شود. Buzzer در پین D9 وصل شده است.
توجه: در مدار ما باید برای محاسبه PPM دود ، سه پین هدر J2 را کوتاه کنیم.
قطعات مورد نیاز
- برد آردوینو UNO
- ال سی دی کاراکتری 16*2
- ماژول سنسور تشخیص دود MQ2
- مقاومت 1 کیلو اهم
- مقاومت 10 کیلو اهم
- پتانسیومتر 10 کیلو اهم
- ال ای دی
- آی سی LM358
برنامه نویسی پروژه تشخیص دود با آردوینو
برنامه این پروژه کمی دشوار است. برای درک محاسبات مربوط به این پروژه، کاربر باید اطلاعات حسگر دود MQ2 را با دقت بخواند. پس از خواندن صفحه داده ، مقادیر لازم را در کد قرار می دهیم تا ppm دود موجود در هوا را محاسبه کنیم. در اینجا به اطلاعات منحنی زیر نیاز داریم.
محاسبه با استفاده از دو نقطه از منحنی، مقاومت حسگر و مقدار ثابت هوای تمیز و مقاومت قرار داده شده (در اینجا از 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
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود
سلام میشه از این برای سنسور mq7 استفاده کرد؟؟؟
سلام عزیز
بله
سلام خسته نباشید.
1=کلن باتوجه به نمودار توانایی تشخیص دود در محدوده کمی بیشتر از10 پی پی ام رو ندارد چطوری در فیلم بارگزاری شده مقدار دود را حتی تا1 پی پی ام اندازه میگیرد؟مقدار اندازه گیری شده درست هست اصن؟یعنی با دقیق هست مقدار پی پی ام ان ؟
2=سوال 2 این هست که الان این برنامه فقط مقدار ppmدود رو محاسبه میکنه؟یعنی اگر سنسور گازهای دیگه ای که به ان حساس است رو تشخیص بده مقدار ppmدود دراین برنامه افزایش پیدا نمیکنه؟
سوال 3=این هست که من میخوام همین مقدار ppmرو برای سنسور mq9استفاده کنم تغیراتی که توی کد لازمه همون مقادیر مختصات هست اما شما چطوری مختصات اون دوتا نقطرو دقیق بدست اوردید؟
سوال4=این که همون زمان 10 دقیقه کافی هست برای سنسور اخه تو دیتاشیت نوشته شده که 24تا48 ساعت زمان لازم داره در هوای تمیز !
ممنون از سایت خوب شما
سلام میگم شماتیک مدار تشخیص دود با آردینو را دارید بفرستید برام ممنون میشم
سلام عزیز. دقت کنید در همین صفحه شماتیک مدار پروژه قرار داده شده است.
درسته هست ولی خوب نیست
من شکل شماتیک که تو پروتئوس باشه با صفحه شطرنجی واضع باشه
اگه میشه یه کاریش کنید لازمش دارم بخدا
سلام و وقت بخیر
من برای یک پروژه از دو سنسور mq متفاوت استفاده کردم.. ولی نمیشه هردو سنسور رو همزمان از آردوینو تغذیه کرد و پس از چند دقیقه آردوینو ریست می کنه.. برای همین یکی از mq هرو به ولتاژ ۵ ولت خارجی متصل کردم اما دیتا در اختیار آردوینو قرار نمیده و حالت خاموش سنسور با اندکی اعوجاج در رو در پلاتر نشون میده.. آیا باید تغییری در اتصالات بدم ؟ مقدار ولتاژ و جریان اتصالی از منبع بیرونی دقیقا برابر با پین ۵ ولت آردوینو هست.. ممنون
سلام عزیز. استفاده از تغذیه خارجی عملکرد مناسبی هست سنسور ها رو جابجا کنید ببینید مشکل از اتصال تغذیه خارجیه یا سنسور آسیب دیده
سلام.برای ساخت ربات تشخیص دود مطابق قطعاتی که داخل سایت نوشتید از هرکدوم باید چندتا بخریم و اینکه طریقه اتصالشون سیم احتیاج نداره؟
سلام. به تصویر شماتیک مدار پروژه نگاه کنید ببینید هر قطعه چند بار استفاده شده. برای اتصال اگر از برد بورد استفاده میکنید سیم های جامپر مناسب هست.