آردوینو آموزش آردوینو آموزش رزبری پای اینترنت اشیا IOT خانه هوشمند نرم افزار Node Red

ترکیب آردوینو و نود رد Node-RED پروژه تشخیص آلودگی هوا

polution-station-arduino---node-red--digispark
نوشته شده توسط پریسا پوربلورچیان

شاخص‌های آلایندگی هوا چند دسته هستند. یکی از این عوامل غلظت و ترکیب گازهای موجود در هواست. دیگری ریز گردها هستند. برای تشخیص آلودگی هوا معمولا به صورت نمونه برداری از محیط و انجام آزمایش روی نمونه، تعیین می‌شود. یکی از روش‌هایی که میتوان میزان آلایندگی محیط را تشخیص داد، استفاده از سنسور تشخیص گاز است. در پروژه‌های اینترنت اشیاء IOT سنسورها نقش مهمی در ایجاد محتوا دارند. به عنوان مثال اگر تعداد ۱۰ عدد سنسور تشخیص گاز MQ9 در ۱۰ نقطه مختلف شهری داشته باشیم؛ و هر یک اطلاعات دریافتی از محیط را در بازه‌های زمانی مشخص تولید و منتشر کنند. با این روش میتوان میزان گازهای آلاینده در هر نقطه از شهر را به صورت مجزا دسته بندی و مطالعه کرد. در این پست با استفاده از برد آردوینو و سنسور تشخیص آلودگی هوا میزان آلایندگی را تعیین و سپس بر روی شبکه اجتماعی ارسال میکنیم. در ادامه این آموزش اینترنت اشیاء IOT پروژه تشخیص آلودگی هوا با مرجع تخصصی اینترنت اشیاء IOT دیجی اسپارک همراه باشید.

 

ساختار سنسور تشخیص گاز MQ9

سنسور MQ9 قابلیت تشخیص گاز CO و LPG را دارد. خروجی این ماژول به صورت آنالوگ و دیجیتال با تراشه LM393 می‌باشد. ولتاژ کاری ماژول سنسور گاز MQ9 دارای ۵ ولت می‌باشد. سنسور گاز MQ-9 دارای حساسیت بالا نسبت به کربن مونواکسید، متان و LPG است. این سنسور می تواند برای تشخیص گازهای CO و گازهای قابل احتراق نیز بکار رود. عملکرد تشخیص این سنسور از طریق تغییرات دما است و گاز CO را وقتی که دما پایین می‌آید شناسایی می‌کند. رسانایی سنسور با افزایش غلظت گاز زیاد می‌شود. با افزایش دما این سنسور گاز متان و پروپان و دیگر گازهای قابل اشتعال را تشخیص می‌دهد.

 

پیش نیاز:

برای شروع، ابتدا باید نرم افزار Node-RED را روی ویندوز نصب نمایید. چنانچه شیوه‌ی نصب Node-RED در ویندوز را نمیدانید، از آموزش نصب Node-RED بر روی Windows جهت انجام پروژه‌های IOT استفاده کنید. برای راه اندازی نود رد کامند زیر را در cmd.exe وارد نمایید.

node-red

وسایل مورد نیاز:

کیت سنجش آلودگی هوا با آردوینو

 

کدهای برنامه:

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 

 

نود Twitter:

نود Tweet یک نود پیام رسان می‌باشد. این نود را می‌توانید از شاخه Social انتخاب نمایید. نود را انتخاب کرده و وارد صفحه کنید. سپس روی آن کلیک کنید. در قسمت Twitter ID روی مداد کلیک کنید.

حال همانند تصویر زیر روی گزینه authenticate کلیک کرده و سپس User و pass آی دی توییتر خود را وارد نمایید.

 

نود Debug:

نود دیباگ (Debug) نیز برای نمایش دیتا در محیط Node-RED استفاده میشود، که به عنوان خروجی در شاخه output قرار گرفته شده است.

اتصال نودها :

همانند تصویر زیر از نود Serial به نود Twitter وصل کنید. سپس برای نمایش دیتا از نود Serial به نود Debug وصل کنید.

پس از برقراری اتصال نودها، Deploy کنید. نود سریال (serial) کانکت شده و  سپس دیتا به توییتر (Twitter) شما ارسال خواهد شد. همانطور که در تصویر زیر مشاهده میکنید، پورت سریال من با COM8 کانکت شده و سپس دیتا یعنی میزان گاز مونواکسید در هوا برای من توییت (tweet) شده است.

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۷۳ دیدگاه

  • سلام خانم مهندس
    از آموزش های شما تشکر میکنم. میخواستم بدونم که این آموزش هم غیر از توئیتر با شبکه های اجتماعی دیگر میتواند انجام داد؟

    • سلام
      از توجه شما ممنونم.
      از ربات تلگرام و ایمیل هم میتوانید استفاده کنید. در واقع باید نود آن در لیست نودهاى نرم افزار NodeRed موجود باشد.

      • سلام خسته نباشید من میخواستم
        به صورت کلی با اینترنت اشیا آشنا شم.
        و بعد میخواستم کلاس هاتون رو در استان البرز به بنده معرفی کنید
        و میخواستم در زمینه ی تجاری سازی یه راهنمایی بکنید

  • با سلام خدمت.
    نظر بنده حقیر بر این است که کارهای فنی را درست و اصولی انجام دهیم.
    مثلا معیار های آلودگی هوا بسیار وسیع و آیتم های گوناگونی را شامل می شود.
    مانند انواع گازهایی سمی و غیر سمی طبیعی و مصنوعی.
    انواع آلاینده های سمی و غیر سمی شهری و صنعتی.
    گرد و غبار.رطوبت.میزان دما.سرعت وزش باد.
    همه و همگی تعیین کننده مقدار درست و میانگین آلودگی در سطح شهر می باشد.
    و آیا مثلا با یک تک سنسور RQ می توان مقدار درست آلودگی را محاسبه نمود.

    • سلام
      حرف شما کاملا صحیح است. سنسور های گازی دارای شاخه های متفاوتی می باشد که هر سنسور توانایی تشخیص یک یا چند گاز را دارد. به همین جهت می باشد که در ابتدای پست ذکر کرده ام: “شاخص‌های آلایندگی هوا چند دسته هستند. یکی از این عوامل غلظت و ترکیب گازهای موجود در هواست”
      با یک تک سنسور امکان پذیر نمی باشد بلکه با ترکیب چند سنسور دقت تشخیص آلایندگی بیشتر خواهد شد.

  • پروژه ما ۸۰ درصد منطقی است چرا آن را به ۱۰۰ نرسانیم!
    با کمی هزینه بیشتر نتیجه ای درست خواهیم گرفت.

  • سلام.ممنون از آموزش خوبتون.
    نحوه اتصال برد Arduino به سنسور رو اصلا توضیح ندادین!
    میشه تصویر مناسبی برای ما تازه کار ها از این بخش هم قرار بدین

    • سلام
      از توجه شما ممنونم.
      محوریت آموزش‌ها در بستر دیجی اسپارک به گونه ای است که کاربران آماتور و حرفه ای بتوانند بهترین بهره را از این بستر رایگان داشته باشند. در هر مرحله از آموزش که به مشکل بر خوردید از همین طریق اعلام نمایید تا در سریع ترین زمان ممکن برطرف شود.
      شیوه ی اتصال ماژول MQ9 به این طریق است:
      ماژول دارای ۴ پایه به ترتیب AO-DO-GND-VCC می باشد.
      پایه AO (آنالوگ) را به پایه A0 ( آنالوگ) برد آردوینو وصل کنید.
      پایه VCC را به ۵ ولت آردوینو وصل کنید.
      پایه GND را به GND آردوینو وصل کنید.

      • تشکر.
        من همین برد Arduino رو raspberry pi خودم وصل کردم و اون جا هم به خوبی کار کرد و به Node red موجود در raspberry pi وصل شد

        • سلام
          از توجه شما ممنونم.
          دقیقا متوجه منظور شما نشدم ولی اگر منظورتون استفاده از node Arduino مى باشد ، بله امکان پذیر است و تفاوتى نخواهد داشت.

          • بیشتر متنم خبری بود برای دوستان.
            من همین برد رو مستقیم به رزبری خودم وصلم کردم و با همین flow که شما رسم کردید برای Node red.
            یک آیکون ذره بین بود. روی اون کلیک کردم.خیلی سریع خود Node red پورت سریال مربوطه رو شناسایی کرد.
            برام خیلی جالب بود که خیلی خوب ارتباط برقرار کردن و اصلا احتیاجی به Arduino node هم حتی نبود.
            بازم ممنون از وقتی که برای آموزش و پاسخ گویی میگذارید.

    • سلام
      هدف ما انتشار آموزش و آشنایی کاربران با مباحث است. در این زمینه اگر شما اطلاعات به روزتر و دانش برنامه نویسی پیشرفته تری دارید، خوشحال خواهم شد که در ارتقاء این آموزش شما هم نقش داشته باشید. لطفا اگر موارد اصلاحی به نظرتان میرسد، از همین طریق ارسال کنید، بنده و دیگر همکارانم در تلاش خواهیم بود که این موضوع را به صورت پیشرفته تر منتشر کنیم.

  • سلام
    با تشکر از اموزشهای خوب و تاثیر گذارتون
    یه سوال داشتم
    من ۵ عدد برد اردوینو رو از طریق سریال به رسپبری وصل کردم و میخوام دیتاهای این برد ها رو که هر کدوم شامل چنتا سنسور هست رو بخونم ؟
    سوال بعدی هم اینه که دسترسی به پورت سریال رزبری (ttyS0)از طریق سوپر یوزر امکان پذیر هست ، چطوری میتونم به پورت سریال دسترسی بدم که بدون وارد شدن به محیط root ازش استفاده کنم
    با تشکر

    • سلام
      از توجه شما ممنونم.
      در مورد سوال اول، لطفا بیشتر توضیح دهید و شیوه‌ی اتصال ۵ آردوینو را هم توضیح دهید.
      در خصوص سوال دوم، شما می‌توانید از طریق کامند لاین یا نرم افزاری که کدنویسی می‌کنید; این پایه ها را کنترل کنید.

      • با تشکر از سرعت در پاسخگویی
        من پایه های RX اردوینو رو به همدیگه و TX رو هم به هم دیگه وصل کردم و سپس پایه های RX اردوینو رو به TX رسپبری و TX اردوینو رو به RX رسپبری وصل کردم
        واسه هرکدوم از اردوینو ها یه ادرسی تعیین کردم ، رسپبری ادرس رو برای همه میفرسته ، هر کدوم از اردوینو ها که اون ادرس رو داشت جواب میده ، بعد از گرفتن جواب توسط رسپبری ادرس بعدی ارسال و منتظر جواب میشه ، همینطور تا اخر
        در مورد جواب ۲ شما هم ، من قبلا با کیوت کد میزدم ، اما الان میخوا با نود رد کد نویسی کنم ولی یوزارت رسپبری برای کار کردن احتیاج به دسترسی سوپر یوزر داره ، که نمیدونم توی نود چطوری این دسترسی رو به پایه ها بدم
        پیشاپیش ممنون برای راهنماییتون

    • سلام
      در ابتدا حتما آموزش نصب نود رد Node RED در Windows برای پروژه IOT را مطالعه نمایید. سپس حتما ورژن آخر Nodejs را دانلود کنید و سپس در manage palette نود serial را سرچ و نصب کنید. البته باید به صورت پیش فرض در لیست output قرار گرفته باشد. نتیجه را اعلام کنید تا در صورت برطرف نشدن مشکل راهنمایی کنم.

  • سلام
    سوال بنده این است که میتوان از طریق این پروژه و با استفاده از گوشی تلفن همراه اپلیکیشنی تولید کرد که زمانی که اطلاعات هوا گرفته شد، از طریق وب به این اپلیکشن رسیده و به طرف مورد نظر نشان داده شود که آیا هوا آلوده است یا خیر؟
    و همچنین میتوان درصد آلودگی را مشخص کرد؟
    (بنده به زبان برنامه نویسی اندروید و سوئیفت مسلط هستم)

    • سلام
      با توجه به اینکه نود رد دارای محیط گرافیکی UI است، می‌توانید نتیجه و Result پروژه را در آن مشاهده کنید. اگر آموزش های مربوط به نود رد Node-RED را مطالعه کنید خروجی و وضعیت پروژه قابل مشاهده است. در خصوص سوال شما هم بله تمامی این موارد را می‌توانید توسط اپلیکیشن طراحی و اجرا کنید. درصد آلودگی هوا هم با تعریف در کدها به دست می آید و پیچیده نیست.

  • سلام خسته نباشین
    تو قسمت outputnنود سریال نیست مشکل از کجاست بنظرتون؟
    بعد نرم افزار نود رد برای ارسال دستورات از طریق ماژول وایفا به برد آردوینو کاملا جوابگو هس؟برای ارسال دستورات به برد از طریق اینترنت چطور؟
    ی سوال دیگ اینک خروجی نود رد ب چ صورت هست ی وب اپ میده ک فقط از طریق مرورگر میشه دستورات رو ب برد ارسال کرد؟

    • سلام
      در خصوص سوال اول باید nodejs را آپدیت کنید تا به لیست اضافه گردد.
      سوال دوم: نرم افزار نود رد نودهای کاربردی بسیار زیادی دارد و همچنین از طریق خروجی می‌توانید Nodemcu را انتخاب کنید که باید خودتان بررسی کنید.
      سوال سوم: خروجی نود رد توسط محیط UI می‌باشد که یک رابط کاربری برای کنترل پروژه در اختیار شما قرار می‌دهد.
      پیشنهاد می‌شود شاخه پروژه های نود رد Node-RED را مطالعه کنید.

      • متشکرم از وقتی که گذاشتین
        یه سوال دیگم هست که به راهنماییتون نیاز دارم
        آیا پلتفرم های مخصوص اینترنت اشیا مثل آزور یاKaa IoT Platformبرای کنترل از راه دور از طریق نت و اپ موبایل ابزار های آماده ای دارن؟که بتونم تمام وسایل خونه هوشمند رو توشون اضافه و کنترل کنم؟به طور کلی دنبال ی راهم ک بدون دانش برنامه نویسی وسایل خونه رو با موبایل کنترل کنم

        • سلام مجدد
          در هر پلتفرمی موارد متفاوت است ولی به طور معمول از api های آن ها می‌توان در کدنویسی استفاده کرد.

  • سلام
    من میخواهم با برد اردینو و رزبری با استفاده از نود رد در رزبری یک برنامه بنویسم
    فلو را به صورت انالوگ با اردینو بخوانم و روی lcd نمایش دهم و یک گراف روی لپ تاپ بگیریم این از صورت مسله
    کاری که من انجام داده ام با نود رد فلو را برای سنسور فلو نوشته ام و روی lcd هم نمایش میدهد حالا مشکل من اتصال اردینو به برد رزبری هست چطوری این اطلاعات را از روی پایه ۲ برد اردینو به نود رد انتقال بدهم
    لازم به ذکر هست که ایکون اردینو را داخل نود رد نصب کرده ام نود رد را روی کامپیوتر برای رزبری هم دارم به صورت کامل با رزبری داخل نود رد میتونم کار بکنم ولی روش اتصال انتقال اطلاعات از پایه ۲ اردینو به رزبری را بلد نیستم در صورت امکان راهنمایی کنید
    با تشکر

    • سلام
      دو روش برای ارتباط با برد آردوینو دارید. استفاده از نود serial و یا نود آردوینو Arduino
      با استفاده از نود Serial پورت را مشخص کنید و می‌توانید دیتا را در UI نمایش دهید.

    • سلام
      تمام سرفصل ها در سایت دسته بندی شده است. برای دسترسی به آموزش های Node-RED، از طریق مسیر پلتفرم > نرم افزار Node-RED اقدام کنید. از انتهای صفحه آموزش ها به ترتیب شماره گذاری شده است.

  • سلام.دو تا سوال دارم و ممنون میشم پاسخ بدید.
    اول اینکه تویتر الان فیلتر هست جهت ارتباط حتما باید هم در موبایل و هم در سیستم عامل نصب شده در rpi ام از ف ی ل ت ر ش ک ن استفاده کنم؟
    و دوم اینکه این پروژه که تو سیستم عامل ویندوز تست شده تو سیستم عامل رزبین هم تست شده؟(منظورم اینه که نکته خاصی که نداره؟)

    • با سلام
      در خصوص سوال اول تنها کافیست برای دریافت دیتا در توییتر وی پی ان فعال باشد و نیازی به فیلتر شکن برای سیستم عامل نیست.
      همچنین تفاوتی در این نرم افزار بین ویندوز و رزبین وجود ندارد و می‌توانید از طریق نود Serial و یا نود arduino با برد آردوینو ارتباط برقرار کنید.

    • سلام
      نود twitter ارتباطی با آردوینو ندارد و میتوان از آن در هر مرحله ای جهت ارسال دیتا استفاده کرد. تنها کافیست دیتای مورد نظر را مشخص کنید و سپس آن را در توییتر دریافت کنید.

    • با سلام
      با توجه به اینکه تاریخ انتشار این پست مربوط به ۲ سال گذشته است، تنظیمات نودها تغییر کرده است. بر روی گزینه Add new twitter credentials کلیک کرده و یک اکانت در لینک developer twitter بسازید.

        • یادم رفت بگم که به سایر سایتا میره و مشکل از اینترنت نیست:
          http://s8.picofile.com/file/8348900434/digispark_ir.jpg
          در ضمن تنظیمات پیام قبلی م رو از اینجا میخواستم بکنم:
          developer.twitter.com/en/apps
          و یه سوال دیگه اگه همه چی اوکی بشه باید API key و API secret key و Access token و Access token secret رو هم باید پر کنیم؟

          • سلام مجدد
            در کامنت قبل توضیح دادم. مطابق با راهنمایی نود twitter پیش بروید. به ترتیب api و کدهایی که توییتر در اختیار قرار میدهد، را در فیلدهای مرتبط قرار دهید.
            بررسی و نتیجه را اعلام کنید.

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

    • سلام
      این مورد را بررسی خواهم کرد و در صورت امکان آموزش آپدیت آن ارائه خواهد شد. پیشنهاد میکنم مرحله به مرحله پیش بروید و از طریق کامنت بپرسید تا راهنمایی کنم.

    • سلام و تشکر.میشه به این سوال بالایی م هم جواب بدید؟
      در ضمن توسط سیستم عامل کامپیوتر ثبت نام کردم و ۴ تا کد لازم رو دادم و الان تو ارور بالایی گیر کردم.

    • سلام مجدد
      بنده موارد را مجددا بررسی کردم. همانطور که در توضیحات این پست نوشته‌ام و مربوط به ۲ سال پیش بوده است. تا قبل از آپدیت نیازی به نصب پر و کسی نبود. حال با بررسی مجددی که انجام شد، می بایست پر و کسی را بر روی سیستم خود فعال کنید.

      • تشکر از بررسی و پیگیریتون.
        فعال کردن پروکسی رو هم که شما و جناب مهندس طباطبایی فرمودین که تو جلسات حضوری گفته خواهد شد.
        پس من از طریق کانال تلگرامی digispark پیگیر میشم.

  • خانم مهندس میشه لطف کنین توییتر رو یه بار با سیستم عامل برد رزبری خودتون که ظاهرا vpn توش نصبه تست کنین؟

    • با سلام
      در حال حاضر این امکان وجود ندارد و پروژه های دیگری در پیش رو است.
      پیشنهاد می‌کنم اکانت توییتر خود را روی یک سیستم دیگر ساخته و سپس API ها در فیلدهای مربوطه نود توییتر کپی کنید.

  • سلام میشه لطفا مشخصات کامل کیت آردوینو را برام بفرستیدو اینکه آیا با هر مدلی کار میکند یا نه. ممنون

  • سلام من این پروژه را دارم انجام میدم ولی موقعی که node-red را در ویندوز ۱۰ نصب میکنم(آخرین ورژن) و در cmd می خوام install کنم پیام زیر میاد:
    Legacy versions of mkdirp are no longer supported . please update to mkdirp 1.x. (Note that the API surface has changed to use promises in 1.x.) n ممنون میشم جوابمو بدید

  • سلام من به این پروژه را نیاز دارم و در نود رد جدید نه توییتر میبینم و نه ورودی که آردوینو رو به نود بشناسونم. اگر بشه کمکم کنید ممنون میشم و هزینش هم پرداخت میکنم. ایمیل من … هست ممنون میشم کمکم کنید.

    • با سلام
      این آموزش مربوط به سه سال گذشته است و در طی گذشت زمان آپدیت های جدیدی برای Node-RED منتشر شده است. از منو manage palette عبارت Twitter و serial را سرچ کرده و نصب کنید.
      در صورت برطرف نشدن مشکل از همین طریق اعلام نمایید تا بررسی شود.

  • سلام. من آردوینو را وصل کردم به نود و اندازه گیری گاز را انجام میده ولی به تلگرام و وایبر نمیتونه بفرسته و این پیام ظاهر میشه “TypeError: message.chat is not a function” ممنون میشم اگر راهنمایی کنید. البته من Botfather و newbot هم توی تلگرام درست کردم ولی بقیشو نتونستم

    • با سلام
      در خصوص تلگرام تنظیمات پیچیده تر است و در حال حاضر امکان برقراری ارتباط از آردوینو به تلگرام وجود ندارد.