اندازه گیری غلظت CO2 هوا با استفاده از آردوینو و سنسور MQ-135

MQ-135

در این پروژه ، ما قصد داریم از یک سنسور MQ-135 با آردوینو برای اندازه گیری غلظت CO2 استفاده کنیم. مقادیر غلظت CO2 اندازه گیری شده بر روی ماژول OLED نمایش داده می شود .

المان های مورد نیاز

آردوینو Nano
سنسور MQ-135
سیم های جامپر
ماژول SSD1306
برد بورد
مقاومت 22KΩ

SSD1306

 

برای این پروژه ، از SSD1306 که یک صفحه ی نمایشگر دو رنگ است استفاده می کنیم. این دستگاه می تواند بر روی سه پروتکل ارتباطی مختلف کار کند: حالت 3 سیمه SPI  ، حالت 4 سیمه SPI و حالت I2C. در ادامه با اصول اولیه صفحه نمایش OLED آشنا می شویم .

مشخصات OLED:

اندازه: 0.96 اینچ
نوع صفحه نمایش: OLED
چیپ درایور: SSD1306
رزولوشن: 64 * 128 (پیکسل)
اندازه ماژول: 27.8 × 27.3 میلی متر
دمای کاری: 70 ~ 20- درجه سانتی گراد
دمای نگهداری: 80 ~ 30- درجه سانتی گراد
ولتاژ کاری: 3.3 ولت / 5 ولت
توان مصرفی: با تمام روشنایی حدود 25 میلی آمپر و در حالت خاموش حدود 1.5 میلی آمپر.

راه اندازی سنسور MQ-135

سنسور گاز MQ-135 یک سنسور کیفیت هوا برای تشخیص طیف وسیعی از گازها از جمله NH3 ، NOx ، الکل ، بنزن ، دود و CO2 است. در این پروژه ، ما از یک ماژول سنسور MQ-135 برای اندازه گیری غلظت CO2 در هوا استفاده می کنیم. دیاگرام مدار برای برد MQ-135 به صورت زیر است:

 

MQ-135

مقاومت بار RL نقش بسیار مهمی در کارکرد سنسور دارد. این مقاومت با توجه به غلظت گاز مقدار مقاومت خود را تغییر می دهد. با توجه به دیتاشیت MQ-135 ، مقدار مقاومت بار می تواند در هر نقطه از 10KΩ تا 47KΩ متغیر باشد.

MQ-135

بنابراین برای اندازه گیری CO2 با دقت بالاتر ، باید مقاومت 1KΩ را با مقاومت 22KΩ جایگزین کنید تا مقدار اندازه گیری شده به واقعیت نزدیک تر باشد.

دیاگرام مدار اتصال MQ135 و OLED به آردوینو

Circuit Diagram to Interface MQ135 with Arduino

مدار بسیار ساده است زیرا ما فقط ماژول سنسور MQ-135 و صفحه نمایش OLED را به آردوینو نانو متصل می کنیم. سنسور گاز MQ-135 و ماژول نمایش OLED هر دو با +5V و GND تغذیه می شوند. پین Analog Out سنسور MQ-135 به پین A0 آردوینو نانو متصل می کنیم. از آنجا که ماژول صفحه نمایش OLED از ارتباط SPI استفاده می کند ، ما یک ارتباط SPI بین ماژول OLED و آردوینو نانو برقرار کرده ایم. اتصالات را درجدول زیر نشان داده ایم:

محاسبه مقدار Ro سنسور MQ-135

اکنون که مقدار RL را می دانیم ، حال مقدار Ro در هوای پاک را بدست می آوریم. ابتدا کتابخانه MQ-135 دانلود می کنیم ، از کد زیر برای خواندن مقادیر Ro استفاده می کنیم:

اکنون که مقادیر Ro را تغییر داده ایم ، به مسیر زیر می رویم و فایل MQ135.h را باز کرده و مقادیر RLOAD & RZERO را تغییر می دهیم.
تا مقادیر رفرنس ما در کتابخانه جهت خواندن میزان فعلی گاز در اتمسفر صحیح باشد.

Documents > Arduino > libraries > MQ135-master folder

کد آردوینو برای اندازه گیری CO2 با استفاده از سنسور MQ135

از کتابخانه های Adafruit_GFX و Adafruit_SSD1306 و MQ135.h استفاده می کنیم.

عرض و ارتفاع OLED را تعریف می کنیم . در این پروژه ، ما از یک صفحه نمایش 128 × 64 SPI OLED استفاده می کنیم. می توانیم متغیرهای SCREEN_WIDTH و SCREEN_HEIGHT را با توجه به صفحه نمایش خود تغییر دهیم.

سپس پین های ارتباطی OLEDرا تعریف می کنیم.

پس از آن ، پین آردوینو را که سنسور MQ-135 به آن متصل است پیکربندی می کنیم.

اکنون در داخل تابع  ()setup ، به صفحه نمایش OLED با تابع ()begin  مقدار اولیه میدهیم.

در داخل تابع () loop ، ابتدا با فراخوانی تابع () analogRead  مقادیر سیگنال را در پین آنالوگ آردوینو می خوانیم.

سپس در خط بعدی با دستور ()Sensor.get PPM مقدار ppm گاز را در سریال مانیتور مشاهده می کنیم.

پس از آن ، اندازه متن و رنگ متن را با استفاده از() setTextSize  و ()setTextColor تنظیم می کنیم.

سپس در خط بعدی ، موقعیتی را که متن با استفاده از متد setCursor (x ، y) شروع می شود ، تعریف می کنیم. و مقادیر CO2 را روی صفحه نمایش OLED با استفاده از تابع () display.println چاپ می کنیم.

و در آخر ، متد ()display را فراخوانی کنید تا متن روی صفحه نمایش OLED نمایش داده شود.

پس از آماده شدن سخت افزار و کد ، زمان تست سنسور است. برای این کار ، Arduino را به لپ تاپ متصل کرده ، پورت و برد را انتخاب کرده و دکمه آپلود را فشار می دهیم سپس مانیتور سریال خود را باز کرده و مدتی منتظر می مانیم (فرآیند پیش گرم کردن) ، سپس داده های نهایی را مشاهده خواهیم کرد. مقادیر مطابق شکل زیر بر روی صفحه نمایش OLED نمایش داده می شوند:

Measuring-CO2-Concentration-using-Arduino