پروژه بعدی آردوینو خود را با ماژول تشخیص گاز و دود MQ2 پی میگیریم. MQ2 یک ماژول گاز مقاوم برای تشخیص غلظت LPG، دود، الکل، پروپان، هیدروژن، متان و کربن منواکسید در هوا میباشد. اگر قصد ایجاد سیستم نظارت بر کیفیت هوا در محیط داخلی را دارید؛ ماژول سنسور گاز MQ2 یک انتخاب عالی برای این کار است.
سنسور گاز MQ2 چیست؟
MQ2 یکی از سنسورهای متداول در سری سنسورهای گازی MQ است. این سنسور از نوع اکسید نیمه هادی (MOS) بوده و به عنوان مقاومت شیمیایی نیز شناخته می شود زیرا فرآیند تشخیص را با تغییر مقاومت احساس شده مواد در هنگام تماس گاز با آنها سنجش میکند. با استفاده از یک شبکه تقسیم ولتاژ ساده ، می توان غلظت گاز را تشخیص داد.
سنسور گاز MQ2 با استفاده از ولتاژ ۵ ولت DC کار می کند و ۸۰۰ میلی وات توان مصرف میکند. این سنسور می تواند غلظت LPG ،دود ،الکل ،پروپان ،هیدروژن ،متان و مونوکسید کربن را در هر نقطه از ppm200 تا ppm10000 ثبت کند.
در جدول زیر مشخصات فنی ماژول MQ2 را مشاهده می کنید:
۵ ولت |
ولتاژ عملکرد |
۲۰ KΩ |
مقاومت بار |
۳۳Ω ± ۵% |
مقاومت در برابر گرما |
<800mw |
توان مصرفی |
۱۰ KΩ – ۶۰ KΩ |
بازه مقاومتی قابل سنجش |
۲۰۰ – ۱۰۰۰۰ppm |
دامنه غلظت |
برای مشاهده جزئیات بیشتر میتوانید فایل دیتاشیت این ماژول را از طریق این لینک دانلود کنید.
ساختار داخلی سنسور گاز MQ2 :
این سنسور در واقع داخل دولایه استیل ضدزنگ که شبکه ضد انجار نیز نامید میشود، محصور شده است. این لایهها تضمین میکنند که عنصور بخاری داخل سنسور منفجر نخواهد شد و هیچ خطری را برای کاربران در پی نخواهد داشت.
علاوه بر این این ماژول قادر به فیلتر ذرات معلق موجود در هوا میباشد و میتواند عناصر گازی را به صورت خالص به سنسور برساند.
در تصویر بالا نمایی از ماژول هنگام برداشته شدن مش آن را مشاهده میکنید. ساختار با فرم ستارهای توسط المان سنسور و ۶ پایه اتصال شکل داده شده است. دو تا از این المانها وظیفه گرم کردن کویل نیکل کرومی که آلیاژ رسانای خوبی برای انتقال گرماست را برعهده دارند.
۴ پایه باقی مانده مسئول سیگنال خروجی با استفاده از اتصال پلاتینی هستند. این سیمها به بدنه المان سنجش متصل هستند و تغییرات کوچک جریان در آن را از خود عبور میدهند.
المان سنجش لولهای شکل که در شکل بالا مشاهده میکنید از سرامیکی مبتنی بر آلومینیوم اکسید (Al۲O۳) تشکیل شده است و دارای روکش قلع (SnO۲) است. قلع دی اکسید مهمترین ماده حساس به گازهای قابل احتراق است. با این حال، بستر سرامیکی صرفاً راندمان گرمایشی را افزایش داده و اطمینان حاصل می کند که منطقه حسگر دائماً در دمای کاری گرم می شود.
بنابراین، سرامیک نیکل-کروم و آلومینیوم اکسید سیستم گرمایش را تشکیل می دهند. در حالی که سیمهای پلاتینیوم و پوشش قلع دی اکسید نیز اجزای سیستم سنجش خواهند بود.
عملکرد این سنسور چگونه است؟
هنگامی که دی اکسید قلع (ذرات نیمه هادی) در دمای بالا شروع به گرم شدن میکنند، اکسیژن روی سطح سنسور جذب میشود. در هوای پاک و تمیز، الکترونها در دی اکسید قلع به سمت اکسیژن جذب شده و روی سطح حسگر میچسبند که این عمل مانع از برقراری جریان الکتریکی میشود.
در صورت افزایش مقدار و چگالی سایر گازها، چگالی سطح اکسیژن جذب شده کاهش مییابد سپس الکترونهای درون دی اکسید قلع آزاد شده و جریان را از طریق سنسور عبور میدهند.
کالیبراسیون سنسور گاز MQ2 :
برای کالیبراسیون سنسور گاز میتوانید آن را در نزدیکی منبع دود/گاز که میخواهید آن را شناسایی کنید قرار دهید و پتانسیومتر روی ماژول را تا زمانی که LED قرمز رنگ روی آن شروع به درخشیدن کند بچرخانید. با چرخاندن پیچ در جهت عقربههای ساعت حساسیت ماژول افزایش و با چرخاندن آن خلاف جهت عقربههای ساعت حساسیت کاهش مییابد.
مقایسه کننده ماژول بطور مداوم بررسی میکند که پین آنالوگ A۰ به مقدار آستانه تنظیم شده توسط پتانسیومتر برسد هنگام عبور از این آستانه پین دیجیتال D۰ فعال شده و LED سیگنال روشن میشود. این تنظیمات هنگامی که میخواهید اقدامی پس از رسیدن غلظت دود به مقداری خاص انجام شود بسیار مفید خواهد بود. به عنوان مثال، هنگامی که دود از یک آستانه عبور می کند ، می توانید رله را روشن یا خاموش کنید یا به ربات آتشنشان خود دستور دهید که آبپاش خود را روشن کند.
پینهای ماژول گاز MQ2 :
حالا نگاهی به ویژگیهای پینهای ماژول بیاندازیم:
VCC: منبع تغذیه ماژول؛ شما میتوانید این پایه را به خروجی ۵ ولت آردوینو خود متصل کنید.
GND: پین اتصال به زمین که شما باید آن را به GND آردوینو متصل کنید.
D0: نمایش دیجیتالی از حضور گازهای قابل احتراق را ارائه میدهد.
A0: ولتاژ خروجی آنالوگ متناسب با غلظت دود/گاز را فراهم می کند.
سیمکشی – چگونه ماژول MQ2 را به آردوینو UNO متصل کنیم؟
اکنون که ما درکی کامل از نحوه عملکرد ماژول MQ2 بدست آوردیم میتوانیم اتصال آن به آردوینو رو شروع کنیم!
اتصال این ماژول به آردوینو بسیار ساده است. ابتدا پین VCC ماژول را به ۵ ولت و GND آن را به GND آردوینو
متصل کنید. پین خروجی D۰ ماژول را به پایه دیجیتال شماره ۲ (و یا هر پایه دیجیتال دیگر در آردوینو) و پین خروجی A۰ در ماژول به پایه آنالوگ شماره ۰ (و یا پایههای دلخواه آنالوگ دیگر در آردوینو) در آردوینو وصل کنید.
وقتی اتصالات خود را به پایان رساندید باید مداری مطابق شکل زیر ایجاد شود.
بعد از اتمام سیمکشی وقت آن رسیده که با کدهایی آن را به صورت عملی امتحان کنیم.
کدنویسی آردوینو :
کد بسیار ساده است و در اصل ولتاژ آنالوگ روی پایه A۰ را میخواند. همچنین زمانی که دود و یا گاز احساس میشود بر روی سریال مانیتور اخطاری داده میشود. قبل از آنکه شروع به توضیح کد کنیم ابتدا یک بار آنرا اجرا و امتحان کنید!
#define MQ2pin (0)
float sensorValue; //variable to store sensor value
void setup()
{
Serial.begin(9600); // sets the serial port to 9600
Serial.println(“Gas sensor warming up!”);
delay(20000); // allow the MQ-6 to warm up
}
void loop()
{
sensorValue = analogRead(MQ2pin); // read analog input pin 0
Serial.print(“Sensor Value: “);
Serial.print(sensorValue);
if(sensorValue > 300)
{
Serial.print(” | Smoke detected!”);
}
Serial.println(“”);
delay(2000); // wait 2s for next reading
}
طرح با تعریف پایه آردوینو که پین آنالوگ سنسور گاز MQ2 به آن متصل است، شروع می شود. متغیری به نام sensorValue نیز برای ذخیره مقدار سنسور تعریف شده است.
#define MQ2pin (0)
float sensorValue; //variable to store sensor value
ارتباطات سریال با کامپیوتر را آغاز می کنیم و ۲۰ ثانیه منتظر می مانیم تا سنسور گرم شود.
Serial.begin(9600); // sets the serial port to 9600
Serial.println(“Gas sensor warming up!”);
delay(20000); // allow the MQ-6 to warm up
در تابع حلقه: مقدار سنسور توسط تابع ()analogRead خوانده شده و در مانیتور سریال نمایش داده میشود.
sensorValue = analogRead(MQ2pin); // read analog input pin 0
Serial.print(“Sensor Value: “);
Serial.print(sensorValue);
هنگامی که غلظت گاز به اندازه کافی بالا باشد ، سنسور معمولاً مقدار بیشتری از ۳۰۰ را نشان می دهد. ما میتوانیم این مقدار را کنترل کرده و هنگامی که مقدار سنسور از ۳۰۰ تجاوز کند، پیام “Smoke Detected!” را نمایش دهیم.
if(sensorValue > 300) {
Serial.print(” | Smoke detected!”);
}
خروجی سریال مانیتور به صورتی شبیه زیر در خواهد آمد: