پروژه الکترونیکپروژه های آردوینوپروژه های اندازه گیری

بررسی کیفیت هوا با آردوینو و سنسور شارپ

آلودگی هوا در بسیاری از شهرها مسئله مهمی است و شاخص کیفیت هوا هر روز بدتر می شود. بر اساس گزارش سازمان بهداشت جهانی ، تعداد افرادی که در اثر آلودگی هوا جان خود را از دست میدهند از تعداد افرادی که در سوانج رانندگی جان خود را از دست میدهند بیشتر است. ما یک پروژه برای نظارت بر کیفیت هوا با اندازه گیری تراکم ذرات گرد و غبار در هوا با استفاده از برد آردوینو ایجاد کردیم.

بنابراین در ادامه پروژه های قبلی ما مانند آشکارساز LPG ، آشکارساز دود و مانیتور کیفیت هوا ، در اینجا قصد داریم سنسور Sharp GP2Y1014AU0F را با برد آردوینو نانو راه اندازی کنیم تا چگالی گرد و غبار در هوا اندازه گیری شود. به غیر از سنسور گرد و غبار و آردوینو نانو ، از نمایشگر OLED نیز برای نمایش مقادیر اندازه گیری شده استفاده می شود. سنسور گرد و غبار Sharp’s GP2Y1014AU0F در تشخیص ذرات بسیار ریز مانند دود سیگار بسیار دقیق است و برای استفاده در دستگاه های تصفیه هوا و تهویه مطبوع طراحی شده است.

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

همچنین پروژه اندازه گیری کیفیت هوا با آردوینو (کربن دی اکسید، ترکیبات آلی و دما) را مشاهده کنید.

سنسور شارپ GP2Y1014AU0F

سنسور شارپ GP2Y1014AU0F 

Sharp GP2Y1014AU0F یک سنسور کوچک با شش پین خروجی آنالوگ که برای حس کردن ذرات گرد و غبار نوری طراحی شده است. این سنسور بر اساس اصل پراکندگی لیزر کار میکند. در داخل ماژول سنسور، یک دیود فرستنده مادون قرمز و یک حسگر نور به صورت مورب در نزدیکی سوراخ ورودی هوا قرار دارند.

با کیفیت هوای نوری / گرد و غبار نوری است که برای حس ذرات گرد و غبار در هوا طراحی شده است. بر اساس اصل پراکندگی لیزر کار می کند. در داخل ماژول سنسور ، یک دیود ساطع کننده مادون قرمز و یک حسگر نور به صورت مورب در نزدیکی سوراخ ورودی هوا قرار دارند همانطور که در تصویر زیر نشان داده شده است:

مدار داخلی سنسور کیفیت هوا شارپ سنسور شارپ GP2Y1014AU0F 

وقتی هوای حاوی ذرات گرد و غبار وارد محفظه حسگر می شود ، ذرات گرد و غبار نور ارسالی از سمت فرستنده را پراکنده میکنند و بنابراین نور کمتری به فتودیود گیرنده میرسد. با این کار سنسور از وضع کیفیت هوا با خبر میشود. هرچقدر هوا آلوده تر باشد، مقدار نوری که از سمت فرستنده ارسال میشود کمتر به فتودیود گیرنده میرسد.

پین های سنسور GP2Y1014AU0F:

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

همانطور که قبلاً اشاره شد ، سنسور GP2Y1014AU0F با یک کانکتور 6 پین ارائه می شود. شکل و جدول زیر توضیحات پین GP2Y1014AU0F را نشان می دهد:

پین های سنسور GP2Y1014AU0F:

شماره پین نام پین توضیحات پین
1 V-LED پین VCC ال ای دی، با یک مقاومت 150 اهم به 5 ولت متصل شود.
2

LED-GND پین GND ال ای دی است. به GND متصل شود.
3 LED برای روشن و خاموش کردن ال ای دی استفاده میشود، اتصال به هر پین دیجیتالی آردوینو
4 S-GND پین GND سنسور
5 VOUT پین خروجی آنالوگ سنسور
6 VCC پین + تغذیه، به 5 ولت متصل شود.

مشخصات سنسور GP2Y1014AU0F:

  • مصرف کم جریان: حداکثر 20 میلی آمپر
  • ولتاژ عملیاتی معمولی: 4.5 ولت تا 5.5 ولت
  • حداقل اندازه گرد و غبار قابل تشخیص: 0.5 میکرومتر
  • محدوده سنجش تراکم گرد و غبار: حداکثر 580 ug / m3
  • زمان سنجش: کمتر از 1 ثانیه
  • 1.81 x 1.18 x 0.69 “(46.0 x 30.0 x 17.6 mm) : ابعاد

مدار پروژه بررسی کیفیت هوا با آردوینو

شماتیک مدار برای اتصال سنسور Sharp GP2Y1014AU0F به برد آردوینو در زیر آورده شده است:

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

مدار پروژه بررسی کیفیت هوا با آردوینو

مدار بسیار ساده است زیرا ما فقط در حال اتصال سنسور GP2Y10 و ماژول نمایش OLED به آردوینو نانو هستیم. سنسور GP2Y10 و ماژول نمایش OLED هر دو به +5 ولت و GND تغذیه می شوند. پایه V0 به پایه A5 آردوینو نانو متصل است. پین LED سنسور به پین ​​دیجیتال 12 آردوینو متصل است. از آنجا که ماژول OLED از ارتباطات 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
شماره پین پین های سنسور پین های آردوینو
1 Vcc 5V
2 VO A5
3 S-GND GND
4 LED 7
5 LED-GND GND
6 V-LED 5V با مقاومت 150Ω

قطعات مورد نیاز پروژه آنالیز کیفیت هوا

  1. آردوینو نانو
  2. سنسور شارپ GP2Y1014AU0F
  3. ماژول نمایشگر OLED SSD1306
  4. خازن 220 میکرو فاراد
  5. مقاومت 150 Ω
  6. سنسور شارپ GP2Y1014AU0F

کد پروژه تحلیل کیفیت هوا با آردوینو

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

این کد از کتابخانه های Adafruit_GFX و Adafruit_SSD1306 استفاده می کند. این کتابخانه ها را می توانید از Library Manager  در نرم افزار آردوینو دانلود کنید و نصب کنید. برای این منظور ، Arduino IDE را باز کنید و به Sketch <Include Library <Manage Libraries بروید. اکنون Adafruit GFX را جستجو کرده و کتابخانه Adafruit GFX نوشته شده توسط Adafruit را نصب کنید.

به همین ترتیب ، کتابخانه Adafruit SSD1306 نوشته شده توسط Adafruit را نصب کنید.

کد پروژه تحلیل کیفیت هوا با آردوینو

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

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

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

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

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

#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);

پس از آن ، حسگر گرد و غبار و پایه های led را تعریف میکنیم. Sense pin پین خروجی سنسور گرد و غبار است که برای خواندن مقادیر ولتاژ استفاده می شود و از پین led برای روشن یا خاموش کردن Led مادون قرمز استفاده می شود.

int sensePin = A5;
int ledPin = 7;

اکنون در داخل تابع setup () ، سریال مانیتور را با نرخ 9600 راه اندازی میکنیم تا بتوانیم پروژه را در صورت نیاز اشکال زدایی کنیم. همچنین ارتباط با ماژول نمایشگر نیز آغاز میشود.

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

در عملکرد loo[، مقادیر ولتاژ را از پین 5 آنالوگ آردوینو نانو میخوانیم. ابتدا IR LED را روشن کرده و سپس قبل از خواندن ولتاژ خروجی ، 0.28 میکرو ثانیه صبر میکنیم. پس از آن ، مقادیر ولتاژ را از پایه آنالوگ میخوانیم. این عملیات حدود 40 تا 50 میکروثانیه طول می کشد ، بنابراین قبل از خاموش شدن سنسور گرد و غبار تاخیر 40 میکرو ثانیه ای ایجاد میکنیم. با توجه به مشخصات ، LED باید هر 10 ثانیه یکبار روشن شود ، بنابراین :

 10ms = 10000 – 280 – 40 = 9680 میکروثانیه

 digitalWrite(ledPin,LOW);
  delayMicroseconds(280);
  outVo = analogRead(sensePin);
  delayMicroseconds(40);
  digitalWrite(ledPin,HIGH);
  delayMicroseconds(9680);

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

sigVolt = outVo*(5/1024);
dustLevel = 0.17 * sigVolt - 0.1;

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

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

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

  display.println("Dust");
  display.println("Density");
  display.setTextSize(3);
  display.println(dustLevel);

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

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

فیلم آزمایش اتصال سنسور شارپ به آردوینو

بعد از اتصال قطعات و بارگذاری کد، نوبت به آزمایش پروژه آنالیز کیفیت هوا با سنسور شارپ و آردوینو میرسد. پس از اجرا پروژه شما باید کیفیت هوا را در نمایشگر OLED مشاهده کنید. فیلم زیر به شما در درک نحوه کار این پروژه کمک میکند.

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

پروژه ها رایگان هستند. برای دانلود فایل های پروژه باید در سایت عضو باشید. ثبت نام / ورود

نظرتان را در مورد این مطلب با ستاره دادن اعلام کنید
امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید
محمد رحیمی

محمد رحیمی

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

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

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