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

اندازه گیری PPM کربن دی اکسید با آردوینو

افزایش غلظت دی اکسید کربن در هوا اکنون به یک مشکل جدی تبدیل شده است. این افزایش CO2 روی محیط زیست تأثیر بدی گذاشته است. دستگاه های مختلفی برای اندازه گیری آلودگی هوا در نقاط مختلف نصب شده است. ما در این پروژه میخواهیم یک دستگاه اندازه گیری کربن دی اکسید CO2 را با آردوینو راه اندازی کنیم. در این پروژه از سنسور مادون قرمز جاذبه ای برای اندازه گیری PPM کربن دی اکسید با آردوینو استفاده میکنیم.

همچنین میتوانید پروژه های قبلی ما را مشاهده کنید :

مدار پروژه اندازه گیری CO2 هوا با آردوینو

شماتیک مدار برای اتصال سنسور CO2 مادون قرمز به Arduino در زیر آورده شده است:

مدار پروژه اندازه گیری CO2 هوا با آردوینو

برای یادگیری آردوینو (برنامه نویسی، ساخت ربات، ارتباط با اندروید) روی دوره آموزش آردوینو کلیک کنید.
برای یادگیری کامل الکترونیک روی دوره آموزش الکترونیک کلیک کنید.

مدار بسیار ساده است زیرا ما فقط باید سنسور CO2 و ماژول نمایشگر OLED را به آردوینو نانو متصل کنیم. حسگر CO2 و ماژول نمایشگر OLED هر دو با +5 ولت و GND تغذیه می شوند. پین Signal (Analog Out) سنسور CO2 به پایه A0 آردوینو متصل است. از آنجا که ماژول OLED Display از ارتباطات SPI استفاده می کند ، ما یک ارتباط SPI بین ماژول OLED و Arduino Nano برقرار کرده ایم. اتصالات در جدول زیر نشان داده شده است:

شماره پین نمایشگر OLED پین آردوینو
1 GND Ground
2 VCC 5V
3 D0 10
4 D1 9
5 RES 13
6 DC 11
7 CS 12

تصویر زیر مدار من بعد از اتصال تمام قطعات را نشان میدهد :

اندازه گیری کربن دی اکسید با آردوینو

قطعات مورد نیاز

سنسور CO2 مادون قرمز جاذبه ای

Gravity Infrared CO2 Sensor V1.1 سنسوری CO2 مادون قرمز آنالوگ با دقت بالا است که توسط DFRobot ساخته شده است. این سنسور بر اساس فناوری مادون قرمز غیر پراکندگی (NDIR) ساخته شده است و دارای قدرت انتخاب و وابستگی عاری از اکسیژن است. دامنه اندازه گیری موثر این سنسور از 0 تا 5000ppm با دقت 50 ± ppm + 3٪ است. این سنسور CO2 مادون قرمز می تواند در تهویه مطبوع ، نظارت بر کیفیت هوای داخل ساختمان ، فرآیند صنعتی و نظارت بر حفاظت از امنیت ، کشاورزی و نظارت بر فرآیند تولید دام استفاده شود.

سنسور CO2 مادون قرمز جاذبه ای
مشخصات و ویژگی های سنسور CO2 مادون قرمز:

  • تشخیص گاز: دی اکسید کربن (CO2)
  • ولتاژ کار: 4.5 ~ 5.5 ولت DC
  • زمان پیش گرم شدن: 3 دقیقه
  • زمان پاسخ: 120s
  • دمای کار: 0 ~ 50
  • رطوبت عملیاتی: 0 ~ 95٪ RH (بدون تراکم)
  • ضد آب و ضد خوردگی
  • عمر بالا

کد آردوینو برای اندازه گیری غلظت CO2

کد کامل پروژه در انتهای صفحه قرار داده شده است. در اینجا قسمت های مهم کد را بررسی میکنیم.

این کد از کتابخانه های Adafruit_GFX و Adafruit_SSD1306 استفاده می کند. این کتابخانه ها را با آموزش نصب کتابخانه در آردوینو، میتوانید نصب کنید.

پس از نصب کتابخانه ها در Arduino IDE ، کد را با فراخوانی کردن کتابخانه ها شروع کنید. سنسور CO2 به هیچ کتابخانه ای احتیاج ندارد زیرا خواندن مستقیماً از پین آنالوگ آردوینو انجام می شود.

#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

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

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

سپس پایه های ارتباطی SPI را در جایی که OLED Display متصل است تعریف کنید.

#define OLED_MOSI   9
#define OLED_CLK   10
#define OLED_DC    11
#define OLED_CS    12
#define OLED_RESET 13

سپس ، یک نمونه از نمایشگر Adafruit با عرض و ارتفاع مشخص شده با پروتکل ارتباطات SPI ایجاد کنید.

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

پس از آن ، پین آردوینو را در جایی که سنسور CO2 متصل است تعریف کنید.

int sensorIn = A0;

اکنون در void setup، ارتباط سریال را با نرخ 9600 و همچنین نمایشگر را راه اندازی کنید.

Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC);
analogReference(DEFAULT);

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

void loop(){
  int sensorValue = analogRead(sensorIn);
  float voltage = sensorValue*(5000/1024.0);

پس از آن ، مقادیر ولتاژ را مقایسه کنید. اگر ولتاژ 0 ولت باشد ، به این معنی است که مشکلی در سنسور رخ داده است. اگر ولتاژ بیشتر از 0 ولت باشد اما کمتر از 400 ولت باشد ، به این معنی است که سنسور هنوز در مرحله گرم شدن است.

if(voltage == 0)
  {
    Serial.println("Fault");
  }
  else if(voltage < 400)
  {
    Serial.println("preheating");
  }

اگر ولتاژ برابر یا بیشتر از 400 ولت است ، آن را به مقادیر غلظت CO2 تبدیل کنید.

else
  {
    int voltage_diference=voltage-400;
    float concentration=voltage_diference*50.0/16.0;

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

display.setTextSize(1);
display.setTextColor(WHITE);

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

    display.println("CO2");
    display.setCursor(63,43);
    display.println("(PPM)");
    display.setTextSize(2);
    display.setCursor(28,5);
    display.println(concentration);

و در مرحله آخر ، با دستور display() متن را در OLED نمایش دهید.

 display.display();
 display.clearDisplay();

بعد از اتصال تمام قطعات و آپلود کد در آردوینو، میتوانید مقادیر اندازه گیری شده را در نمایشگر OLED مشاهده کنید. همچنین در سریال مانیتور تصویری مانند زیر را مشاهده خواهید کرد.

آزمایش سنسور CO2 مادون قرمز جاذبه با آردوینو

موارد موجود در فایل : سورس کامل

دانلود فایل های پروژه

برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید.

برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام آیرنکس عضو شوید.

تصویر از محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید) سعی میکنم تمام نظرات را پاسخ دهم.

1 دیدگاه

  1. سلام . سنسور گاز کربن دی اکسید استفاده شده چقدر قیمت داره؟ و از کجا میتونم تهیش کنم

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *