![](https://duino4projects.com/wp-content/uploads/2021/05/Machine-Learning-With-the-Arduino-Air-Quality-Prediction.jpg)
پیشبینی کیفیت هوا پروژهای است که توسعه آردوینو و یادگیری ماشین را متعادل میکند. من همیشه دنیای یادگیری ماشینی را جذاب میدانستم، اما هرگز نتوانستم مدلها را روی دادههای زمان واقعی اجرا کنم. آردوینوها راه حلی را با مجموعه وسیعی از حسگرها ارائه می دهند که روی میکروکنترلرهای خود پشتیبانی می شوند. در نتیجه، میدانستم که میخواهم یادگیری ماشین را با آردوینو برای پروژه جانبی خود در کلاس اصول مهندسی خانم برباوی بررسی کنم . در این پروژه از سطوح گذشته دما، رطوبت، فشار و کیفیت هوا برای پیش بینی کیفیت هوا در آینده استفاده خواهیم کرد.
این Instructable به طور عمیق در مورد چگونگی ساخت یک مدل یادگیری ماشینی از ابتدا با استفاده از پایتون توضیح می دهد. سپس، نحوه تغذیه داده ها از آردوینو به رایانه و اجرای آن از طریق یک مدل برای ایجاد یک پیش بینی را بررسی خواهیم کرد.
تدارکات
مواد:
- آردوینو اونو
- Adafruit BME 280 - سنسور دما، رطوبت و فشار
- Grove HM3301 & Grove Cable (همراه با سنسور) – لیزری سنسور گرد و غبار PM2.5
- Grove Base Shield
- 4 کابل جامپر
- کابل پرینتر USB
- چوب و اکریلیک 1/8 اینچ
- چسب گوریلا
نرم افزار:
- پایتون
- آردوینو IDE
- آزمایشگاه ژوپیتر / نوت بوک ژوپیتر
کتابخانه های پایتون:
مرحله 1: جمع آوری داده ها
![](https://duino4projects.com/wp-content/uploads/2021/05/Collecting-Data.jpg)
برای آموزش مدل، باید داده هایی برای تغذیه آن داشته باشیم. برای این پروژه، همانطور که قبلاً اشاره کردم، ترجیح دادم آن را با مجموعه دادههایی از شهرستان ناپا، کالیفرنیا آموزش دهم، زیرا مستعد آتشسوزی است و من در نزدیکی آن زندگی میکنم. با این حال، روشهای زیر قطعاً میتوانند برای سایر مکانهای مورد علاقه اعمال شوند.
ابتدا به داده های کیفیت هوا نیاز داریم. این مقدار Y برای مدل یادگیری ماشین ما برای پیشبینی خواهد بود. آژانس حفاظت از محیط زیست داده های کیفیت هوا را برای سنسورهای تشخیص مختلف در سراسر ایالات متحده ارائه می دهد. اکثر استان ها حداقل یک سنسور دارند.
1) به بخش داده های ساعتی بروید و سپس به بخش ذرات بروید. یک بخش روزانه و یک ساعتی وجود دارد، بنابراین باید از بخش روزانه و به بخش ساعتی عبور کنید.
2) برای این پروژه، من از سال 2017 همه داده ها را دانلود کردم، اما خواننده ممکن است انتخاب کند که داده های اضافی یا کمتری به دست آورد. داده های بیشتر همیشه برای مدل مفید است، اما در نتیجه تمام فرآیندهای این پروژه کمی بیشتر طول می کشد. من فایلهای فشرده را از ستون PM2.5 FRM/FEM Mass (88101) برای سالهای 2017 تا 2020 دانلود کردم.
3) با استفاده از pandas، داده ها را بر اساس مکان فیلتر کردم و CSV را در یک شی ()pandas.DataFrame ذخیره کردم.
data_2017 = pd.read_csv(r"Data\AirQuality\EPA_AQ\Hourly\hourly_88101_2017.csv")
4) من تمام مقادیر را با ستون "County Name" در مجموعه داده برش دادم.
df_2017 = data_2017.loc[data_2017['County Name']=='Napa']
5) من کارهای زیر را برای هر سال انجام دادم، داده ها را با استفاده از بخش کد زیر در یک DataFrame() الحاق کردم و سپس DataFrame() را به عنوان CSV ذخیره کردم.
df_all = pd.concat([df_2017,df_2018,df_2019,df_2020]) df_all.to_csv(r"Data\AirQuality\EPA_AQ\Hourly\full_aq.csv")
6) در نهایت، عرض و طول جغرافیایی نقطه انتخابی خود را یادداشت کردم.
در مرحله بعد، به داده هایی برای دما، رطوبت و فشار نیاز خواهیم داشت. اینها مقادیر X هستند که در مدل ما وارد خواهند شد. اگرچه EPA این فایلها را نیز داشت، اما معلوم میشود که بسیاری از شهرستانها دادههای کمی یا بدون داده دارند. مجموعه داده های تحلیل مجدد آب و هوا ERA-5 مجموعه ای جامع از متغیرها را در سرتاسر جهان در فواصل ساعتی و وضوح مناسبی ارائه می دهد.