فهرست مطالب:
- تدارکات
- مرحله 1: REST JSON Http (s) پروتکل
- مرحله 2: جریان
- مرحله 3: داشبورد
- مرحله 4: وارد کردن جریان (پروژه ، اسکریپت ، و غیره)
- مرحله 5: چگونه همه چیز با هم کار می کند
- مرحله 6: HTTP POST و GET
- مرحله 7: گره های دکمه ای
- مرحله 8: تابع گره
- مرحله 9: JSON Node و Inject Node
- مرحله 10: Text Node و Debug Node
- مرحله 11: گره نمودار
- مرحله 12: گره سنج و گره های پیوند
- مرحله 13: از اینکه دستورالعمل من را مطالعه کردید متشکرم
تصویری: نحوه کار با JSON در Node-RED: 13 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
این دستورالعمل به شما نحوه کار با JSON در node-RED را آموزش می دهد. من به شما نحوه کنترل سوکت های برق شبکه با انتقال فایل های json از طریق http get and post را نشان خواهم داد. و بعداً می توانید از این دانش برای کنترل هر دستگاهی که از پروتکل JSON پشتیبانی می کند استفاده کنید.
برای اهداف آموزشی از پریز برق شبکه ای NETIO 4All استفاده می کنم ، اما نگران نباشید ، نیازی به خرید هیچ چیزی ندارید. NETIO دارای 4 نسخه نمایشی آنلاین شگفت انگیز است که می توانید از آن استفاده کنید.
تدارکات
NETIO 4 همه پاور شبکه یا 4 همه نسخه نمایشی آنلاین:
Node-RED
مرحله 1: REST JSON Http (s) پروتکل
این قسمت کمی فنی است اما لطفاً با من همراه باشید. اگر من این قسمت را توضیح ندهم ، در درک مقادیر فایل های json که در node-RED ارسال می کنیم ، مشکل خواهید داشت.
اقدامات قابل اجرا برای هر خروجی (پریز برق):
در تمام پروتکل های M2M ، پریزهای برق NETIO از اقدامات یکسانی استفاده می کنند که می تواند برای خروجی های جداگانه اعمال شود. به عنوان مثال ، یک عمل Toggle یا Short Off می تواند در هر خروجی نوشته شود.
با این حال ، متغیر Action فقط برای نوشتن مقادیر قابل استفاده است ، نمی توان از آن برای خواندن وضعیت خروجی فعلی استفاده کرد.
اینها اقداماتی است که می توانید برای هر خروجی اعمال کنید:
0 = خروجی خاموش (خاموش)
1 = خروجی روشن (روشن)
2 = خروجی برای مدت کوتاهی خاموش (خاموش کوتاه)
3 = خروجی برای مدت کوتاهی روشن (کوتاه روشن)
4 = خروجی از یک حالت به حالت دیگر (تغییر وضعیت)
5 = وضعیت خروجی بدون تغییر (بدون تغییر)
6 = نادیده گرفته شد
مثال - فایل JSON برای تغییر شماره خروجی. 1:
{
"خروجی ها": [{
"شناسه": 1 ،
"عمل": 4
}]
}
ID - این شماره نشان می دهد که از کدام خروجی استفاده خواهیم کرد
عمل - این قسمت ، عملی است که خروجی انجام می دهد (به عنوان مثال 1 (روشن کردن خروجی))
مرحله 2: جریان
و حالا قسمت اصلی محیط node-RED به این شکل است.
ما جریان API URL را وارد کرده ایم (پروژه ای که مشاهده می کنید. بعداً نحوه وارد کردن جریان و این پروژه را به شما نشان خواهم داد) این پروژه شامل دو بخش است:
- جریان NETIO AN30 (JSON REST API)
- داشبورد (رابط گرافیکی که می توانید با آن برنامه خود را کار کنید)
مرحله 3: داشبورد
به این ترتیب داشبورد در node-RED برای این دستورالعمل به نظر می رسد. اگر می خواهید با سلیقه شما مطابقت داشته باشد ، می توانید آن را سفارشی کنید.
داشبورد این پروژه به 4 قسمت تقسیم شده است:
- وضعیت دستگاه - اطلاعات دستگاه مانند مدل ، آدرس مک یا نسخه سیستم عامل را نشان می دهد.
- (POST) کنترل خروجی 1 - شامل 5 دکمه است که خروجی را کنترل می کند. هر دکمه عملکرد متفاوتی را اجرا می کند
- (GET) O1 - O4 حالتهای خروجی - این قسمت وضعیت فعلی هر خروجی از دستگاه شما را نشان می دهد.
- مدیریت دستگاه - در این قسمت می توانید انواع نمودارها و اندازه گیری هایی را که مقادیر اندازه گیری شده فعلی دستگاه NETIO 4Aall را نشان می دهند ، بیابید.
مرحله 4: وارد کردن جریان (پروژه ، اسکریپت ، و غیره)
در منو (گوشه سمت راست بالا) Import و سپس Clipboard را انتخاب کنید.
سپس ، متن زیر را در قسمت مشخص شده کپی کرده و روی وارد کردن کلیک کنید.
نصب گره های از دست رفته
گره ها در جریان انتخاب شده بارگذاری می شوند. ممکن است یک پیغام خطا با لیستی از گره هایی که وارد می شوند اما هنوز در Node-RED نصب نشده اند ، نمایش داده شود. در این حالت ، گره های از دست رفته باید نصب شوند.
در صورت عدم وجود گره ها ، مدیریت منوی پالت را در منو انتخاب کنید ، روی نصب کلیک کنید و گره های از دست رفته را پیدا کرده و نصب کنید.
وارد کردن متن:
[{"id": "56b9510c.98c6f" ، "type": "tab" ، "label": "NETIO AN30 (REST JSON)" ، "غیرفعال": false ، "info": ""} ، {"id ":" 6a66b637.da1558 "،" type ":" درخواست http "،" z ":" 56b9510c.98c6f "،" name ":" HTTP Request (POST) "،" method ":" POST "،" ret ": "txt" ، "url": "https://netio-4All.netio-products.com:8080/netio.json" ، "tls": "" ، "x": 430 ، "y": 100 ، "wires":
مرحله 5: چگونه همه چیز با هم کار می کند
اساساً جریان به دو قسمت POST و GET تقسیم می شود.
POST: نوشتن برای O1
- پنج دکمه ایجاد شده در داشبورد در جریان در داشبورد نمایش داده می شود.
- پس از کلیک بر روی دکمه Output 1 = ON در داشبورد ، میزان بار بر روی فایل netio.json تنظیم می شود که خروجی و عملکرد را مشخص می کند (برای هر یک از دکمه ها تعریف شده است).
- بلوک درخواست HTTP (POST) فایل netio.json را به عنوان یک درخواست به آدرس IP ارسال می کند.
- پاسخ سرور (وضعیت) به عنوان خروجی بازگردانده می شود.
- بلوک Msg.payload نتیجه درخواست HTTP (POST) را نمایش می دهد.
GET: خواندن از O1 - O4
- بلوک تکرار 1 ثانیه ای ، با یک دوره ثانیه ، بلوک HTTP Request (GET) را فعال می کند ، که به نوبه خود netio.json را به عنوان درخواست GET ارسال می کند و یک فایل JSON کامل با وضعیت سوکت دریافت شده از سرور را برمی گرداند.
- بلوک JSON Parse فایل JSON را از بلوک HTTP Request (GET) به JSON Object تبدیل می کند تا امکان دستکاری خواص در فایل JSON وجود داشته باشد.
- بلوک تابع قسمتهای جداگانه از شی JSON را می گیرد و آنها را برای استفاده بعدی به خواص یک شیء msg تبدیل می کند.
- بلوک نمودار فعلی msg.payload را در ویژگی msg. TotalCurrent شیء msg قرار می دهد ، زیرا بلوک نمودار فعلی (دستگاه) بعدی فقط می تواند مقدار msg.payload را نمایش دهد.
- سپس گره های خروجی مختلفی برای نمایش خصوصیات انتخابی شیء msg ، که از شی JSON گرفته شده است ، در داشبورد دنبال می شود.
شیء msg و msg.payload
برای توضیح ساده و مختصر ، اینجا را ببینید:
www.steves-internet-guide.com/node-red-mess…
مرحله 6: HTTP POST و GET
درخواست HTTP (POST)
این گره یک فایل دستور netio.json را به عنوان یک درخواست HTTP (POST) برای کنترل دستگاه NETIO 4All ارسال می کند.
درخواست HTTP (GET)
این گره یک درخواست HTTP (GET) ارسال می کند و پاسخ وضعیت را برمی گرداند.
آدرس های پر شده به نمایشی آنلاین NETIO 4All نشان می دهد ، جایی که می توانید اتصال را بدون داشتن دستگاه NETIO روی میز آزمایش کنید.
netio-4all.netio-products.com
ممکن است آدرس IP خود را در این گره ها تنظیم کنید. با این حال ، IP باید در هر دو گره درخواست HTTP ، POST و GET تغییر کند.
مرحله 7: گره های دکمه ای
با کلیک روی گره دکمه پیامی حاوی یک فایل netio.json (تصویر سمت راست) ایجاد می شود که سپس از طریق گره پست http به سوکت برق هوشمند netio ارسال می شود.
مرحله 8: تابع گره
یک گره تابع یک گره خاص است که امکان نوشتن یک تابع جاوا اسکریپت سفارشی را فراهم می کند.
در این دستورالعمل ، تابع مقادیری را از فایل تجزیه شده JSON (که اکنون یک شی JSON است) انتخاب کرده و آنها را به خواص شیء msg اختصاص می دهد.
کد به چهار بخش تقسیم می شود:
- تخصیص مقادیر از شی JSON به خصوصیات فردی شیء msg
-
مدیریت خطا در صورتی که سوکت برق شبکه از اندازه گیری های جهانی پشتیبانی نکند
اگر سوکت برق شبکه از اندازه گیری مقادیر جهانی پشتیبانی نمی کند ، Node-RED خطاها را نمایش می دهد زیرا این عملکرد ویژگی مربوطه را پیدا نمی کند ، به عنوان مثال. msg.payload. GlobalMeasure. Voltage ، زیرا در شی JSON وجود ندارد. در این حالت ، ویژگی شی شی ، مثلاً msg. Voltage ، روی 0 تنظیم شده است و خطا تحت کنترل قرار می گیرد.
- تخصیص مقادیر حالت خروجی
- تنظیم رنگهای وضعیت خروجی نمایش داده شده با توجه به حالتهای خروجی
مرحله 9: JSON Node و Inject Node
گره JSON
گره JSON فایل JSON را تجزیه کرده و آن را به یک شی JSON تبدیل می کند.
به عنوان پاسخی از سرور به درخواست GET ، گره HTTP Request یک فایل JSON حاوی وضعیت فعلی دستگاه NETIO 4x را برمی گرداند ، اما فقط یک فایل متنی است ، بنابراین برای کار با داده ها ، فایل JSON به در یک شی JSON تجزیه شود.
تزریق گره
هر ثانیه ، این گره گره HTTP Request را که درخواست GET ارسال می کند فعال می کند.
در نتیجه ، مقادیر داشبورد با فاصله یک ثانیه به روز می شوند
مرحله 10: Text Node و Debug Node
گره متن
فیلد متنی را در داشبورد نمایش می دهد. در این دستورالعمل ، گره های متنی جریان ، ولتاژ ، مدل ، نسخه سیستم عامل یا نسخه JSON را نمایش می دهند.
برچسب در داشبورد نمایش داده می شود و Name نام گره ای است که در جریان در Node-RED نمایش داده می شود.
گره اشکال زدایی
msg.payload را نمایش می دهد.
مرحله 11: گره نمودار
این گره نمودار فعلی را در داشبورد با توجه به مقدار بار رسم می کند.
این گره فقط می تواند نمودارها را با توجه به مقدار بار رسم کند.
به همین دلیل ، از یک گره تابع برای تنظیم msg.payload به مقداری که باید نمایش داده شود استفاده می شود.
msg.payload = msg. TotalCurrent؛
مرحله 12: گره سنج و گره های پیوند
گره سنج
این گره یک ویجت سنج به داشبورد اضافه می کند.
در این دستورالعمل ، هر سنج یک ویژگی از شیء msg را تجسم می کند: ولتاژ [V] ، curent [A] ، فرکانس [Hz] و کل عامل واقعی توان (TPF).
گره های پیوند
پیوند دادن و پیوند دادن گره ها مانند یک تونل عمل می کند. msg.payload وارد پیوند در گره می شود و از گره پیوند خارج می شود.
من از آن استفاده کردم تا جریان را کمی واضح تر و خواندنی تر کنم.
مرحله 13: از اینکه دستورالعمل من را مطالعه کردید متشکرم
امیدوارم از آموزش آموزنده من لذت برده باشید و امیدوارانه چیز جدیدی آموخته باشید.
این دستورالعمل فقط نسخه کوتاه راهنمای مختلفی است که من تهیه کرده ام
راهنمای اصلی طولانی تر و بسیار دقیق تر است و به طور کلی ساختار بهتری دارد. اگر چیزی را درک نکرده اید یا فکر می کنید من چیزی را فراموش کرده ام یا به اندازه کافی توضیح نداده ام ، مطمئناً می توانید آن را در آنجا پیدا کنید.
قول می دهم ناامید نشوید
اصلی:
همچنین راهنماهای مشابهی در مورد موارد مختلف استفاده از node-RED وجود دارد ، بنابراین اگر علاقه دارید با خیال راحت این موارد را بررسی کنید:
کار با REST URL API در node-RED
www.netio-products.com/fa/application-notes/an29-node-red-example-of-url-api-communication-with-netio-4x
کار با REST XML در node-RED
www.netio-products.com/fa/application-notes/an31-node-red-example-of-rest-xml-communication-with-netio-4x
کار با TCP/Modbus در node-RED
خیلی زود میاد:)
توصیه شده:
نحوه ایجاد یک چراغ راهنمای کار با یک برد Auduino: 5 مرحله
نحوه ایجاد یک چراغ راهنمای کار با یک برد Auduino: چراغ های راهنمایی وسایل علامتی هستند که معمولاً از تقاطع های جاده ، گذرگاه های عابر پیاده و سایر نقاط برای کنترل جریان ترافیک استفاده می کنند. چراغ راهنمایی با چراغ گاز که به صورت دستی کار می کرد اولین بار در نوع خود بود و این فناوری بسیار بهبود یافته است
یادآوری زمان استفاده از صفحه نمایش (فقط روی ویندوز کار می کند ، Ios کار نمی کند): 5 مرحله
یادآوری زمان استفاده از صفحه نمایش (فقط روی ویندوز کار می کند ، Ios کار نمی کند): مقدمه این یک دستگاه مفید است که از آردوینو ساخته شده است ، با ساخت & quot؛ biiiii & quot؛ به شما یادآوری می کند که استراحت کنید. پس از استفاده از 30 دقیقه زمان استفاده از صفحه ، رایانه خود را به قفل صفحه بازگردانید. پس از 10 دقیقه استراحت ، & quot؛ b
نحوه شروع کار با IDE برای NRF51822 ، ARM® KEIL MDK V5 + ST-Link: 6 مرحله
چگونه می توان با IDE برای NRF51822 ، ARM® KEIL MDK V5 + ST-Link شروع به کار کرد: مرور کلی هنگامی که من شروع به توسعه برنامه nRF51822 برای پروژه سرگرمی خود کردم ، متوجه شدم که اطلاعات سازماندهی شده ای در این زمینه وجود ندارد. در اینجا ، بنابراین ، من می خواهم به آنچه که من به دست آورده ام اشاره کنم. این توصیف کننده چیزی است که باعث می شود برای اجرای آن تلاش کنم
نحوه اتصال و شروع کار با تجهیزات دی جی خود: 8 مرحله
نحوه اتصال و شروع کار با تجهیزات DJ: هدف از این دستورالعمل این است که به شما خواننده نشان دهد که چگونه صفحه گردان خود را تنظیم کنید و چگونه تجهیزات DJ خود را وصل کنید
DragonBoard 410c - نحوه کار با سرعت کم: 8 مرحله
DragonBoard 410c - چگونه می توان با سرعت کم کار کرد: این آموزش در مورد توسعه سرعت کم در DragonBoard 410c است. ورودی و خروجی (I/O) توسعه سرعت کم در DragonBoard 410c عبارتند از: GPIO (ورودی/خروجی هدف عمومی) ؛ MPP (پین چند منظوره) ؛ SPI (رابط جانبی سریال) ؛ I2C (در