خواندن وضعیت آب و هوا با استفاده از فراخوانی‌های REST API

این آموزش به شما نشان می‌دهد که چگونه می‌توان داده‌های وضعیت آب و هوا را با استفاده از REST API دریافت کرد.

موارد استفاده

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

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

پیش‌نیازها

فرض بر این است که شما راهنماهای زیر را تکمیل کرده و مقالات فهرست شده را مطالعه کرده‌اید:

  • راهنمای شروع کار
  • مرور کلی بر موتور قوانین
  • گره‌های قوانین خارجی

افزودن دارایی

یک موجودیت دارایی (Asset) در ThingsConnect اضافه کنید. نام آن "Building A" و نوع آن "ساختمان" (building) است.

image

توجه: اگر از نسخه حرفه‌ای (Professional Edition) استفاده می‌کنید، باید دارایی را با استفاده از سلسله‌مراتب مشتریان به روش زیر به مشتری اضافه کنید:

  • به مسیر زیر بروید: سلسله‌مراتب مشتریان (Customers Hierarchy) -> همه (All) -> (مستأجر فعلی) -> گروه‌های مشتریان (Customer groups) -> (گروه مشتری شما) -> (مشتری شما) -> گروه‌های دارایی (Asset groups) -> (گروه دارایی شما) -> افزودن دارایی (Add asset)

image

اختصاص دارایی به مشتری در نسخه Community

  • به مسیر زیر بروید: دارایی‌ها (Assets) -> اختصاص به مشتری (Assign to customer) -> (مشتری شما) -> اختصاص (Assign)
image

ثبت‌نام در وب‌سایت ارائه‌دهنده داده

برای دریافت اطلاعات وضعیت آب و هوا، باید در یک وب‌سایت ارائه‌دهنده این داده‌ها ثبت‌نام کنید. در این مثال از OpenWeatherMap استفاده خواهد شد.

پس از ثبت‌نام، به این صفحه بروید تا کلید API خود را دریافت کنید.

image

ایجاد ویژگی‌ها

برای اجرای فراخوانی REST API، به پارامترهای URL زیر نیاز داریم: کلید API، طول جغرافیایی، عرض جغرافیایی، و واحدهای اندازه‌گیری.

پیشنهاد می‌کنیم پارامتر کلید API را به عنوان یک ویژگی سمت سرور مشتری اضافه کنید و سایر پارامترها را به ویژگی‌های سمت سرور دارایی اضافه نمایید.

ویژگی مشتری باید به این صورت باشد:

  • به مسیر زیر بروید: (مشتری اختصاص‌یافته) -> ویژگی‌ها (Attributes) -> افزودن (Add)
image

برای افزودن ویژگی به مشتری، مراحل زیر را دنبال کنید:

فیلد

نوع داده

داده ورودی

APPID

String

(کلید API که از OpenWeatherMap دریافت کرده‌اید)

ویژگی‌های دارایی باید به این صورت باشند:

  • به مسیر زیر بروید: Building A -> ویژگی‌ها (Attributes) -> افزودن (Add)
image
  • ویژگی‌ها را با داده‌های ورودی نمایش داده شده در جدول زیر پر کنید:

فیلد

نوع داده

داده ورودی

latitude

Double

(عرض جغرافیایی دارایی)

longitude

Double

(عرض جغرافیایی دارایی)

units

String

"metric" برای سرعت باد به متر بر ثانیه و دمای سلسیوس، "imperial" برای سرعت باد به مایل بر ساعت و دمای فارنهایت، یا خالی برای سرعت باد به متر بر ثانیه و دمای کلوین

در این مثال، از مختصات شهر نیویورک و واحدهای متریک استفاده خواهد شد.

جریان پیام

در این بخش، هدف هر گره در این آموزش توضیح داده می‌شود. یک زنجیره قوانین (Rule Chain) درگیر خواهد بود:

  • دمای خارجی/رطوبت (Outside Temperature/Humidity) - زنجیره قوانین، فراخوانی‌های API را هر 15 ثانیه به OpenWeatherMap ارسال کرده و داده‌های مربوط به رطوبت و دما را به دارایی انتخاب‌شده ارسال می‌کند.

تصویر زیر نحوه نمایش زنجیره قوانین فوق را نشان می‌دهد:

image

فایل JSON مربوط به زنجیره قوانین را دانلود و وارد کنید. توجه داشته باشید که باید دارایی‌ای که در ابتدای کار ایجاد کرده‌اید را به عنوان مبدا (originator) در گره تولیدکننده (generator node) در سمت چپ‌ترین قسمت تنظیم کنید.

بخش بعدی نحوه ایجاد این زنجیره قوانین از ابتدا را نشان می‌دهد.

ایجاد زنجیره قوانین جدید (دمای خارجی/رطوبت)

Rule Chains -> افزودن زنجیره قوانین جدید (Add new Rule Chain)

پیکربندی:

  • نام (Name): دمای خارجی/رطوبت (Outside Temperature/Humidity)
image

زنجیره قوانین جدید ایجاد شد. دکمه "ویرایش" (Edit) را فشار داده و زنجیره قوانین را پیکربندی کنید.

افزودن گره‌های مورد نیاز

در این زنجیره قوانین، 5 گره ایجاد خواهید کرد که در بخش‌های بعدی توضیح داده خواهد شد:

گره A: گره تولیدکننده (Generator node)

  • گره تولیدکننده را اضافه کنید. این گره تولیدکننده پیام‌های خالی را برای تحریک فراخوانی‌های REST API تولید می‌کند.
  • میدان‌های آن را به صورت زیر پر کنید:

فیلد

مقدار

Name

تولید درخواست‌ها (Generate requests)

Message count

0

Period in seconds

15

Originator type

دارایی (Asset)

دارایی (Asset)

Building A

Generate function

return { msg: {}, metadata: {}, msgType: "POST_TELEMETRY_REQUEST" };

image

گره B: گره غنی‌سازی ویژگی‌های مشتری

  • گره ویژگی‌های مشتری را اضافه کرده و آن را به گره تولیدکننده با نوع ارتباط "موفقیت" (Success) متصل کنید. این گره ویژگی مشتری APPID را در متادیتای پیام قرار می‌دهد.
  • فیلدهای آن را به این صورت پر کنید:

فیلد

مقدار

Name

دریافت کلید API مشتری (Get customer API key)

Latest telemetry

False

Source attribute

APPID

Target attribute

APPID

image

گره C: گره غنی‌سازی ویژگی‌های مبدا

  • گره غنی‌سازی ویژگی‌های مبدا را اضافه کنید و آن را با نوع ارتباط "موفقیت" (Success) به گره ویژگی‌های مشتری متصل کنید. این گره، ویژگی‌های سرور عرض جغرافیایی (latitude)، طول جغرافیایی (longitude) و واحدهای اندازه‌گیری (units) را که در گره تولیدکننده تنظیم شده‌اند، به متادیتای پیام اضافه می‌کند.
  • فیلدهای آن را به صورت زیر پر کنید:

فیلد

مقدار

Name

Latitude/Longitude

Server attributes

latitude, longitude, units

image

گره D: گره فراخوانی REST API خارجی

  • گره فراخوانی REST API خارجی را اضافه کنید و آن را با نوع ارتباط "موفقیت" (Success) به گره غنی‌سازی ویژگی‌های مبدا متصل کنید. این گره فراخوانی‌های REST API را به OpenWeatherMap انجام می‌دهد.
  • فیلدهای آن را به صورت زیر پر کنید:

فیلد

مقدار

Name

Get Weather Data

Endpoint URL pattern

.

Request method

GET

Use simple client HTTP factory

False

ss_latitude، ss_longitude، ss_units و ss_APPID ویژگی‌های سرور هستند که از متادیتا استخراج شده‌اند و توسط گره غنی‌سازی ویژگی‌های مبدا در آنجا قرار گرفته‌اند.

image

گره E: گره تبدیل اسکریپت

  • گره تبدیل اسکریپت را اضافه کنید و آن را با نوع ارتباط "موفقیت" (Success) به گره فراخوانی REST API خارجی متصل کنید. این گره دمای خارجی، دمای حداکثر، دمای حداقل و رطوبت را در پیام قرار می‌دهد.
  • تابع Transform را به این صورت پر کنید:
				
					    var newMsg = {
        "outsideTemp": msg.main.temp,
        "outsideMaxTemp": msg.main.temp_max,
        "outsideMinTemp": msg.main.temp_min,
        "outsideHumidity": msg.main.humidity,
    };

    return {msg: newMsg, metadata: metadata, msgType: msgType};
				
			

image

گره F: گره ذخیره سری زمانی

گره ذخیره سری زمانی را اضافه کنید و آن را با نوع ارتباط "موفقیت" (Success) به گره فراخوانی REST API خارجی متصل کنید. این گره پیام را در تلمتری ذخیره می‌کند.

image

راه‌اندازی داشبورد

فایل JSON مربوط به داشبورد را دانلود کرده و وارد کنید.

داشبورد باید به این صورت نمایش داده شود:

image

گام‌های بعدی

  • راهنماهای شروع به کار: این راهنماها مرور سریعی از ویژگی‌های اصلی ThingsConnect ارائه می‌دهند. طراحی شده‌اند تا در 15 تا 30 دقیقه تکمیل شوند.
  • اتصال دستگاه شما: یاد بگیرید چگونه دستگاه‌های خود را بر اساس تکنولوژی اتصال یا راه‌حل‌های خود متصل کنید.
  • بصری‌سازی داده‌ها: این راهنماها شامل دستورالعمل‌هایی برای پیکربندی داشبوردهای پیچیده ThingsConnect هستند.
  • تحلیل داده‌های IoT: یاد بگیرید چگونه از موتور قوانین برای انجام وظایف پایه تحلیل استفاده کنید.
  • نمونه‌های سخت‌افزاری: یاد بگیرید چگونه پلتفرم‌های سخت‌افزاری مختلف را به ThingsConnect متصل کنید.
  • ویژگی‌های پیشرفته: با ویژگی‌های پیشرفته ThingsConnect آشنا شوید.
  • مشارکت و توسعه: با نحوه مشارکت و توسعه در ThingsConnect آشنا شوید.

عناوین هر بخش