اتصال سنسور گرد و غبار ریز گرد و دود به آردوینو
محتویات
گرد و غبار و دود یکی از دلایل متعدد آلودگی هوا هستند. در سال های اخیر به دلیل تغییرات آب و هوایی، آتش سوزی های جنگلی بیشتر شده است. گزارش اخیر مرکز ملی آتش نشانی بین سازمانی (NIFC) در مجموع 58733 آتش سوزی جنگلی در سراسر ایالات متحده را گزارش کرد که تنها در سال 2021 بیش از 7.13 میلیون هکتار را سوزانده است. به همین دلیل است که در این مقاله قصد داریم حسگر غبار GP2Y1014AU0F را با آردوینو راه اندازی کنیم تا حسگر ذرات گرد و غبار را به پروژه خود اضافه کنیم. این سنسور بسیار ارزان قیمت است و به راحتی میتوانید آن را خریداری کنید.
سنسور گرد و غبار GP2Y1014AU0F
ماژول حسگر غبار GP2Y1014AU0F دارای 6 پین است. آنها V-LED، LED-GND، LED، S-GND، VOUT و VCC هستند. خروجی این سنسور آنالوگ است و برای اندازه گیری گرد و غبار هوا باید این پین را به ADC یک میکروکنترلر متصل کنیم. پین اوت سنسور گرد و غبار GP2Y1014AU0F در زیر نشان داده شده است:
- V-LED این پین VCC ال ای دی است. این پایه را با یک مقاومت محدود کننده جریان 150Ω به پایه 5 ولت آردوینو وصل کنید.
- LED-GND این پین منفی LED است. این پایه را به پایه GND آردوینو وصل کنید.
- LED این پین را می توان برای روشن/خاموش کردن LED استفاده کرد. آن را به یک پین دیجیتال آردوینو وصل کنید.
- S-GND پایه زمین ماژول است و باید به پایه GND آردوینو متصل شود.
- Vout این خروجی ماژول حسگر گرد و غبار است، می توانید آن را به هر پایه آنالوگ آردوینو متصل کنید.
- VCC ماژول سنسور گرد و غبار به پایه 5 ولت یا 3.3 ولت آردوینو متصل می شود.
نحوه کار سنسور غبار GP2Y1014AU0F
عملکرد حسگر گرد و غبار GP2Y1014AU0F ساده و قابل درک است. در داخل سنسور، سه بخش اصلی وجود دارد، آنها دیود ساطع کننده نور (منبع نور)، دیود نوری (فتودیود) و یک جفت لنز هستند. LED و Photodiode در داخل سنسور طوری قرار گرفته اند که دو محور نوری از ناحیه تشخیص در سنسور عبور می کنند. هنگامی که گرد و غبار یا دود وارد ناحیه تشخیص سنسور می شود، نور داخل سنسور از گرد و غبار یا دود منعکس می شود، در نتیجه جریان تولید شده توسط فتودیود متناسب با میزان نور شناسایی شده تغییر می کند. تغییرات ولتاژ خروجی میزان گرد و غبار محیط را به ما نشان میدهد.
برای کار با سنسور فقط به دو پایه از شش پین نیاز دارید. اولی LED را فعال می کند و دومی سیگنال آنالوگ را از سنسور خارج می کند. مقاومت R1=150Ω و خازن C1=220uF که در بالا ذکر شد برای کنترل پالس LED مورد نیاز است. بدون مقاومت و خازن، ماژول کار نمی کند. برای دریافت اطلاعات مورد نظر از سنسور، باید LED را با یک پالس 10 میلیثانیه روشن کنید که در آن عرض پالس نباید بیشتر از 0.32 میلیثانیه باشد. و همانطور که توسط دیتاشیت توصیه شده است، باید سیگنال را پس از 0.28 میلی ثانیه نمونه برداری کنیم.
مدار سنسور گرد و غبار آردوینو
اکنون که درک کاملی از نحوه عملکرد سنسور گرد و غبار GP2Y1014AU0F داریم، میتوانیم تمام سیمهای مورد نیاز را به آردوینو متصل کنیم و سپس کد خود را بنویسیم تا دادهها از ماژول حسگر خارج شود. شماتیک اتصال سنسور گرد و غبار GP2Y1014AU0F به آردوینو در زیر آورده شده است.
اتصال سنسور گرد و غبار GP2Y1014AU0F با آردوینو بسیار ساده و آسان است. همانطور که از بحث بالا می دانیم، این سنسور داده ها را با ولتاژ متغیر در پایه خروجی ارائه می دهد. بنابراین باید از ADC آردوینو برای تبدیل و محاسبه داده ها به مقدار قابل تشخیص استفاده کنیم. همچنین باید پین ال ای دی سنسور را به یکی از پایه های GPIO آردوینو وصل کنیم، این سیم سفید است که به D7 آردوینو متصل است. در نهایت، ما به یک مقاومت 150 اهم و یک خازن 220uF نیاز داریم. مقاومت و خازن یک مدار تایمر RC می سازند که در اینجا یک مدار راه انداز پالس است که برای عملکرد پایدار دستگاه کاملاً اجباری است.
کد آردوینو برای ماژول حسگر غبار GP2Y1014AU0F
کد آردوینو برای پردازش داده های حسگر GP2Y1014AU0F بسیار ساده و قابل درک است. ما فقط باید ولتاژ آنالوگ داده شده توسط سنسور را به داده دیجیتال تبدیل کنیم تا نتیجه خود را بدست آوریم.
کد کامل در فایل دانلودی انتهای صفحه قرار داده شده است. در اینجا قسمت های مهم کد را توضیح میدهیم.
کد خود را با تعریف پایه ورودی آنالوگ دستگاه شروع می کنیم و همچنین یک پین دیجیتالی تعریف می کنیم که برای کنترل LED استفاده خواهد شد. در مرحله بعد، ما سه متغیر را تعریف کردهایم که مقادیر زمانبندی لازم برای محاسبه گرد و غبار اندازهگیری شده توسط سنسور را در خود نگه میدارند. در مرحله بعد، ما سه متغیر float داریم که نتیجه تولید شده توسط سنسور را نگه می دارند.
#define measurePin = 0; //اتصال خروجی سنسور گرد و غبار #define ledPower = 7; //اتصال پین فعال سازی ال ای دی سنسور int samplingTime = 280; // زمان بندی محاسبه int deltaTime = 40; // int sleepTime = 9680; float voMeasured = 0; float calcVoltage = 0; float dustDensity = 0;
سپس، ما تابع setup را داریم. در تابع setup، ارتباط سریال را برای اشکال زدایی فعال می کنیم و ledpin را به عنوان خروجی تعیین میکنیم.
void setup(){ Serial.begin(9600); pinMode(ledPower,OUTPUT); }
سپس ما تابع loop خود را داریم. در تابع loo[ ، فرآیند اندازه گیری را که توسط دیتاشیت توصیه شده است، شروع می کنیم. کل فرآیند اندازه گیری حدود 0 میلی ثانیه طول می کشد اما دوره نمونه برداری 0.28 میلی ثانیه است. ابتدا ledpin را LOW می کنیم که led را روشن می کند و از تابع delayMicroseconds() برای ایجاد تاخیر 280us یا 0.28mS استفاده می کنیم که توسط دیتاشیت توصیه شده است. سپس نمونه خود را می گیریم و تأخیر 40uS دیگری اضافه می کنیم، این اطمینان می دهد که عرض پالس در 0.32ms یا 320us باقی می ماند و ما برای بقیه 9680uS صبر میکنیم.
digitalWrite(ledPower,LOW); // خاموش کردن ال ای دی (samplingTime); voMeasured = analogRead(measurePin); // ذخیره مقدار گرد و غبار delayMicroseconds(deltaTime); digitalWrite(ledPower,HIGH); //روشن کردن ال ای دی delayMicroseconds(sleepTime);
سپس مقدار ولتاژ را با استفاده از مقدار ADC محاسبه می کنیم. لطفاً مطمئن شوید که آردوینو شما با منبع +5 ولت مناسب تغذیه می شود و با USB تغذیه نمی شود.
calcVoltage = voMeasured * (5.0 / 1024.0);
در نهایت، با استفاده از معادله خطی ارائه شده توسط کریس نفیس، مقدار ذرات گرد و غبار معلق را محاسبه می کنیم. نتیجه در سریال مانیتور چاپ میشود.
dustDensity = 170 * calcVoltage - 0.1; Serial.println(dustDensity); delay(1000);
گیف زیر مدار سخت افزاری سنسور گرد و غبار GP2Y1014AU0F با آردوینو را نشان می دهد. در سمت چپ، آردوینو را با سنسور GP2Y1014AU0F متصل به پین ADC آردوینو قرار داده ایم و در سمت راست پنجره سریال مانیتور را داریم و همانطور که می بینید، وقتی کمی آلودگی (دود) به سنسور برسد، مقادیر در سریال مانیتور تغییر میکند.
موارد موجود در فایل : فایل سورس کامل
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود
سلام
فایل سورس خرابه لطفاً به صورت pdf قرار بدید. ممنون
سلام عزیز
بررسی شد فایل سورس سالم هست
با نرم افزار Winrar باز کنید