آردوینو آردوینو Arduino Uno آموزش آردوینو پروژه های آردوینو

آموزش تشخیص آلودگی هوا با سنسور MQ135 برد آردوینو Arduino

Gas-Detector-ardoino
نوشته شده توسط علیرضا قربانی

این روزها آلودگی هوا یکی از معظلات جامعه شده است شاید برای شما خیلی جالب باشد که آلودگی هوای شهر خود را اندازه‌گیری کنید ، برای این کار می‌توانید از سنسور تشخیص آلودکی هوا MQ135 استفاده کنید . با استفاده از این سنسور به همراه برد آردوینو می‌توانید یک آشکارساز آلودگی هوا قابل حمل بسازید. در ادامه آموزش با مرجع تخصصی آردوینو به زبان فارسی ، دیجی اسپارک  همراه باشید.

 


سخت افزار مورد نیاز


برد آردوینو UNO

سنسور تشخیص گاز MQ135

بورد راه انداز سنسور تشخیص گازهای MQ

 

 

هدایت  الکتریکی سنسور با زیاد شدن غلظت گاز الکل در محیط به شدت افزایش مییابد در واقع برخورد مولکولهای گاز الکل با آلیاژ به کار رفته در سنسور باعث تغییرات شیمیایی در این آلیاژ و در نتیجه تغییر در رسانایی سنسور می‌شود و با تبدیل این تغییرات به ولتاژ میتوان میزان تغییرات در غلظت گاز الکل محیط را اندازه گیری کرد.

 


اجزای سنسور MQ135


همانطور که در شکل زیر مشاهده می‌کنید سنسور گاز الکل MQ135 از۶ پین تشکبل شده است.

سنسور گاز الکل MQ3

دو پین A و دو پین B دو صفحه‌ای را تشکیل می‌‌دهند که با برخورد مولکول‌های گاز الکل به این دوصفحه رسانایی آن‌ها تغییر می‌کند. دو پین H از طریق یک هیتر به یکدیگر متصل هستند و با اعمال ولتاژ عملیات گرم کردن فضای بین دو صفحه A و B را حهت آماده‌سازی محیط دو صفحه برای ایجادحساسیت مناسب سنسور را انجام میدهد. در ابتدای اتصال این سنسور به ۵ ولت DC ، ولتاژ خروجی از ۵ ولت شروع به کم شدن می کند و نهایتا بعد از یک تایم حدود یک ساعت به یک سطح ولتاژ نسبتا ثابت می رسد( حدودا ۰٫۷۳ ولت) . زیرا در ابتدای اتصال فضای بین دو صفحه اصلی سنسور سرد است و هدایت الکتریکی آن بسیار پایین می‌باشد و با گذشت زمان هیتر کم کم گرم شده و مقاومت افرایش پیدا می‌کند و ولتاژ خروجی نیز متقابلا کاهش پپدا می‌کند.

توجه: همانطور که گفته شد برای فعال شدن این سنسور از هیتر داخلی استفاده می‌شود. پس توجه داشته باشید که هرچه این سنسور مدت زمان بیشتری روشن باشد ، دقت و حسایت آن بیشتر است.

 


اتصال سنسور گاز MQ135 به آردوینو


برای سادگی کار ما از برد راه‌انداز سنسورهای سری MQ استفاده کرده‌ایم به طوری که سنسور گاز به راحتی بر روی این برد قرار می‌گیرد و سپس این برد به سیله‌ ۳ عدد سیم به برد آردوینو Arduino متصل می‌شود.

اتصال سنسور MQ135 به آردینو

 


کد و نصب کتابخانه سنسور MQ135


برای کد نویسی MQ135 ما از کتابخانه MQ135master استفاده کرده‌ایم که شما باید آن را از لینک زیر دانلود نمایید سپس طبق آموزش زیر آن را به کتابخانه‌های نرم‌افزار آردوینو اضافه کنید. دانلود کتابخانه MQ135  آموزش نصب کتابخانه در آردوینو پس از نصب کتابخانه باید آن را درون برنامه خود و فراخوانی کنیم و از کلاس MQ135 یک شی بسازیم و به ورودی آن پین آنالوگی که به سنسور متصل است را بدهیم. پس طبق شماتیک قرار گرفته اینگونه عمل می‌کنیم:

#include <MQ135.h>
int sensorPin=A0;
MQ135 gasSensor = MQ135(A0);

void setup()
{
}

void loop()
{
}

 

برای کالیبره کردن سنسور MQ135 می‌بایست ابتدا سنسور را بین ۱۲ الی ۲۴ ساعت در دمای حدود ۲۰ درجه سانتی گراد قرار دهیم و میانگین CO2 اطراف را اندازه گیری کنیم. برای بدست آوردن مقدار CO2 برای کالیبره کردن از تابع زیر استفاده می‌کنیم.

float rzero = gasSensor.getRZero();

 

بعد از بدست آوردن مقدار rzero باید وارد فولدر کتابخانه MQ135 شویم و سپس فایل MQ135.h را باز کنیم و در آن در کد

#define RZERO 76.63

مقدار razero را با مقدار ۷۶٫۶۸ جایگیزین کنیم.  اکنون کالیبراسیون انجام شده است  ، حال برای پی بردن به مقدار آلودگی هوا باید کد زیر را بر روی آردوینو خود کامپایل کنید و نتیجه را بر سریال مانیتور نرم‌افزار مشاهده کنید.

#include <MQ135.h>
MQ135 gasSensor = MQ135(A0);

void setup() {

Serial.begin(9600);


}

void loop()
{
float ppm = gasSensor.getPPM();
Serial.println(rzero);
Serial.print("ppm");


Serial.println(ppm);
delay( 500);
}

 

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

 

پروژه:

برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک   دانشجوکیت    digispark    daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

علیرضا قربانی

علیرضا قربانی هستم دانشجوی مهندسی پزشکی. چیزهای خیلی زیادی رو در دنیا دوست دارم. یک گیک هستم و یشه گفت یک هکر. نه به معنی دزدی پسورد و ایمیل مردم. به معنی عشق به دونستن و عشق به تحقیق درباره خیلی از چیزهایی که می بینم و می‌شنوم. اگر بخوام علاقه‌مندی‌ درجه یکم رو نام ببرم میتونم بگم برنامه نویسی و بعد از اون امبدد سیستم ها.

تبادل نظر و رفع عیب با ثبت دیدگاه

۴۷ دیدگاه

  • سلام
    با تشکر از آموزشهای خوبتان
    من برای یک پروزه نیاز دارم که گازهای
    CO , HC , O2 , CO2 را دیتکت و آنالیز کنم
    لطفا راهنمایی کنید که برای این کار و توسط فقط یک برد اوردینو یونو . دقیقا از کدام سنسور ها برای کدام گاز باید استفاده کنم ( لطفا مناسبترین سنسور را از لحاظ قیمت اعلام بفرمایید )
    همچنین آیا میتوان به طور همزمان این گازها سنس کرد ؟

    • سلام
      لطفا سوال خود را واضح تر بیان کنید. در آموزش کاملا به بررسی سنسور MQ135 پرداخته شده است. برای اتصال هم میتوانید از برد سنسور گاز برای اتصال سنسور با بردهای میکروکنترلر استفاده نمایید.

  • عرض سلام و احترام خدمت شما دوست عزیز.
    کتابخانه mq135 رو از کجا میتونم دانلود کنم؟ لطفا راهنمایی بفرمایید. متشکرم.

  • سلام
    آموزش های جالبی بودن
    ممنون
    بنده برای اجرای یک طرح، نیاز ب این دارم ک اگه غلظت گاز از حد مجاز (قابل تعریف توسط خودم) بیشتر بود، دستگاه عملی رو انجام بده، مثلا برای مقدار X ppm چراغ نارنجی و برای غلظت Y ppm چراغ قرمز رو روشن کنه.
    آیا با سنسور MQ135 و برد آردوینو Arduino همچین امکانی وجود داره؟! (و اگه آره، لطفاً کمی در مورد برنامه نویسی و احتمالاً قطعات اضافی مورد نیاز توضیح بدین.)
    پیشاپیش از همکاری شما سپاسگزارم.

    • سلام
      با ترکیب ماژول mq و آردوینو با نرم افزار Node-RED و یا پایتون میتوانید شرط گذاری کنید. پیشنهاد میشود از آموزش های ترکیبی نودرد و آردوینو استفاده کنید و ایده بگیرید.

  • سلام. با سپاس فراوون از مطالب ارزشمند شما. اگر بجای یک سنسور بخواهیم از تعداد بیشتری سنسور استفاده کنیم بعد از فراخوانی کتابخانه پایه ها را چگونه باید تعریف کنیم؟ ثابت ها؟ متغیرها؟

    • با سلام
      ضمن تشکر از توجه شما، میتوانید پایه جدید را در کدها تعریف کنید و سپس موارد دریافتی را آدرس دهی می‌کنید. در کل برای اجرا نیاز به دانش برنامه نویسی C++ دارید.

  • سلام قربان در بعضی آموزش ها چهار پورت سنسور به آردینو متصل شده یعنی یک دیجیتال هم متصل شده است میخواستم بدونم اون چطوره؟ و نحوه ی اتصال به برد آرینو لئوناردو هم همینگونست؟

    • با سلام
      ضمن تشکر از توجه شما، ماژول سنسور گاز دارای دو خروجی است، یکی دیجیتال و دیگری آنالوگ، که بسته به برد استفاده شده، می‌توان از یکی پین‌ها استفاده کرد. اینکه می‌فرمایید هر دو تا پایه را متصل کرده است؛ بستگی به پروژه دارد ولی به صورت پیش فرض نیازی به اتصال هر دو پایه نمیباشد. لازم به ذکر است که اگر کدهای مربوطه را ارسال کنید، میتوان تحلیل دقیقی در این خصوص ارایه داد.
      برای اتصال به برد لئوناردو ممکن است نیاز به تغییر پین‌های تعریف شده در کدها داشته باشید.

      • تشکر از پاسخ شما ، آقای مهندس شما چه سنسور آنالوگی برای تشخیص دی اکسید کربن و مونوکسید کربن پیشهاد میکنید که ۳ پایه باشه یا فقط خروجی ولتاژ داشته باشه که بتونم به میکرو نصب کنم

  • مرسی از توضیحاتتون ،،،،من یه سوال دارم ، اگه بخوام برنامه ای بنویسم که سنسور اول ۲۴ ساعت کار کنه و بعد مقدار رو جایگذاری کنه باید چه قسمتی بهش اضافه کنم ؟اینو هم اضافه کنم که با فرض اینکه از کتابخونه نخوایم استفاده کنیم و اونو توی برنامه گذاشته باشیم

    • سلام
      در این خصوص در ایتدا باید DELAY در کد برنامه تعریف کنید و زمان مورد نظر را تنظیم کنید.
      در خصوص سوال دوم این مورد را پیشنهاد نمیکنم.

  • سلام
    از سنسور mq135 استفاده میکنم و میخواهم مقدار رو روی lcd نشون بدم
    ولی وقتی کد ها رو اجرا میکنم lcd هیچی نشون نمیده
    البته کدها اجرا میشن و سریال پرینت دارم و در صورتی که کدهای mq135 رو پاک کنم lcd هم نوشته نشون میده!!
    لطفا راهنمایی کنید که چه کاری باید انجام بدم؟

  • عرض ادب و احترام
    خیلی ممنون بابت مطلب بسیار مفید و کاربردی
    یک سوال داشتم ، برای اتصال mq02 همین کتابخانه mq135 مورد قبوله یا باید برای mq02 کتابخانه دیگه ی استفاده بشه

  • سلام
    من یک سوال کلی در رابطه با سنسورهای MQ داشتم.
    با اینکه هر کدوم از سنسورهای MQ مختص تشخیص یک سری گاز هستند ولی چرا به گازهای دیگه هم (غیر از گازهایی که در دیتاشیت ذکرشده) واکنش نشون میدن؟ برای مثال MQ2 و MQ7 برای تشخیص گاز LPG نیستند ولی با این وجود بهش واکنش نشون میدن. همینطور سایر سنسورها
    یعنی میتونم بگم تمام سنسورهای MQ رو تست کردم و همشون بدون استثنا به گاز LPG، متان، دود، گاز طبیعی و CO2 حساس بودن. در عمل هیچ تفاوت خاصی باهم نداشتن و خب این باعث بروز خطا در نتیجه میشه و با دیتاشیتشون مغایرت داره. چرا اینطور هست؟ آیا راهی هست برای این مسئله؟

    • سلام
      از توجه شما ممنونم.
      سنسورهای سری MQ مصرف عمومی دارد و دقت و حساسیت بالایی در اندازه گیری ندارد. همچنین گاز LPG از ترکیب دو گاز تشکیل شده و دارای ناخالصی است که ممکن است اکثریت سنسورها نسبت به آن حساسیت نشان دهند. همچنین دقت کنید شرایط محیطی دما بی تاثیر نبوده و به دلیل وجود داشتن مولکول H2O در هوا ممکن است سبب حساسیت سنسور شده و نسبت به آن واکنش نشان دهد.
      یکی از روش های پیشنهادی جهت حل مشکل در آموزش گلدان هوشمتد اشاره شده است که پس از انتشار می‌توانید از آن استفاده کنید.

    • سلام
      این آموزش با برد آردوینو نوشته شده است و برای Nodemcu باید کتابخانه آن و دستورات ماکرو را فراخوانی کرد و پایه دیتا سنسور را پایه ADC یا یکی از پایه دیجیتال متصل کرد. همچنین کدها تغییر خواهد کرد که از طریق کامنت امکان توضیح کامل آن وجود ندارد.

  • سلام
    ممنون از اموزش خوبتون.
    میخواستم بدونم این سنسور در ۵۰۰میلی لیتر هوا با چه خطایی مقدار نیتروژن را نشان می دهد؟

  • سلام مهندس ضمن تشکر از مطلب خوبتون من ی سوال دارم با استفاده از این سنسور ومازول وای فای ESP8266 میخوام اطلاعات سنسور بگیره و به ماژول وای فای ارسال کنه لطفا در خصوص کد نویسی و نحوه اتصال این دوماژول بهم و اتصال به اردینو توضیح بدین.