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

آموزش کار با نرم افزار اینترنت اشیا Node-RED بخش ۶ – ساخت وب سرور

Node-red-IOT-HTTP-part-6--digispark
نوشته شده توسط پریسا پوربلورچیان

نرم افزار نودرد Node Red یک پلتفرم اپن سورس برای راه اندازی پروژه‌های اینترنت اشیاء است. این نرم افزار توسط IBM طرح ریزی و تولید شده است. نگرش طراحی این نرم افزار، ایجاد یک پلتفرم برای کاربران بدون نیاز به دانش فنی بوده است. از این رو کاربران بدون نیاز به دانستن دانش کدنویسی می‌توانند پروژه‌های ساده تا حرفه‌ای را طراحی و پیاده سازی کنند. در این پلت فرم همه چیز به صورت پازل به هم مرتبط می‌شوند. وب سایت دیجی اسپارک به عنوان مرجع تخصصی اینترنت اشیاء IOT به زبان فارسی اولین مرجع نرم افزار اینترنت اشیاء Node Red به زبان فارسی است. در مجموعه آموزش‌های نود رد Node Red به صورت بخش بندی شده کار با این نرم افزار را به صورت پروژه محور آموزش می‌دهیم. در ادامه بخش اول آموزش کار با نرم افزار اینترنت اشیاء Node Red با مرجع تخصصی اینترنت اشیاء دیجی اسپارک همراه باشید.

 

در این بخش از طریق یک وب سرور – Web Server یک گجت الکترونیکی را کنترل خواهیم کرد. به این صورت که از طریق نود HTTP یک وب سرور مجازی برای کنترل LED و روشن و خاموش کردن آن طراحی میکنیم. در ادامه به تحلیل و بررسی نودهای مورد نیاز در نرم افزار Node-RED میپردازیم.

 

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

رزبری پای ۳ Element14 Raspberry Pi

ال ای دی اوال قرمز Oval LED

کابل فلت ۴۰ رشته نری به مادگی

برد برد شیشه ای Bread Board

 

اتصالات:

LED دارای ۲ پایه می‌باشد. پایه کوتاه – پایه منفی و پایه بلندتر پایه مثبت LED است.

  • پایه منفی را به GND رزبری پای اتصال دهید.
  • پایه مثبت را به پین ۱۱ – GPIO17 اتصال دهید.

 

راه‌اندازی نرم افزار اینترنت اشیاء Node RED

وارد محیط رزبین شده سپس از منو Programming ، نودرد Node-RED را انتخاب نمایید. آی پی آدرس IP Address برای اجرای نرم افزار در اختیار شما قرار داده می‌شود. حال در مرورگر IP Addrees:1880 را وارد کرده و سپس وارد محیط نود رد Node Red شوید.

 

 نود Node inject

نود inject نود ورودی می باشد. از طریق این نود مقادیر ۱ و ۰ برای کنترل LED و روشن و خاموش شدن آن را اعمال می‌کنیم. همانند تصویر زیر این نود را از شاخه input انتخاب کرده و وارد محیط نودرد کنید. برای حالت ۱ ( روشن بودن LED ) نیاز به یک نود inject و برای حالت ۰ ( خاموش بودن LED ) به یک نود دیگر inject نیاز داریم.

 

نود Node rpi gpio out

نود rpi out نود خروجی رزبری پای  Raspberry-pi می‌باشد. در این آموزش ال ای دی – led را به پین ۱۱ – GPIO17 وصل می‌کنیم. نود  rpi gpio out را از شاخه Raspberry-pi انتخاب کنید و سپس پین را تعیین کنید.

 

نود Node HTTP

نود HTTP برای ساخت وب سرویس می‌باشد. نود HTTP دارای دو حالت http in و http response می‌باشد. نود http in از شاخه input در دسترس است. نود را انتخاب کرده و سپس روی آن کلیک کنید. نود http دارای Method – متودهای متفاوتی از جمله GET-  POST – PUT – DELETE – PATCH می‌باشد. در این آموزش از متود GET برای ورود به وب سرور با URL انتخابی خودمان استفاده می‌کنیم.

URL یا به عبارتی Universal Resource Locator همان وب آدرس می‌باشد که شما در قسمت URL نود http می‌توانید آدرس دلخواه خود را برای ورود به صفحه وب – web page خود انتخاب کنید. همانند تصویر حالت متود – Method روی GET تنظیم کنید. در قسمت URL ، همان عبارت URL را تایپ کنید. دقت کنید که انتخاب اسم این فیلد دلخواه است.

 

Node http response

نود http response از شاخه output در دسترس است. این نود به عنوان خروجی http عمل می‌کند.

 

نود Node Debug

نود دیباگر برای نمایش Result و خروجی دیتا استفاده می‌شود. در ابتدا همانند توضیحات، تنظیمات نود http in و http response را انجام دهید. سپس همانند تصویر زیر به نود Debug وصل کنید. Deploy کنید. حال در این مرحله IP Address را کپی کرده و همانند زیر در تب جدید وارد کنید.

IP Address:1880/url

می‌خواهیم با وارد کردن پارامتری خاص در وب سرویس ایجاد شده ، ال ای دی LED را کنترل کنیم. به این صورت که وارد کردن پارامتر ۱۰ در وب سرور ال ای دی روشن و با وارد کردن پارامتر ۱۱ ال ای دی خاموش گردد. حال باید در مرورگر بعد از URL، پارامتر را وارد کنیم. برای اینکار از پارامتر test استفاده می‌کنیم.

IP Address:1880/url?test=10 or test=11

حال به تحلیل دیگر نودها برای کنترل ال ای دی LED میپردازیم:

نود Node Json

نود json برای تبدیل کامند -command به Text می‌باشد. برای ارسال کامند و دریافت آن در وب سرویس از نود Node json برای تبدیل به جاوا اسکریپت – JavaScript استفاده می‌کنیم.

 

نود Node split

 

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

 

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

 

نود Node Switch

نود Node Switch از شاخه فانکشن – Function در دسترس می‌باشد. از این نود برای ارزش گذاری و آدرس دهی پارامترها استفاده می‌شود. نود Switch نرم افزار اینترنت اشیاء Node Red را انتخاب کرده و سپس روی آن کلیک کنید. همانطور که گفته شد می‌خواهیم با وارد کردن پارامتر ۱۰ ال ای دی روشن گردد. با کلیک بر روی Add یک تب جدید باز می‌شود. عبارت ۱۰== به این معنی است که با وارد کردن پارامتر ۱۰ ال ای دی تغییر وضعیت داده و روشن می‌شود. به همین صورت برای خاموش شدن ال ای دی پارامتر ۱۱== ارسال می‌شود. همانند تصویر زیر تنظیمات این نود را انجام دهید.

 

نود Node change

از نود Node change برای تنظیم ، جا به جایی ، حذف و انتقال مشخصات دیتا استفاده می‌کنیم. با وارد کردن پارامتر ۱۰ فرمان روشن شدن ال ای دی برای سرور ارسال می‌گردد. از طریق نود Switch  انتقال وضعیت و ارسال فرمان روشن شدن ال ای دی به خروجی GPIO ارسال می‌کنیم. به همین صورت برای حالت دوم نیز عمل می‌کنیم. با وارد کردن پارامتر ۱۱ فرمان خاموش شدن ال ای دی برای سرور ارسال می‌گردد که از طریق نود Node change این‌کار صورت خواهد گرفت. پس از ۲ نود change برای اعمال وضعیت ال ای دی LED استفاده می‌کنیم. همانند تصویر زیر تنظیمات را انجام دهید.

 

 

اتصال نودها Node:

همانند تصویر زیر اتصالات بین نودها را برقرار و سپس Deploy کنید.

 

حال در مرورگر کد زیر را وارد نمایید. با وارد کردن IP و پارامتر test=10  ال ای دی – LED روشن خواهد شد و در Debug پارامتر ۱۰ نمایش داده می‌شود.

IP Address:1880/url?test=10

با وارد کردن کد زیر در مرورگر ال ای دی – LED خاموش خواهد شد و در Debug پارامتر ۱۱ نمایش داده می‌شود.

IP Address:1880/url?test=11

ویدیو ساخت وب سرور با نرم افزار اینترنت اشیاء Node RED

 

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

 

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

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

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

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

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

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

۲۹ دیدگاه

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

  • چه جوری میشه ی وب سرور واقعی راه انداخت!!! شما میگید از راه دور این از راه دور نیست که شما با IP داخلی دارید کنترل میکنید!!
    این که با نت گوشی کنترل کنید و با اینترنت اصلی سر کار داشته باشید چی؟؟
    این دراصل میشه اینترانت نه اینترنت

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

  • سلام خانم پوربلورچیان
    ممنون بابت این آموزش
    چقدر منتظر این آموزش بودم چون تنظیمات ند node http واسم‌ نامفهوم بود. مرسی

  • سلام
    اگر بخواهیم یک رابط کاربری ایجاد کنیم باید چیکار کنیم؟ یعنی یک وب سرور‌‌با رابط کاربری بسازیم؟!!!!!

    • سلام
      برای طراحی رابط کاربری باید از کدهای HTML با استفاده از نود node template ایجاد کنید. در آموزش بعدی کامل به این موضوع خواهیم پرداخت.
      منتظر باشید.

  • سلام مهندس
    میشه از‌ رله استفاده کنیم؟! تنظیماتش فرقی نمیکنه؟! اگه توضیح بدید ممنون میشم

    • سلام
      بله، باید از پایه های GPIO به خروجی رله وصل کنید و سپس همانند آموزش پیش بروید.

  • سلام و خسته نباشید
    برای نود رد من مشکلی ایجاد شده که برنامه رو کامپایل نمی کنه و این ارور رو نمایش میده ؟ من هرکاری کردم رفع نشد ، حتی رسپبری رو هم آپدیت کردم و ماژولی که بهش وصل شده بود رو هم جدا کردم ولی باز نشد
    http://s9.picofile.com/file/8309130592/Capture.PNG

    • سلام
      این ارور زمانی بوجود خواهد آمد که تنظیمات نود ها را به درستی انجام ندادید و سپس Deploy کردید. برای رفع مشکل از منو نود رد گزینه configuration nodes را انتخاب کنید. سپس در قسمت سمت راست نود رد تمامی نود هایی که در فلو های مختلفی ایجاد کرده اید و تنظیم نشده اند، نمایش داده میشود. روی آنها کلیک کنید و سپس Delete کنید. در نهایت پس از حذف نودها Deploy را بزنید مشکل برطرف خواهد شد.

    • سلام
      برای ارتباط این دو نیاز به نود mcu میباشد. بنده تا به حال تست نکرده ام. حتما بررسی خواهم کرد و اگر موردی باشد که نیاز به انتشار آموزش داشته باشد، حتما در دستور کار قرار خواهم داد.

    • سلام
      از توجه شما بسیار ممنونم.
      اگر منظور شما Security می‌باشد، تنها می‌توانید برای ورود به نرم افزار Node-RED با دستور node-red-admin hash-pw جهت ورود یوزر و پسورد تعریف کنید. آموزش Security نودرد – NodeRED مفصل است و حتما در آینده به آموزش آن خواهیم پرداخت.

  • با سلام
    بظر بنده محتوای آموزش و عنوان کاملا متفاوت هستند چون راه اندازی وب سرور توسط نرم افزار Apache و مباحث نرم افزاری هست ولی آموزشی که شما انجام دادید در مورد کنترل LEDاز طریق وب بود لطفا عنوان آموزش رو تغییر دهید.

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

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

    • سلام
      آموزش های متنوعی برای اینکار وجود دارد. در سایت سرچ کنید و ابتدا آموزش های نود رد را انجام دهید. توسط نودهای Node-RED امکان ساخت وب سرور و کنترل از از راه دور وجود دارد.

  • با عرض سلام و خسته نباشید یک سوال داشتم لطف میکنید پاسخ بدید خواستم بدونم در ارتباط بین فرد و شی نیاز ب مجوز registration authority یا به صورت مخخف ra است این ra دقیقا چیه شی شخصه گوشی مبایله چیه؟

    • با سلام
      هر سرویس دیجیتالی که ایجاد ارتباط بین انسان و یک پلتفرم را برقرار می‌کند، به گواهی RA نیاز دارد. اینکه شما میفرمایید آیا نیاز است، اگر از پلتفرم‌های آنلاین و آماده استفاده کنید، نیازی به دانستن این موارد نخواهید داشت.

  • با سلام.
    با این روش که تو فیلمش گذاشتین و از طریق گوشی نیز led رو کنترل کردین حتما رزبری و گوشی باید از یک اینترنت مشترک استفاده بکنن یا اگه گوشی از اینترنت وای فای مودم استفاده نکنه و از اینترنت سیمکارتش استفاده کنه بازم کار خواهد کرد؟
    فک کنم قضیه آی پی استاتیک و داینامیک پیش میاد درسته؟
    و به عنوان سوال آخر لطفا بفرمایید اگه از آی پی استاتیک استفاده نشه چه موقع هایی به مشکل میخوریم (یعنی با قطع و وصل مجدد مودم ip عوض میشه؟ و چه مشکلات دیگه ای پیش میاد؟)

    • سلام مجدد
      بله بایستی از dns و یا آی پی استاتیک استفاده کنید.
      اگر آی پی استاتیک استفاده نکنید، لوکال اجرا می‌گردد و ممکن است در طول اجرای پروژه آی پی تغییر کند.

  • سلام وقتتون بخیر
    یک جا هست ک ند mqtt را وارد ند رد میکنیم میخواستم بدونم قسمت سرور چی وارد کنم اون url اون سرور چجوری میتونم پیدا کنم؟