فهرست مطالب:

نحوه کار با JSON در Node-RED: 13 مرحله
نحوه کار با JSON در Node-RED: 13 مرحله

تصویری: نحوه کار با JSON در Node-RED: 13 مرحله

تصویری: نحوه کار با JSON در Node-RED: 13 مرحله
تصویری: آموزش کامل Nodejs [قسمت 8] : نحوه اتصال نود جی اس به دیتابیس Sql Server 2024, نوامبر
Anonim
نحوه کار با JSON در Node-RED
نحوه کار با JSON در Node-RED

این دستورالعمل به شما نحوه کار با JSON در node-RED را آموزش می دهد. من به شما نحوه کنترل سوکت های برق شبکه با انتقال فایل های json از طریق http get and post را نشان خواهم داد. و بعداً می توانید از این دانش برای کنترل هر دستگاهی که از پروتکل JSON پشتیبانی می کند استفاده کنید.

برای اهداف آموزشی از پریز برق شبکه ای NETIO 4All استفاده می کنم ، اما نگران نباشید ، نیازی به خرید هیچ چیزی ندارید. NETIO دارای 4 نسخه نمایشی آنلاین شگفت انگیز است که می توانید از آن استفاده کنید.

تدارکات

NETIO 4 همه پاور شبکه یا 4 همه نسخه نمایشی آنلاین:

Node-RED

مرحله 1: REST JSON Http (s) پروتکل

REST JSON پروتکل (های) HTTP
REST JSON پروتکل (های) HTTP

این قسمت کمی فنی است اما لطفاً با من همراه باشید. اگر من این قسمت را توضیح ندهم ، در درک مقادیر فایل های 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 را وارد کرده ایم (پروژه ای که مشاهده می کنید. بعداً نحوه وارد کردن جریان و این پروژه را به شما نشان خواهم داد) این پروژه شامل دو بخش است:

  1. جریان NETIO AN30 (JSON REST API)
  2. داشبورد (رابط گرافیکی که می توانید با آن برنامه خود را کار کنید)

مرحله 3: داشبورد

داشبورد
داشبورد

به این ترتیب داشبورد در node-RED برای این دستورالعمل به نظر می رسد. اگر می خواهید با سلیقه شما مطابقت داشته باشد ، می توانید آن را سفارشی کنید.

داشبورد این پروژه به 4 قسمت تقسیم شده است:

  1. وضعیت دستگاه - اطلاعات دستگاه مانند مدل ، آدرس مک یا نسخه سیستم عامل را نشان می دهد.
  2. (POST) کنترل خروجی 1 - شامل 5 دکمه است که خروجی را کنترل می کند. هر دکمه عملکرد متفاوتی را اجرا می کند
  3. (GET) O1 - O4 حالتهای خروجی - این قسمت وضعیت فعلی هر خروجی از دستگاه شما را نشان می دهد.
  4. مدیریت دستگاه - در این قسمت می توانید انواع نمودارها و اندازه گیری هایی را که مقادیر اندازه گیری شده فعلی دستگاه 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 و GET
ارسال HTTP و GET
ارسال HTTP و GET
ارسال HTTP و 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 اختصاص می دهد.

کد به چهار بخش تقسیم می شود:

  1. تخصیص مقادیر از شی JSON به خصوصیات فردی شیء msg
  2. مدیریت خطا در صورتی که سوکت برق شبکه از اندازه گیری های جهانی پشتیبانی نکند

    اگر سوکت برق شبکه از اندازه گیری مقادیر جهانی پشتیبانی نمی کند ، Node-RED خطاها را نمایش می دهد زیرا این عملکرد ویژگی مربوطه را پیدا نمی کند ، به عنوان مثال. msg.payload. GlobalMeasure. Voltage ، زیرا در شی JSON وجود ندارد. در این حالت ، ویژگی شی شی ، مثلاً msg. Voltage ، روی 0 تنظیم شده است و خطا تحت کنترل قرار می گیرد.

  3. تخصیص مقادیر حالت خروجی
  4. تنظیم رنگهای وضعیت خروجی نمایش داده شده با توجه به حالتهای خروجی

مرحله 9: JSON Node و Inject Node

گره JSON و گره تزریق
گره JSON و گره تزریق
گره JSON و گره تزریق
گره JSON و گره تزریق

گره 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

خیلی زود میاد:)

توصیه شده: