این روزها آلودگی هوا یکی از معظلات جامعه شده است شاید برای شما خیلی جالب باشد که آلودگی هوای شهر خود را اندازهگیری کنید ، برای این کار میتوانید از سنسور تشخیص آلودکی هوا MQ135 استفاده کنید . با استفاده از این سنسور به همراه برد آردوینو میتوانید یک آشکارساز آلودگی هوا قابل حمل بسازید. در ادامه آموزش با مرجع تخصصی آردوینو به زبان فارسی ، دیجی اسپارک همراه باشید.
سنسور گازی MQ135
برخی از مشخصات فنی این سنسور به شرح زیر است:
- ولتاژ کاری: ۵ ولت DC
- جریان مصرفی: کمتر از ۱۵۰ میلیآمپر
- خروجی آنالوگ: ولتاژ بین ۰ تا ۵ ولت که با تغییر غلظت گاز، مقدار آن تغییر میکند.
- زمان پاسخدهی: کمتر از ۱۰ ثانیه
- عمر مفید: بین ۲ تا ۵ سال (بستگی به شرایط کاری دارد)
ویژگی سنسور گاز الکل MQ135
- خروجی آنالوگ بین
- ولتاژ تعذیه ۵ ولت DC یا AC
- جریان مصرفی ۱۸۰ میلیآمپر
- دمای کاری منفی ۱۰ الی ۷۰ درجه سانتیگراد
- توان هیتر داخلی کمتر از ۷۵۰ میلیوات
- سازگاری با آردوینو و انواع میکروکنترلرها
طریقه عملکرد سنسور گاز MQ135
هدایت الکتریکی سنسور با زیاد شدن غلظت گاز الکل در محیط به شدت افزایش مییابد در واقع برخورد مولکولهای گاز الکل با آلیاژ به کار رفته در سنسور باعث تغییرات شیمیایی در این آلیاژ و در نتیجه تغییر در رسانایی سنسور میشود و با تبدیل این تغییرات به ولتاژ میتوان میزان تغییرات در غلظت گاز الکل محیط را اندازه گیری کرد.سنسور گاز MQ135 بر اساس تغییر مقاومت الکتریکی آن به واسطه تغییرات ترکیب هوا و حضور گازها در محیط کار میکند. این سنسور دارای یک الکترود حساس به گاز است که با تغییر ترکیب هوا و نوع گازهای موجود، مقاومت آن تغییر میکند. این تغییر مقاومت به وسیلهی یک مدار الکترونیکی خاص تبدیل به سیگنال خروجی میشود که میتواند با استفاده از میکروکنترلر یا مدارهای دیجیتال دیگر تفسیر شود.
- گرماکننده: وقتی برق به سنسور داده میشود، گرماکننده شروع به کار میکند. این گرماکننده یک عنصر حرارتی است که مقاومت الکتریکی آن با تغییر دما تغییر میکند و باعث افزایش دمای داخل سنسور میشود.
- تغییر مقاومت: در حالت عادی، هنگامی که هوا به خوبی تهویه شده و گازهای آلودهکننده در محیط وجود ندارند، هوا با آلایندهها در تماس نیست و مقاومت الکتریکی الکترود حساس به گاز کاهش مییابد.
- تغییرات در حضور گاز: اگر در محیط گازهای آلودهکننده وجود داشته باشد، این گازها با سطح الکترود حساس به گاز تعامل میکنند و مقاومت آن تغییر میکند. این تغییر مقاومت مربوط به نوع گاز و غلظت آن میشود.
- تبدیل به سیگنال خروجی: تغییر مقاومت الکتریکی سنسور توسط مدار الکترونیکی داخلی به سیگنال الکتریکی تبدیل میشود. این سیگنال خروجی میتواند به صورت ولتاژ آنالوگ برای اندازهگیری تغییرات گازها استفاده شود.
- تفسیر دادهها: سیگنال خروجی میتواند توسط میکروکنترلر یا مدارهای دیگر تفسیر شود. میکروکنترلر میتواند اطلاعات مربوط به نوع و غلظت گازها را دریافت و به صورت عددی نمایش دهد یا از طریق رابطها به سیستمهای دیگر انتقال دهد.
اجزای سنسور MQ135
همانطور که در شکل زیر مشاهده میکنید سنسور گاز الکل MQ135 از۶ پین تشکبل شده است.
دو پین A و دو پین B دو صفحهای را تشکیل میدهند که با برخورد مولکولهای گاز الکل به این دوصفحه رسانایی آنها تغییر میکند. دو پین H از طریق یک هیتر به یکدیگر متصل هستند و با اعمال ولتاژ عملیات گرم کردن فضای بین دو صفحه A و B را حهت آمادهسازی محیط دو صفحه برای ایجادحساسیت مناسب سنسور را انجام میدهد. در ابتدای اتصال این سنسور به ۵ ولت DC ، ولتاژ خروجی از ۵ ولت شروع به کم شدن می کند و نهایتا بعد از یک تایم حدود یک ساعت به یک سطح ولتاژ نسبتا ثابت می رسد( حدودا ۰٫۷۳ ولت) . زیرا در ابتدای اتصال فضای بین دو صفحه اصلی سنسور سرد است و هدایت الکتریکی آن بسیار پایین میباشد و با گذشت زمان هیتر کم کم گرم شده و مقاومت افرایش پیدا میکند و ولتاژ خروجی نیز متقابلا کاهش پپدا میکند.
توجه: همانطور که گفته شد برای فعال شدن این سنسور از هیتر داخلی استفاده میشود. پس توجه داشته باشید که هرچه این سنسور مدت زمان بیشتری روشن باشد ، دقت و حسایت آن بیشتر است.
اتصال سنسور گاز MQ135 به آردوینو
برای سادگی کار ما از برد راهانداز سنسورهای سری MQ استفاده کردهایم به طوری که سنسور گاز به راحتی بر روی این برد قرار میگیرد و سپس این برد به سیله ۳ عدد سیم به برد آردوینو Arduino متصل میشود.
کد و نصب کتابخانه سنسور 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); }
سخت افزار مورد نیاز
بورد راه انداز سنسور تشخیص گازهای MQ
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
سلام
با تشکر از آموزشهای خوبتان
من برای یک پروزه نیاز دارم که گازهای
CO , HC , O2 , CO2 را دیتکت و آنالیز کنم
لطفا راهنمایی کنید که برای این کار و توسط فقط یک برد اوردینو یونو . دقیقا از کدام سنسور ها برای کدام گاز باید استفاده کنم ( لطفا مناسبترین سنسور را از لحاظ قیمت اعلام بفرمایید )
همچنین آیا میتوان به طور همزمان این گازها سنس کرد ؟
سلام خواهش میکنم
در لینک زیر تمام سنسور های گاز سری mq همراه با توضیحات و نوع کاربردشون قرار داده شده که با مطالعه هر کدوم از اون ها میتونین سنسو مورد نظر خود را انتخاب کنید
کدوم لینک؟
با سلام
ضمن عذرخواهی بابت موضوع بوجود آمده، شما میتوانید با مراجعه به لینک سنسور mq علاوه بر دانلود دیتاشیت هرکدام از سنسورها، راجع به آنها اطلاعات کسب کنید و سوالاتتان را همانجا در قسمت نظرات بنویسید.
با سلام ، برای کار با سنسور MQ5 چه طور باید عمل کنیم ؟ چهطور ماژول رو کالیبره کنیم؟
سلام
لطفا سوال خود را واضح تر بیان کنید. در آموزش کاملا به بررسی سنسور MQ135 پرداخته شده است. برای اتصال هم میتوانید از برد سنسور گاز برای اتصال سنسور با بردهای میکروکنترلر استفاده نمایید.
عرض سلام و احترام خدمت شما دوست عزیز.
کتابخانه mq135 رو از کجا میتونم دانلود کنم؟ لطفا راهنمایی بفرمایید. متشکرم.
سلام
لینک دانلود کتابخانه در صفحه محصول سنسور تشخیص گاز MQ135 مخصوص اینترنت اشیاء IOT ، در قسمت دانلود قرار گرفته شده است. بر روی لینک کلیک کرده و دانلود نمایید.
سلام
آموزش های جالبی بودن
ممنون
بنده برای اجرای یک طرح، نیاز ب این دارم ک اگه غلظت گاز از حد مجاز (قابل تعریف توسط خودم) بیشتر بود، دستگاه عملی رو انجام بده، مثلا برای مقدار X ppm چراغ نارنجی و برای غلظت Y ppm چراغ قرمز رو روشن کنه.
آیا با سنسور MQ135 و برد آردوینو Arduino همچین امکانی وجود داره؟! (و اگه آره، لطفاً کمی در مورد برنامه نویسی و احتمالاً قطعات اضافی مورد نیاز توضیح بدین.)
پیشاپیش از همکاری شما سپاسگزارم.
سلام
با ترکیب ماژول mq و آردوینو با نرم افزار Node-RED و یا پایتون میتوانید شرط گذاری کنید. پیشنهاد میشود از آموزش های ترکیبی نودرد و آردوینو استفاده کنید و ایده بگیرید.
سلام. با سپاس فراوون از مطالب ارزشمند شما. اگر بجای یک سنسور بخواهیم از تعداد بیشتری سنسور استفاده کنیم بعد از فراخوانی کتابخانه پایه ها را چگونه باید تعریف کنیم؟ ثابت ها؟ متغیرها؟
با سلام
ضمن تشکر از توجه شما، میتوانید پایه جدید را در کدها تعریف کنید و سپس موارد دریافتی را آدرس دهی میکنید. در کل برای اجرا نیاز به دانش برنامه نویسی C++ دارید.
با سلام لطفا عکس از خروجی برنامه هم بذارید لطفا
چه اطلاعاتی بهمون خروجی میده ؟
با سلام
ضمن تشکر از توجه شما، در این خصوص نویسنده پست باید اقدام کنند. که در حال حاضر امکان اجرا مجدد این پروژه وجود ندارد.
سلام قربان در بعضی آموزش ها چهار پورت سنسور به آردینو متصل شده یعنی یک دیجیتال هم متصل شده است میخواستم بدونم اون چطوره؟ و نحوه ی اتصال به برد آرینو لئوناردو هم همینگونست؟
با سلام
ضمن تشکر از توجه شما، ماژول سنسور گاز دارای دو خروجی است، یکی دیجیتال و دیگری آنالوگ، که بسته به برد استفاده شده، میتوان از یکی پینها استفاده کرد. اینکه میفرمایید هر دو تا پایه را متصل کرده است؛ بستگی به پروژه دارد ولی به صورت پیش فرض نیازی به اتصال هر دو پایه نمیباشد. لازم به ذکر است که اگر کدهای مربوطه را ارسال کنید، میتوان تحلیل دقیقی در این خصوص ارایه داد.
برای اتصال به برد لئوناردو ممکن است نیاز به تغییر پینهای تعریف شده در کدها داشته باشید.
تشکر از پاسخ شما ، آقای مهندس شما چه سنسور آنالوگی برای تشخیص دی اکسید کربن و مونوکسید کربن پیشهاد میکنید که ۳ پایه باشه یا فقط خروجی ولتاژ داشته باشه که بتونم به میکرو نصب کنم
خواهش میکنم، در این خصوص سنسورهای سری MQ برای مصرف عمومی مناسب میباشند. البته بسته به حساسیت پروژه و فعالیتتان باید سنسور را انتخاب کنید.
مرسی از توضیحاتتون ،،،،من یه سوال دارم ، اگه بخوام برنامه ای بنویسم که سنسور اول ۲۴ ساعت کار کنه و بعد مقدار رو جایگذاری کنه باید چه قسمتی بهش اضافه کنم ؟اینو هم اضافه کنم که با فرض اینکه از کتابخونه نخوایم استفاده کنیم و اونو توی برنامه گذاشته باشیم
سلام
در این خصوص در ایتدا باید DELAY در کد برنامه تعریف کنید و زمان مورد نظر را تنظیم کنید.
در خصوص سوال دوم این مورد را پیشنهاد نمیکنم.
سلام
از سنسور mq135 استفاده میکنم و میخواهم مقدار رو روی lcd نشون بدم
ولی وقتی کد ها رو اجرا میکنم lcd هیچی نشون نمیده
البته کدها اجرا میشن و سریال پرینت دارم و در صورتی که کدهای mq135 رو پاک کنم lcd هم نوشته نشون میده!!
لطفا راهنمایی کنید که چه کاری باید انجام بدم؟
لطفا جواب بدین
سلام
ضمن عذرخواهی بابت تاخیر در پاسخگویی، تعداد کامنت ها بسیار زیاد است و با توجه به اولویت در حال پاسخگویی میباشد.
در کامنت قبل پاسخ داده شد. بررسی کنید و نتیحه را اعلام کنید.
با تشکر از شما
خواهش میکنم.
سلام
با کامپایل کردن برنامه آیا دیتا در سریال مانیتور به درستی نمایش داده میشود؟
بله در سریال به درستی نمایش داده میشه.
اگر از ال سی دی کاراکتری استفاده میکنید برای راهنمایی سریعتر به آموزش راه اندازی سه مدل ال سی دی کاراکتری مراجعه کنید.
سپس با توجه به نوع ال سی دی مورد استفاده از سه کد استفاده نمایید.
بررسی و سوالات خود را از طریق همان پست بپرسید تا راهنمایی کنم.
بله از LCD کارکتری استفاده میکنم.
به تنهایی بدون تابع های MQ135 ال سی دی به درستی کار میکنه.
ولی با اولین تابع از MQ135 ال سی دی از کار میوفته
با این وجود اروری در کدها وجود دارد که باید بررسی گردد. از طریق پست لینک شده در ارتباط باشید.
وقتی کامپایل میکنم ارور نمیده .
چطوری میتونم براتون کد ها رو بفرستم؟
دقت کنید در خیلی از موارد ارور مشخص کننده ایراد برنامه نیست. باید نحوهی فراخوانی دستورات صحیح باشد.
آیا از کدهای دیجی اسپارک استفاده میکنید؟
بله
عرض ادب و احترام
خیلی ممنون بابت مطلب بسیار مفید و کاربردی
یک سوال داشتم ، برای اتصال mq02 همین کتابخانه mq135 مورد قبوله یا باید برای mq02 کتابخانه دیگه ی استفاده بشه
سلام
از توجه شما ممنونم.
اگر منظور شما سنسور MQ2 میباشد، باید از کتابخانه MQ2 استفاده کنید. کتابخانه آن در لینک زیر در قسمت دانلود قرار گرفته شده است.
کتابخانه سنسور تشخیص گاز MQ2 Gas Sensor
سپاس از توجه شما
بله MQ2 منظورم هست ، توی کد آردوینو بجای MQ2 ، MQ135 بزارم ؟
تغییر دیگه ی نیاز نیست ؟
خواهش میکنم.
باید کتابخانه MQ2 را دانلود و به جای کتابخانه MQ135 قرار دهید. خیر تغییر دیگری نیاز نیست.
سلام
من یک سوال کلی در رابطه با سنسورهای MQ داشتم.
با اینکه هر کدوم از سنسورهای MQ مختص تشخیص یک سری گاز هستند ولی چرا به گازهای دیگه هم (غیر از گازهایی که در دیتاشیت ذکرشده) واکنش نشون میدن؟ برای مثال MQ2 و MQ7 برای تشخیص گاز LPG نیستند ولی با این وجود بهش واکنش نشون میدن. همینطور سایر سنسورها
یعنی میتونم بگم تمام سنسورهای MQ رو تست کردم و همشون بدون استثنا به گاز LPG، متان، دود، گاز طبیعی و CO2 حساس بودن. در عمل هیچ تفاوت خاصی باهم نداشتن و خب این باعث بروز خطا در نتیجه میشه و با دیتاشیتشون مغایرت داره. چرا اینطور هست؟ آیا راهی هست برای این مسئله؟
سلام
از توجه شما ممنونم.
سنسورهای سری MQ مصرف عمومی دارد و دقت و حساسیت بالایی در اندازه گیری ندارد. همچنین گاز LPG از ترکیب دو گاز تشکیل شده و دارای ناخالصی است که ممکن است اکثریت سنسورها نسبت به آن حساسیت نشان دهند. همچنین دقت کنید شرایط محیطی دما بی تاثیر نبوده و به دلیل وجود داشتن مولکول H2O در هوا ممکن است سبب حساسیت سنسور شده و نسبت به آن واکنش نشان دهد.
یکی از روش های پیشنهادی جهت حل مشکل در آموزش گلدان هوشمتد اشاره شده است که پس از انتشار میتوانید از آن استفاده کنید.
سلام
سلام
لطفا سوالات خود را کامل بپرسید.
با سلام ، اگه بخواهیم این سنسور رو به NodeMCU وصل کنیم پایه دیتا رو چه جوری باید کنترل کرد ؟
سلام
این آموزش با برد آردوینو نوشته شده است و برای Nodemcu باید کتابخانه آن و دستورات ماکرو را فراخوانی کرد و پایه دیتا سنسور را پایه ADC یا یکی از پایه دیجیتال متصل کرد. همچنین کدها تغییر خواهد کرد که از طریق کامنت امکان توضیح کامل آن وجود ندارد.
سلام
ممنون از اموزش خوبتون.
میخواستم بدونم این سنسور در ۵۰۰میلی لیتر هوا با چه خطایی مقدار نیتروژن را نشان می دهد؟
با سلام
در این خصوص دیتاشیت را بررسی کنید.
سلام مهندس ضمن تشکر از مطلب خوبتون من ی سوال دارم با استفاده از این سنسور ومازول وای فای ESP8266 میخوام اطلاعات سنسور بگیره و به ماژول وای فای ارسال کنه لطفا در خصوص کد نویسی و نحوه اتصال این دوماژول بهم و اتصال به اردینو توضیح بدین.
با سلام
امکان بررسی پروژه جدید خارج از موضوع آموزش فراهم نیست.
اگه بخوام زمانی که مقدار به زیاد شد یک چراغ قرمز و زمانی که هوای عادی بود چراغ سبز و زمانی که متوسط بود چراغ زرد روشن بشه باید چکار کنم
با سلام
برای ایجاد یک سیستم تشخیص آلودگی با استفاده از سنسور MQ135 و آردوینو که یک چراغ قرمز را در صورت آلودگی بیش از حد، یک چراغ سبز در صورت هوای عادی، و یک چراغ زرد در صورت متوسط آلودگی روشن کند، میتوانید مراحل زیر را دنبال کنید:
۱- اتصال سنسور MQ135 به آردوینو:
اتصال پایه A0 سنسور به پایه تحتانی آردوینو.
اتصال پایه D0 سنسور به پایه دلخواه آردوینو (برای استفاده از خروجی دیجیتال).
اتصال پایه VCC سنسور به پایه ۵V آردوینو.
اتصال پایه GND سنسور به پایه GND آردوینو.
۲- نوشتن کد آردوینو:
برنامهای بنویسید که مقدار خواندهشده از سنسور را بخواند.
بر اساس مقدار آلودگی، یکی از چراغهای قرمز، سبز یا زرد را روشن کند.
میتوانید از دستورات if و else if برای اعمال شرایط استفاده کنید.
مقدارهای آستانه را بر اساس نیاز خود تنظیم کنید.
۳- قرار دادن LED ها:
قرار دهید یک LED قرمز به پایه ۲، یک LED سبز به پایه ۳ و یک LED زرد به پایه ۴ آردوینو.
۴- تست و ارتباط با برد Arduino:
برنامه را به برد آردوینو خود آپلود کرده و مطمئن شوید که اتصالات صحیح است.
مقادیر آستانه را در کد تنظیم کنید تا به نتایج مطلوب برسید.
۵- تنظیمات پیشرفته (اختیاری):
میتوانید مقادیر آستانه را به صورت پویا تغییر دهید یا حتی از سایر حسگرها برای بهترین تشخیص استفاده کنید.
با انجام این مراحل، سیستم شما به طور خودکار چراغ مناسب را بر اساس میزان آلودگی هوا روشن خواهد کرد.
const int analogPin = A0;
const int redLED = 2;
const int greenLED = 3;
const int yellowLED = 4;
void setup() {
pinMode(analogPin, INPUT);
pinMode(redLED, OUTPUT);
pinMode(greenLED, OUTPUT);
pinMode(yellowLED, OUTPUT);
}
void loop() {
int sensorValue = analogRead(analogPin);
if (sensorValue > 800) {
digitalWrite(redLED, HIGH);
digitalWrite(greenLED, LOW);
digitalWrite(yellowLED, LOW);
} else if (sensorValue > 400) {
digitalWrite(redLED, LOW);
digitalWrite(greenLED, LOW);
digitalWrite(yellowLED, HIGH);
} else {
digitalWrite(redLED, LOW);
digitalWrite(greenLED, HIGH);
digitalWrite(yellowLED, LOW);
}
delay(1000); // انتظار ۱ ثانیه و سپس تکرار
}
شاد و پیروز باشید.
سلام چطور میتونم با برد رزبری سنسور الودگی هوارو راه اندازی کنم
با سلام
از مبدل استفاده کنید.