آموزش Node-red (نود رد) محیط برنامه‌نویسی گرافیکی رزبری پای

معرفی Node-red:

Node-red زبان برنامه‌نویس بر اساس فلوچارت است که توسط بخش مهندسی فناوری IBM توسعه داده‌شده است. Node-red توسط Paul Morrison در سال 1970 توسعه داده شد.

در سال 2013 شرکت IBM نود رد را برای راحتی و سهولت در اتصال ابزارهای الکترونیک به اینترنت منتشر کرد. این نرم‌افزار بر روی سخت‌افزارهایی همچون کامپیوترهای تک بردی رزبری پای، بیگل بن و … و همچنین سرویس‌های ابری مثل IBM آمازون (Amazon Web Service) و مایکروسافت (Microsft Azure) قابل‌استفاده است.

برنامه‌نویسی فلوچارت روشی برای شرح یک برنامه به‌وسیله جعبه‌ها و شبکه‌های مابین آن‌ها بوده که Node-red نامیده می‌شوند. هر Node-red برای یک هدف خاص کاربرد دارد. اطلاعاتی به Node-red داده می‌شود، عملیاتی بر روی آن اطلاعات در Node-red انجام می‌شود و به شبکه برگردانده می‌شود. شبکه مسئول جریان یافتن اطلاعات مابین Node های مختلف است. هرکس بتواند یک مسئله را به قسمت‌های کوچک‌تر تقسیم کند، می‌تواند با نگاه کردن به فلوچارت، بدون اینکه نیاز باشد تا کدهای مربوط به هر یک از Node ها را درک کند، هدف کلی برنامه را متوجه شود.

Node-red بر پایه پلتفرم برنامه‌نویسی نود جی اس (Node.js) نوشته‌شده است. برای طراحی برنامه با Node-red کافی است به فلو ادیتور دسترسی داشته باشید. از طریق یک مرورگر وب می‌توانید به این محیط دسترسی داشته باشید و برنامه خود را با کشیدن Node-red ها از پالت Node ها و رها کردن آن‌ها در Workspace و وصل کردن آن‌ها به هم با یک کلیک طراحی کنید.

پالت node ها را می‌توان با نصب node های جدید گسترش داد. بیش از هزار Node آماده که توسط جامعه کاربری توسعه داده‌شده در وب‌سایت Node-red به‌صورت رایگان در اختیار شماست که هرروز به تعداد آن‌ها افزوده می‌شود. همچنین برنامه نوشته‌شده را می‌توان به‌راحتی به‌وسیله فایل‌های JSON با دیگران به اشتراک گذاشت.

محیط کاربری ساده Node-red باعث شده که مبتدی‌ترین افراد تا خبره‌ترین آن‌ها بتوانند رزبری پای را به یک ابزار هوشمند و کارآمد تبدیل کنند. قدرت و انعطاف‌پذیری Node-red امکان نوشتن پیچیده‌ترین کدها را برای توسعه‌دهندگان محیا می‌کند و هزینه برنامه‌نویسی و طراحی سخت‌افزار را کاهش می‌دهد.

Node-red بر روی رزبری پای:

دو روش برای اجرای Node-red بر روی رزبری پای وجود دارد. یکی نصب دستی از طریق اسکریپت نصاب برای توزیع‌هایی که به‌صورت پیش‌فرض Node-red بر روی آن‌ها نصب نیست؛ و دومی استفاده از نسخه پیش‌فرض نصب‌شده بر روی توزیع رزبین می‌باشد. از نوامبر 2105 نود رد بر روی image رزبین به‌صورت نصب‌شده آماده استفاده است.

اجرای Node-red:

برای اجرای Node-red در رزبین بر روی آیکن رزبری پای کلیک کنید و از منوی Programing گزینه Node-red را انتخاب کنید.

دسترسی به محیط Node-red:

بعد از اجرای Node-red با پنجره ترمینال زیر روبه‌رو می‌شوید. اگر می‌خواهید در محیط دسکتاب رزبری پای با Node-red کارکنید مرورگر وب را بازکنید و آدرسی که در ترمینال مشخص‌شده را بازکنید.

و یا برای دسترسی به محیط نود رد در کامپیوتر دیگر، کافی است آدرس IP دیگری که در ادامه مشخص‌شده را در هر سیستمی که در یک شبکه مشترک با رزبری پای است بازکنید.

توجه شود که به هنگام کار با Node-red نباید صفحه ترمینال بازشده را ببندید.

آشنایی با محیط Node-red

محیط Node-red از 3 قسمت تشکیل‌شده

قسمت 1 مربوط به پالت Node ها می‌باشد. Node ها را از این قسمت و با کشیدن و رها کردن در قسمت workspace می‌توانید انتخاب کنید.

قسمت 2 در این ناحیه با وصل کردن نودها به یکدیگر به برنامه خود شکل می‌دهید.

قسمت 3 در این قسمت اطلاعات هر نودی که روی آن کیلک شده باشد نمایش داده می‌شود. زبانه debug مربوط به دیباگ و رفع عیوب برنامه می‌باشد.

معرفی نودهای پرکاربرد و اجرای برنامه ساده کنترل GPIO

نود Inject

نود Inject، نود ورودی است. این نود را از شاخه input انتخاب کنید و در قسمت workspace رها کنید. روی نود دوبل کلیک کنید تا قسمت تنظیمات Node برای شما باز شود. روی گزینه payload کلیک کنید و آن را روی حالت Number قرار دهید و مقدار 1 را به آن بدهید مانند شکل زیر. در قسمت topic، عبارت LED_ON را وارد کنید.

برای خاموش کردن LED نیاز به یک نود Inject دیگر داریم آن را انتخاب کرده و سپس در قسمت Payload مقدار 0 را به آن بدهید.

 

نود rpi gpio

برای دسترسی به GPIO رزبری پای باید از نود rpi gpio استفاده شود برای اضافه کردن این نود به شاخه RASPBERRY_PI بروید. توجه کنید که دو نوع خروجی و ورودی از این نود وجود دارد که با توجه به نوع استفاده ما باید نود ورودی rpi gpio را انتخاب کنید.

بعد از اضافه کردن آن به workspace روی آن دوبل کلیک کنید و پایه موردنظر خودتان را انتخاب کنید.

 

نود Template

از نود Template برای نمایش متن استفاده می‌شود. این نود از شاخه function در پالت Node Red قابل انتخاب می‌باشد. از این نود برای نمایش متن در قسمت دیباگ استفاده می‌کنیم به این صورت که وقتی LED روشن می‌شود عبارت LED IS ON! و هنگام خاموش شدن LED عبارت LED IS OFF! نشان داده می‌شود.

 

نود Debug

برای مشاهده نتیجه اجرای برنامه در قسمت دیباگ از این نود استفاده می‌کنیم این نود از شاخه output در دسترس می‌باشد. نودها را همانند تصویر زیر به یکدیگر اتصال دهید.

و در آخر دکمه Deploy را برای اجرای برنامه بزنید.

کلیک بر روی هر یک از نودهای inject باعث روشن و خاموش شدن LED متصل به پایه‌ای که انتخاب کردید می‌شود.

آموزش نصب Node های جدید در Node-red

برای نصب Node های جدید در رزبری پای نیاز داریم تا Node-red را به آخرین نسخه آن آپدیت کنیم برای شروع اول دستورات زیر را برای آپدیت برنامه‌های سیستم در ترمینال رزبری پای وارد می‌کنیم

 

سپس برای آپدیت Node-red دستور زیر را در ترمینال رزبری پای وارد کنید، توجه کنید که اجرای فرایند آپدیت بسته به‌سرعت اینترنت و سرعت حافظه فلش شما شاید 20 الی 30 دقیقه زمان ببرد.

بعد از آپدیت دوباره Node-red را اجرا کنید. مشاهده می‌کنید که ورژن Node-red و Node.js به آخرین نسخه ارتقا یافته است.

C:\Users\Ali\AppData\Local\Microsoft\Windows\INetCache\Content.Word\ap01.bmp

بعد از آپدیت Manage palette به منوی Node-red افزوده می‌شود.

توسط این گزینه می‌توانید نود جدید اضافه کنید یا Node های موجود را مدیریت کنید.

توسط تب Nodes می‌توانید Node های نصب‌شده را غیرفعال کنید و یا برای نصب Node جدید از تب install استفاده کنید. برای مثال در ادامه قصد نصب Node های UI را بر روی Node-red داریم. عبارت node-red-contrib-ui در قسمت جست‌وجو وارد کنید و دکمه install را بزنید منتظر بمانید تا Node های UI بر روی Node-red نصب شود توجه کنید که بعد از پایان نصب هیچ پیامی درباره اتمام نصب داده نمی‌شود.

بعد از اتمام نصب باید یک‌بار صفحه Node-red ریستارت شود تا بتوانید به Node هایی UI دسترسی داشته باشید.

نمایش دمای CPU رزبری پای به‌صورت گرافیکی در محیط Node-red

برای به دست آوردن دمای CPU رزبری پای می‌توانید از دستور

استفاده کنید. حال می‌خواهیم توسط این دستور هر 2 ثانیه یک‌بار دمای CPU رزبری پای را بر روی یک گیج آپدیت کنیم. به این منظور از node inject استفاده می‌کنیم، تنظیمات node inject را مانند تصویر زیر انجام دهید.

برای اجرای دستور به دست آوردن دما از قسمت advance نود exec را انتخاب کنید و مانند تصویر زیر تنظیمات را انجام دهید.

خروجی این نود به‌صورت temp=53.7’C خواهد بود درصورتی‌که نود gauge فقط ورودی عددی قبول می‌کند. به این منظور از نود split برای حذف عبارت‌های temp= و ‘C استفاده می‌کنیم.

تنظیمات به‌صورت زیر انجام می‌شود.

و

برای نمایش صحیح دما نیاز داریم تا فقط اعداد بزرگ‌تر از صفر بر روی gauge نمایش داده شود به این منظور از نود switch استفاده می‌کنیم که از قسمت function در دسترس است. مثل تصویر زیر این نود تنظیم کنید.

برای نمایش دما به نود gauge از قسمت UI نیاز داریم آن را به برنامه اضافه کنید و مقدار حداکثر 100 را تنظیم می‌کنیم.

درنهایت نمودار به شکل زیر خواهد شد.

برای اجرا دکمه deploy را می‌زنیم و برای مشاهده خروجی به آخر آدرس IP خود /ui اضافه کنید به‌عنوان‌مثال 192.168.1.5:1880/ui و درنهایت دمای CPU به‌صورت گرافیکی نمایش داده خواهد شد.

در این شماره آشنایی کلی با محیط برنامه‌نویسی Node-red ارائه شد. شما می‌توانید با اتکا به توانایی‌های Node-red و برد رزبری پای پروژه‌های کوچک و بزرگی را طراحی کنید. در این محیط هیچ‌چیز مانع روند خلاقیت و طراحی شما نیست.

5 دیدگاه دربارهٔ «آموزش Node-red (نود رد) محیط برنامه‌نویسی گرافیکی رزبری پای;

  1. من نمیدونم چرا وقتی یه چیز بلد نیستید میاید آموزش ام میدید . این نوع دستور شما اشتباه هست کار نمیکنه .
    من با تغییر در exec درستش کردم .. خواهشا اول خودتون یاد بگیرید بعد آموزش بدید …

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

      پاسخ
  2. ضمن عرض سلام خدمت دوستان به ویژه جناب مهندس عزتی عزیز. تشکر از مقاله خوبتون. در همین مبحث Node-RED و ساخت داشبورد و ارسال دیتا من هم آموزش هایی رو در سایتم قرار دادم. باعث خوشحالی و افتخاره که دوستان استفاده کنند. باتشکر از مدیران خوب وبلاگ رزبری پای ?
    https://sasnam.ir/sending-data-from-bmp180-with-esp32-and-ble-to-node-red/

    پاسخ

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

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.