آموزش نصب و کار با Node-RED در رزبری پای و کنترل LED
محتویات
تا به حال شده است بخواهید پروژه ساده ای از اینترنت اشیا را به صورت ساده و بدون نیاز به صرف وقت و کدنویسی راه اندازی کنید ؟ این کار با بستر Node Red به سادگی انجام میشود. Node-RED توسط IBM ابداع شده است و ابزاری متن باز برای برنامه نویسی به روش جدید و جالب است. Node Red ویرایشگری مبتنی بر مرورگر را فراهم می کند که میتوانید با آن پروژه های جذابی را بسازید.
Node-RED ابزاری قدرتمند برای ساختن پروژه های IoT با هدف ساده کردن برنامه نویسی است. زیرا از برنامه نویسی بصری استفاده می کند که به شما امکان می دهد بلوک های کد را برای انجام یک کار متصل کنید. در این آموزش، ما بررسی خواهیم کرد که چگونه می توانید پروژه های ساده را روی رزبری پای با استفاده از Node-RED طراحی کنید.
فیلم زیر نحوه کار پروژه را نشان میدهد.
در این آموزش بررسی میکنیم :
- نصب Node-RED در رزبری پای
- آشنایی با رابط کاربری Node-RED
- نحوه تنظیم جریانهای Node-RED
- نحوه کنترل پین های GPIO با Node-RED
- نحوه استفاده از ورودی های Node-RED ، خروجی ها و موارد دیگر مانند سوئیچ ها
من به شما توصیه می کنم از مانیتور متصل به Raspberry pi استفاده کنید یا از نرم افزار VNC Viewer استفاده کنید. Node-Red با یک مرورگر وب کار می کند و می توان از طریق رایانه شخصی که رزبری پای به آن وصل شده است از طریق آدرس IP به آن دسترسی پیدا کرد. لازم است بدانید که Node به معنای گره است و در ادامه از این کلمه بسیار استفاده میشود.
ما ابتدا Node Red را در رزبری پای نصب میکنیم و سپس یک لامپ ال ای دی متصل به GPIO رزبری چای را از طریق آن کنترل میکنیم. سپس یک دکمه را به رزبری پای اضافه میکنیم و با فشردن آن، مسیر های جداگانه ای در Node Red طی میکنیم تا دوباره ال ای دی متصل به Raspberry pi را کنترل کنیم. فیلم عملکرد پروژه در انتهای صفحه قرار داده شده است.
پیشنهاد میکنم مقاله آموزش کنترل وسایل خانه با تلفن هوشمند و رزبری پای را نیز مشاهده کنید.
آموزش نصب Node RED در Raspberry Pi
مراحل زیر را برای نصب یا ارتقا Node-RED در Raspberry Pi خود دنبال کنید.
نصب را با بروز کردن رزبری پای شروع میکنیم. با دستورات زیر ما مطمئن میشویم که همه چیز بروز باشد تا از مشکلات عدم سازگاری نسخه ها جلوگیری کنیم.
Sudo apt-get update
سپس
sudo apt-get upgrade
سپس اسکریپت bash را در ترمینال اجرا کنید.
bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-NodeRed)
اسکریپت bash دستورات زیادی را به عنوان sudo اجرا می کند و Node.js موجود و هسته اصلی Node-RED را حذف می کند.
با نصب کامل ، اکنون باید نماد Node-Red را در زیر لیست برنامه های programming مشاهده کنید.
راه اندازی Node-RED در رزبری پای
Node-Red را می توان از طریق منو دسکتاپ رزبری پای، از طریق ترمینال یا از ssh راه اندازی کرد.
برای راه اندازی روی دسک تاپ raspberry pi ، بر روی نماد رزبری کلیک کنید، ماوس خود را روی Programming ببرید و سپس بر روی (Node-RED Menu>Programming>NodeRed) کلیک کنید.
همچنین می توانید از طریق ssh یا terminal آن را راه اندازی کنید.
node-red-start
شما باید یک پنجره مانند پنجره زیر که نشان دهنده راه اندازی Node Red در دسک تاپ است را ببینید.
پس از این ، به menu->internet بروید و مرورگر وب Chromium را راه اندازی کنید. رزبری پای شما برای اجرای Node-Red به اینترنت احتیاج ندارد و فقط از مرورگر به عنوان رابط کاربری خود استفاده می کند.
پس از راه اندازی کروم ، localhost:1880 را در نوار آدرس وارد کنید و سپس کلید Enter را بزنید. 1880 درگاهی است در رزبری پای برای Node-Red برای برقراری ارتباط تعیین شده است. سپس باید رابط کاربری Node Red را مشاهده کنید.
درک رابط کاربری Node RED
رابط Node-Red شامل flow panel, nodes palette, debug console, info console است که در تصویر زیر مشخص شده است.
پنل flow جایی است که گره ها به یکدیگر وصل می شوند تا برنامه ای را ایجاد کنند که در Node-Red به آن جریان یا همان flow گفته می شود. Node palette از اشیاء تشکیل شده است که نماینده سخت افزار ، پروتکل ها و ویژگی های نرم افزاری مرتبط با دستگاه ها هستند. پالت Node شامل پروتکل هایی مانند MQTT برای اینترنت اشیا و حالت های خروجی و ورودی GPIO برای برد های مانند Raspberry pi است. debug console اطلاعاتی را در مورد کارکرد همه دستگاه ها ارائه میدهد و چیزی شبیه به سریال مانیتور در نرم افزار Arduino IDE است. از دکمه deploy برای بارگذاری جریان در سخت افزار هدف استفاده می شود. دکمه Menu شامل انواع مختلف بارگذاری است تا به شما کمک کند بهترین نتیجه را از پروژه خود کسب کنید.
اجرای پروژه با Node Red و رزبری پای
همانطور که در مقدمه ذکر شد ، پروژه آزمایشی ما کنترل پین GPIO رزبری پای با استفاده از یک جریان Node-RED خواهد بود. برای نشان دادن تغییر در حالت GPIO ، ما یک LED را به GPIO وصل می کنیم به گونه ای که وقتی آن پین مخصوص GPIO فعال شود ، LED روشن می شود و برعکس.
همانطور که در شکل زیر نشان داده شده است ، LED را به Raspberry PI وصل کنید.
ما پروژه را روی یک برد بورد اجرا کردیم. تصویر نهایی پس از برقرای اتصالات مانند زیر خواهد بود.
این پروژه می تواند به راحتی به یک پروژه خانه هوشمند تبدیل شود ، فقط با تعویض LED با رله و متصل کردن هر وسیله ی AC میتوانید به راحتی پروژه خانه هوشمند را اجرا کنید.
ایجاد یک جریان در Node-RED
با وصل شدن LED می توانیم جریان (flow) را توسعه دهیم. برنامه هایی که در Node Red وجود دارد Flow نامیده میشوند همانطور که در Arduino IDE به آنها sketche گفته می شود. جریان ها با استفاده از ترکیبی از گره ها (Node) ایجاد می شوند. شما می توانید چندین جریان ایجاد کنید که همگی می توانند همزمان اجرا شوند ، اما برای این آموزش ما یک جریان واحد ایجاد می کنیم تا LED را روشن یا خاموش کنیم.
برای شروع ، به پایین Nodes palette بروید ، بخش گره های رزبری پای را با دو برچسب rpigpio مشاهده خواهید کرد. این گره ها برای برقراری ارتباط با پین های GPIO رزبری پای استفاده می شوند. یکی از گره ها برای ورودی است و دیگری مربوط به خروجی است که با موقعیت لوگوی Raspberry pi تمایز می یابند. برای گره ورودی، نماد رزبری پای سمت چپ است و برای گره خروجی نماد در سمت راست متن است.
برای این آموزش ما از گره خروجی استفاده خواهیم کرد پس آن را به بخش Flow بکشید. این مرحله مانند اعلام یک پین خاص از Arduino به عنوان خروجی با استفاده از دستور pinMode () است. بر روی گره خروجی دوبار کلیک کنید و پنجره پاپ آپ مانند شکل زیر باز خواهد شد تا ویژگی های گره را ویرایش کنید.
در قسمت pin property ، GPIO17 (پین 11) را انتخاب کنید. سپس ویژگی آن را روی “digital Output” تنظیم کرده و “Initialize pin state?”” را تیک بزنید و سپس initial level of pin را با حالت Low یا همان 0 قرار دهید. سپس نام دلخواه خود را به گره بدهید و روی دکمه Done بزنید.
برای روشن یا خاموش کردن چراغ ، باید از یک ورودی استفاده کنیم ، چیزی که عملکرد آن را هدایت کند. در حالی که می توانیم از دکمه فشاری استفاده کنیم ، من می خواهم از این ویژگی برای معرفی ویژگی در Node-RED استفاده کنیم که امکان تزریق پیام به جریان را فراهم می کند. این ویژگی Node inject نام دارد. ما از دو گره استفاده خواهیم کرد. یکی روشن کردن LED است و دیگری خاموش کردن آن خواهد بود.
به node palette بروید و Node inject را به سمت جریان بکشید. این اولین گره در پالت با علامت فلش است.
روی آن دوبار کلیک کنید تا خصوصیات آن را ویرایش کنید. با کلیک کردن بر روی فلش در مقابل payload ، نوع داده را به String تغییر دهید و در کادر 1 را وارد کنید. مقدار payload همان چیزی است که هنگام فشار دادن گره به جریان تزریق می شود. نام گره را “On” بگذارید و دکمه “Done” را بزنید.
موارد بالا را برای گره دوم تکرار کنید ، مقدار payload را بر روی “0” و نام آن را مطابق شکل زیر “Off” تنظیم کنید.
در properties ، می توان از قسمت repeat برای تزریق خودکار استفاده کرد تا دکمه ها در فواصل معین فشرده شوند. این ویژگی می تواند برای ایجاد اثر چشمک زن استفاده شود. مطابق شکل زیر ، با کشیدن نقطه خاکستری روی یکی از گره ها به سمت دیگر ، گره ها را به هم پیوند دهید تا جریان ایجاد شود.
با انجام این کار ، ما اکنون اولین جریانNode Red خود را به اتمام رسانده ایم.
مرحله بعدی برای ما این است که جریان را روی رزبری پای راه اندازی کنیم. روی دکمه Deploy قرمز کلیک کنید. مطابق شکل زیر باید در بالای صفحه “successfully deployed” را مشاهده کنید.
برای فعال کردن هر یک از گره ها روی دکمه خاکستری پشت گره ها کلیک کنید.
با کلیک بر روی گره “on” ، باید “on” با موفقیت تزریق شده و LED روشن شود. هنگام کلیک روی گره “Off”، باید LED باید خاموش شود.
افزودن سوئیچ در Node-RED با رزبری پای
دکمه خود را به رزبری پای متصل کنید به گونه ای که یک پین دکمه به GND و دکمه دیگر به پین GPIO 4 (پین 11) Raspberry pi وصل شود ، همانطور که در شماتیک زیر نشان داده شده است.
با این کار ، دوباره به Node-Red برگردید و دو گره تزریقی را که قبلاً از آنها استفاده کرده بودیم حذف کنید. با انجام این کار ، به به قسمت رزبری پای در node palette بروید و گره ورودی را انتخاب کنید. بریا گره های ورودی، نماد رزبری پای در سمت چپ ، قبل از نام گره است.
گره را به جریان بکشید و بر روی آن دوبار کلیک کنید تا خصوصیات را ویرایش کنید. پین را روی GPIO 4 (پین 11) تنظیم کنید و Resistor را به عنوان pull-up تنظیم کنید.
در قسمت node palette گزینه switch را انتخاب کنید.
گره سوئیچ به شما امکان می دهد تصمیم گیری را به روشی مشابه جمله های “if” انجام دهید. بسته به مقدار ورودی می توان خروجی های مختلفی تنظیم کرد. برای این آموزش ، آن را با دو مسیر خروجی پیکربندی می کنیم ، به گونه ای که ، هنگامی که خاصیت msg.payload
برابر شود با 1 (یعنی سوئیچ فشرده نشده است) باید از مسیر اول اجرا شود و در صورت ورود ورودی دیگر ، مسیر دوم دنبال شود. مسیرها با استفاده از دکمه “+ add” اضافه می شوند. بر روی گره دوبار کلیک کنید و مطابق شکل زیر آن را پیکربندی کنید. بعد از اتمام روی Done کلیک کنید.
در مرحله بعد ، باید گره “Change” را وارد کنیم. گره Change برای تنظیم وضعیت LED بر اساس نتیجه گره سوئیچ استفاده خواهد شد.
ما از دو گره Change استفاده خواهیم کرد. payload اول همانطور که در تصویر زیر نشان داده شده است 0 است و مقدار payload دوم روی 1 تنظیم می شود. بعد از ویرایش خصوصیات برای هر دو ، روی دکمه Done کلیک کنید.
توجه داشته باشید که از مقاومت استفاده کرده ایم؟ بنابراین ، هنگامی که دکمه فشرده نشده است ، خروجی در آن پین HIGH (1)
خواهد بود ، به این معنی که اگر ما آن را از طریق گره سوئیچ عبور دهیم، LED “روشن” خواهد بود. با استفاده از گره “change” آن را در حالت Low (0)
تنظیم میکنیم. گره “تغییر” دوم برای تنظیم مقدار به 1 استفاده می شود که وقتی هر چیزی غیر از حالت HIGH در پین 4 GPIO تشخیص داده شود ، باید LED را “روشن” کند زیرا این بدان معنی است که دکمه فشار داده شده است. همانطور که در تصویر زیر نشان داده شده ، گره های تغییر و بقیه گره ها را به هم وصل کنید.
با انجام این کار ، اکنون ما آماده Deploy کردن این پروژه هستیم. اکنون میتوانید با فشردن دکمه ال ای دی را کنترل کنید. Node Red یک ابزار عالی است که به شما امکان می دهد نمونه های اولیه را در عرض چند دقیقه بسازید.
سلام وقت بخیر
ایا این نرم افزار سیستم خودمونو تبدیل به سرور میکنه و از شهر دیگه هم میشه کنترل کرد؟
سلام عزیز
خیر این پروژه محلی هست. برای کنترل از شهر دیگر میتوانید دوره اینترنت اشیا را مشاهده کنید
سلام نود رد را روی رزبری پای نصب کردم اما وقتی آدرس IP میگیرم و در مرورگر وارد میکنم صفحه نود رد ناقص باز میشود چکار کنم؟
سلام وقت شما بخیر. فرصت اموزش و برنامه نویسی ندارم .پول یک دوره رو بهتون بدم یه برنامه کنترل لوازم منزل بوسیله سیم کارت و برد رزبری پای یا میکرو ارم رو ارسال میکنین.و حدود یکی دو ساعت پشتیبانی تلفنی
سلام عزیز، فعالیت ما در زمینه دوره های آموزشی هست پروژه سفارشی انجام نمیدیم.
سلام من نود رد رو نصب کردم ولی گره های رزبری پای رو نداره
سلام عزیز، نود رد رو در رزبری پای با روشی که ما گفتیم نصب کردید؟