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

اندازه گیری آلودگی هوا و نمایش در اینترنت با آردوینو

سلام. پروژه اندازه گیری آلودگی هوا و نمایش در اینترنت با آردوینو (سنجش کیفیت هوا IoT) را آماده کردیم. فیلم عملکرد مدار را ببینید !

پروژه اندازه گیری آلودگی هوا و نمایش در اینترنت با آردوین

در این پروژه ما قصد داریم یک سیستم مانیتورینگ آلودگی هوا مبتنی بر IoT تهیه کنیم که در آن کیفیت هوا را بر روی یک سرور با استفاده از اینترنت نظارت کنیم و در صورت پایین تر آمدن کیفیت هوا از مقدار مشخصی هشدار فعال میشود. با اندازه گیری مقدار CO2 ، دود ، الکل ، بنزن و NH3 کیفیت هوا را مشخص میکنیم. این کیفیت هوا را بر حسب PPM علاوه بر وب روی یک ال سی دی کاراکتری نیز نمایش میدهیم.

ما از سنسور MQ135 استفاده کرده ایم که بهترین انتخاب برای نظارت بر کیفیت هوا است. زیرا می تواند  گازهای مضر را تشخیص دهد و می تواند مقدار آنها را با دقت اندازه گیری کند. در این پروژه IoT می توانید میزان آلودگی را از هر کجا با استفاده از رایانه یا تلفن همراه خود کنترل کنید. ما می توانیم این سیستم را در هر نقطه نصب کنیم و همچنین می توانیم دستگاهی را هنگامی که آلودگی فراتر از حد باشد، روشن کنیم مثل فن یا …

توضیحات سنسور کیفیت هوا MQ135

ما قبلا در این مطلب ” مشخصات تمام حسگر های گاز MQ ” نحوه کار سنسور های سری MQ را بررسی کردیم. اما در اینجا به اختصار توضیح میدهیم.

سنسور کیفیت هوا MQ135

در تصویر بالا نیز ماژول سنسور کیفیت هوا MQ135 را مشاهده میکنید. به پین VCC جریان 5 ولت متصل میشود و تکلیف GND هم که مشخص است. پین AOUT ، خروجی آنالوگ را نشان میدهد. و پین DOUT خروجی دیجیتال را نشان میدهد. در اغلب ماژول سنسور های گاز MQ ، یک پتانسیومتر قرار داده شده که برای تنظیم میزان حساسیت سنسور است.

توضیحات ماژول وای فای ESP8266

بیشتر افراد ESP8266 را به عنوان یک ماژول WIFI می دانند ، اما در واقع یک میکروکنترلر است. ESP8266 نام یک میکروکنترلر است که توسط شرکت Espressif Systems ساخته شده است و یک شرکت مستقر در شانگهای است. این میکروکنترلر توانایی انجام فعالیتهای مرتبط با WIFI را دارد از این رو به صورت گسترده به عنوان یک ماژول WIFI مورد استفاده قرار می گیرد.

سنجش کیفیت هوا IoT
سنجش کیفیت هوا IoT

انواع مختلفی از ماژول های ESP8266 وجود دارد ( از ESP8266-01 تا ESP8266-12 ). ما در این پروژه PIC از ESP8266-01 استفاده میکنیم. زیرا ارزان ترین آن است و در دسترس است. این ماژول با ولتاژ 3.3 تغذیه میشود و مصرف آن حدود 10uA-170mA است. ماژول ESP8266 دارای یک مبدل ADC است.

مطلب پیشنهادی:  آموزش کنترل LED با ریموت کنترل مادون قرمز برد آردوینو

مدار پروژه بررسی آلودگی هوا با آردوینو

مدار پروژه بررسی آلودگی هوا با آردوینو

  1. برد آردوینو Uno
  2. ماژول وای فای ESP8266
  3. سنسور کیفیت هوا MQ135
  4. ال سی دی کاراکتری 16*2
  5. پتانسیومتر 10 کیلو اهم
  6. مثاومت 1 کیلو اهم
  7. مقاومت 220 اهم
  8. بازر
قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

اول از همه ESP8266 را به Arduino متصل میکنیم. ESP8266 روی 3.3 ولت اجرا می شود و اگر 5 ولت را از آردوینو به آن متصل کنید امکان دارد آسیب ببیند. VCC و CH_PD را به پین ​​3.3V آردوینو وصل کنید. پین RX ماژول ESP8266 روی 3.3V کار می کند و هنگامی که مستقیماً به Arduino وصل شود ارتباط برقرار نخواهد کرد. بنابراین مجبور هستیم که 5 ولت را به 3.3 ولت تبدیل کنیم. این کار را می توان با اتصال سه مقاومت در حالت سری در مدار انجام داد. پین TX ماژول وای فای ESP8266 را به پین ​​4 آردوینو و پین RX ماژول را به پین ​​5 آردوینو از طریق مقاومتها وصل میکنیم.

ماژول Wi-Fi ESP8266 به پروژه های شما امکان دسترسی به Wi-Fi یا اینترنت را می دهد. این ماژول بسیار ارزان است و پروژه های شما را بسیار قدرتمند می کند. این دستگاه می تواند با هر میکروکنترلری ارتباط برقرار کند و از پیشروترین دستگاه های موجود در پلت فرم IoT است. سپس سنسور MQ135 را به Arduino متصل میکنیم. پین VCC سنسور و پین GND سنسور را به 5 ولت و GND آردوینو و پین آنالوگ سنسور را به A0 آردوینو وصل کنید. همچنین بازر را به پین 8 آردوینو متصل کنید.

نحوه کار پروژه سنجش کیفیت هوا IoT

برای تبدیل خروجی در PPM ، در اینجا ما از کتابخانه ای برای سنسور MQ135 استفاده میکنیم. سطح ایمن کیفیت هوا 350 PPM است و نباید از PPM 1000 فراتر رود. هنگامی که از حد مجاز 1000 PPM تجاوز کند ، باعث ایجاد سردرد ، خواب آلودگی و… می شود و اگر از 2000 PPM بیشتر باشد ، می تواند باعث افزایش ضربان قلب و بسیاری از بیماریهای دیگر شود. وقتی مقدار کمتر از 1000 PPM باشد ، LCD و صفحه وب “هوای تازه” را نشان می دهند. هر زمان که مقدار 1000 پی پی ام افزایش یابد ، آن وقت بازر شروع به فعالیت می کند و بوق میزند. LCD و صفحه وب “Poor Air, Open Windows” را نمایش می دهند. در صورت افزایش 2000 ، آنگاه صدای بازر ادامه خواهد داشت و LCD و صفحه وب “Danger! Move to fresh Air” را نشان می دهند.

چطور اطلاعات سنسور را در صفحه وب ببینیم ؟

قبل از آپلود کد، باید به Wi-Fi دستگاه ESP8266 خود وصل باشید. پس از بارگذاری کد ، مانیتور سریال را باز کنید و آدرس IP را مانند شکل زیر نشان می دهد.

آدرس IP ماژول وای فای ESP8266

در سریال مانیتور یک آدرس IP به شما داده میشود. برای رفتن به قسمت سریال مانیتور در نوار بالا در نرم افزار Arduino روی Tools و سپس روی Serial Monitor کلیک کنید یا از میانبر Ctrl+Shift+M استفاده کنید.  این آدرس IP را در مرورگر خود تایپ کنید.

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

پس از تایپ کردن این IP ، صفحه پایین نمایش داده میشود و میتوانید کیفیت هوا را ببینید. اگر می خواهید مقدار کیفیت هوای فعلی را در PPM ببینید ، مجدداً صفحه را رفرش کنید.

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

برای نمایش این صفحه در هر جای جهان باید پورت 80 را به آدرس IP محلی دستگاه خود (192.168.*) منتقل کنید. پس از ارسال پورت ، تمام اتصالات ورودی به این آدرس محلی منتقل می شوند و می توانید با وارد کردن آدرس IP عمومی اینترنت خود از هرجای دیگر ، صفحه وب کیفیت هوا را باز کنید. این موضوع را در مطلبی دیگر به طور کامل توضیح خواهیم داد.

آموزش تغییر متن های صفحه وب

در خط 7 این قسمت از کد ، متن بزرگ بالای صفحه را میتوانید تغییر دهید. در حالت پیشفرض IOT Air Pollution Monitoring System است. همچنین در خط 9 میتوانید پیام قبل از مقدار PPM را تغییر دهید. در حالت پیشفرض این پیام Air Quality is است.

if(esp8266.available())
  {
    if(esp8266.find("+IPD,"))
    {
     delay(1000);
     int connectionId = esp8266.read()-48;  
     String webpage = "<h1>IOT Air Pollution Monitoring System</h1>";
       webpage += "<p><h2>";   
       webpage+= " Air Quality is ";
       webpage+= air_quality;
       webpage+=" PPM";
       webpage += "<p>";

همچنین در این قسمت از کد میتوانیم پیام های هوای سالم و هوای بد و هوای خیلی بد را تعریف کنیم. در خط اول پیامی که در صورت وجود هوا با PPM زیر 100 باشد نمایش داده میشود. در خط پنجم پیام بین PPM هزار تا 2 هزار را تنظیم میکنیم. که در حالت پیشفرض Poor Air است. در خط نهم پیامی را تنظیم میکنیم که در صورتی که PPM از 2000 بالاتر باشد نمایش داده میشود. این پیام نیز در حالت پیشفرض Danger! Move to Fresh Air است.

  webpage+= "Fresh Air";
}
else if(air_quality<=2000 && air_quality>=1000)
{
  webpage+= "Poor Air";
}

else if (air_quality>=2000 )
{
webpage+= "Danger! Move to Fresh Air";
}
5 (6 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

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

برای ارسال تصاویر از انجمن سایت استفاده کنید.

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

18 نظر

  1. سلام عزیز میشه بجای lcd کارکتری را وصل کنیم از ماژول راه انداز lcd و از l2c استفاده کنیم من میخواستم کدهای سرس را تغییر بدهم البته کتابخونه را تعویض کردم ولی متوجه نشدم آیا فقط پایه ها و کتابخانه را تعریف کنم کافیه
    من تازه دوره برنامه نویسی آردینو را از سایتتون تهیه کردم هنوز برام یکم گنگه بعضیاش

    1. سلام عزیز
      بهتر هست ابتدا دوره آردوینو را کامل مشاهده کنید و تمرین ها را انجام بدهید تا به دانش بالا در آردوینو برسید بعد شروع کنید به تغییر پروژه های خارج از دوره

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

    1. سلام عزیز
      دوره اینترنت اشیا برای شما مفید هست

  3. با عرض سلام.ببخشید من هنگام اجرای پروژه در قسمت serial monitor آردوینو متن زیر را نمایش میدهد و بر روی صفحهLCDهم چیزی نمایش داده نمی شود به نظر شما اشکال از کجاست؟
    Fatal exception 0(IllegalInstrucvionCause):
    epc1=0x40213620, epc2=00d 0
    ets 2e(load 0x40100000, len 1856, room 16
    tail 0
    chksum 0x63
    load 0x3ffe8000, len 776, room 8
    tail 0
    chk e tail h0t5 MK 0Fatal exception 0(IllegalInstructionCause):
    epc1=0x40213620, epc2=00rd
    ets 22,load 0x40100000, len 1857, room 16
    tail 0
    ets Jan 8 2013,rst cause:4, boot mode:(3,6)

  4. با عرض سلام و خسته نباشید.من هنگام اجرای این پروژه با چند مشکل روبه رو میشوم : 1-در قسمت سریال مانیتور آردوینو متن زیر را نمایش میدهد
    chksum 0x63
    load 0x3ffe8000, len 776, room 8
    tail 0
    chk0e tail hmo5 lp5o0Fatal dxception 0(IllegalInstrtctionCause):
    epc1=0x40213620, epc2=00rd0
    ets 1,
    load 0x40100000, len 1856, room 16
    tail 0
    chksum 0x63
    load 0x3ffe8000, len 776, room 8
    tail 0
    chk035tail
    cn S0eS 1u@Fatal exception 0(IllegalInstructionC
    2-بر روی ال سی دی چیزی نمایش داده نمی شود و فقط روشن می شود و اینکه ماژول وای فایesp8266 هم روشن می شود ولی توسط وای فای گوشی یافت نمی شود؟
    با تشکر

  5. سلام روزتون بخیر
    ببخشید ممکنه که ارور های ایجاد شده به خاطر این باشه که برد من از سری برد های مگاهستش؟

    1. سلام عزیز، فکر نمیکنم به این خاطر باشه

  6. سلام ارور ها اینها هستند
    liquidcrystal.h’ file not found clang(pp-file-not-found)’
    peek problem no quick fixes available

    اون یکی ارور هم این هستش :
    variable esp 8266
    type :int
    this makes pin 9 of arduino as rx and pin 10 of arduino as the tx pin
    unknow type name ‘softwareserial’ clang(unkown_typename)
    peek problem no quick fixes available

    به خاطر این دو ارور نه کد اپلود میشه و نه سریال مانیتور رو برام میاره

    1. کتابخانه liquidcrystal و softwareserial رو دوباره نصب کنید اگر حل نشد متن ارور رو به صورت کامل ارسال کنید.

  7. سلام روزتون بخیر
    خیلی ممنون در ابتدا به خاطر مطالب عالیتون و پاسخگویی به موقتون
    ببخشید من این پروژه رو تلاش کردم درست کنم
    و بعد از اتصال به برد همه قطعات هم ماژول وای فای هم سنسور و هم ال سی دی روشن میشه
    فقط توی کد دو ارور به من میده یکی
    در خط چهارم softwareserial
    یکی هم در خط هفتم
    Liquidcrystal .h میشه بفرمایید مشکل از کجاست ؟

    1. سلام عزیز، ارور ها رو بفرمایید.

  8. سلام روزتون بخیر
    ببخشید یک سوال دیگه داشتم برای مقاومت هایی که به صورت سری بهم بسته میگردند مقاومت چند اهمی هستند ؟

  9. سلام ببخشید سه مقاومتی که به صورت سری ماژول وای فای رو به اردینو متصل می‌کنند چند اهمی اند ؟(یعنی سه یک کیلو اهمی اند یا سه ۲۲۰اهمی )
    و اینکه مقاومتی که در مسیر سیم دوم ال سی دی است چند اهم است ؟

    1. سلام عزیز. تماما 220 اهمی هستند. همچنین برای تشخیص مقدار مقاومت از روی رنگ، مقاله رنگ های مقاومت را بخوانید.

  10. سلام روزتون بخیر ببخشید در قطعات لازم پتانسیومتر ده اهم نوشته شده ولی ذکر نشده که کجا باید از این قطعه استفاده کزد میشه
    اون قطعه سیاه که شبیه کلید هستش کلید هست که توی قطعات لازم ذکر نشده یا پتانسیومتر هستش ؟
    ممنون از سایت عالی تون

    ,

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

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

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