خواندن وضعیت آب و هوا با استفاده از فراخوانیهای REST API
این آموزش به شما نشان میدهد که چگونه میتوان دادههای وضعیت آب و هوا را با استفاده از REST API دریافت کرد.
موارد استفاده
فرض کنیم که نیاز به دانستن وضعیت آب و هوا در موقعیت مکانی یک دارایی دارید. شما ممکن است از اطلاعات وضعیت آب و هوا برای برخی از منطقهای پردازش داده استفاده کنید یا فقط جهت ردیابی تاریخچه و نمایش این اطلاعات روی داشبورد بهره ببرید.
در این آموزش، موتور قوانین ThingsConnect را بهگونهای پیکربندی خواهیم کرد که بهصورت خودکار اطلاعات وضعیت آب و هوا را از طریق REST API دریافت کند. شما میتوانید از این آموزش به عنوان پایهای برای انجام وظایف پیچیدهتر استفاده کنید.
پیشنیازها
فرض بر این است که شما راهنماهای زیر را تکمیل کرده و مقالات فهرست شده را مطالعه کردهاید:
- راهنمای شروع کار
- مرور کلی بر موتور قوانین
- گرههای قوانین خارجی
افزودن دارایی
یک موجودیت دارایی (Asset) در ThingsConnect اضافه کنید. نام آن "Building A" و نوع آن "ساختمان" (building) است.
توجه: اگر از نسخه حرفهای (Professional Edition) استفاده میکنید، باید دارایی را با استفاده از سلسلهمراتب مشتریان به روش زیر به مشتری اضافه کنید:
- به مسیر زیر بروید: سلسلهمراتب مشتریان (Customers Hierarchy) -> همه (All) -> (مستأجر فعلی) -> گروههای مشتریان (Customer groups) -> (گروه مشتری شما) -> (مشتری شما) -> گروههای دارایی (Asset groups) -> (گروه دارایی شما) -> افزودن دارایی (Add asset)
اختصاص دارایی به مشتری در نسخه Community
- به مسیر زیر بروید: داراییها (Assets) -> اختصاص به مشتری (Assign to customer) -> (مشتری شما) -> اختصاص (Assign)
ثبتنام در وبسایت ارائهدهنده داده
برای دریافت اطلاعات وضعیت آب و هوا، باید در یک وبسایت ارائهدهنده این دادهها ثبتنام کنید. در این مثال از OpenWeatherMap استفاده خواهد شد.
پس از ثبتنام، به این صفحه بروید تا کلید API خود را دریافت کنید.
ایجاد ویژگیها
برای اجرای فراخوانی REST API، به پارامترهای URL زیر نیاز داریم: کلید API، طول جغرافیایی، عرض جغرافیایی، و واحدهای اندازهگیری.
پیشنهاد میکنیم پارامتر کلید API را به عنوان یک ویژگی سمت سرور مشتری اضافه کنید و سایر پارامترها را به ویژگیهای سمت سرور دارایی اضافه نمایید.
ویژگی مشتری باید به این صورت باشد:
- به مسیر زیر بروید: (مشتری اختصاصیافته) -> ویژگیها (Attributes) -> افزودن (Add)
برای افزودن ویژگی به مشتری، مراحل زیر را دنبال کنید:
فیلد |
نوع داده |
داده ورودی |
---|---|---|
APPID |
String |
(کلید API که از OpenWeatherMap دریافت کردهاید) |
ویژگیهای دارایی باید به این صورت باشند:
- به مسیر زیر بروید: Building A -> ویژگیها (Attributes) -> افزودن (Add)
- ویژگیها را با دادههای ورودی نمایش داده شده در جدول زیر پر کنید:
فیلد |
نوع داده |
داده ورودی |
---|---|---|
latitude |
Double |
(عرض جغرافیایی دارایی) |
longitude |
Double |
(عرض جغرافیایی دارایی) |
units |
String |
"metric" برای سرعت باد به متر بر ثانیه و دمای سلسیوس، "imperial" برای سرعت باد به مایل بر ساعت و دمای فارنهایت، یا خالی برای سرعت باد به متر بر ثانیه و دمای کلوین |
در این مثال، از مختصات شهر نیویورک و واحدهای متریک استفاده خواهد شد.
جریان پیام
در این بخش، هدف هر گره در این آموزش توضیح داده میشود. یک زنجیره قوانین (Rule Chain) درگیر خواهد بود:
- دمای خارجی/رطوبت (Outside Temperature/Humidity) - زنجیره قوانین، فراخوانیهای API را هر 15 ثانیه به OpenWeatherMap ارسال کرده و دادههای مربوط به رطوبت و دما را به دارایی انتخابشده ارسال میکند.
تصویر زیر نحوه نمایش زنجیره قوانین فوق را نشان میدهد:
فایل JSON مربوط به زنجیره قوانین را دانلود و وارد کنید. توجه داشته باشید که باید داراییای که در ابتدای کار ایجاد کردهاید را به عنوان مبدا (originator) در گره تولیدکننده (generator node) در سمت چپترین قسمت تنظیم کنید.
بخش بعدی نحوه ایجاد این زنجیره قوانین از ابتدا را نشان میدهد.
ایجاد زنجیره قوانین جدید (دمای خارجی/رطوبت)
Rule Chains -> افزودن زنجیره قوانین جدید (Add new Rule Chain)
پیکربندی:
- نام (Name): دمای خارجی/رطوبت (Outside Temperature/Humidity)
زنجیره قوانین جدید ایجاد شد. دکمه "ویرایش" (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" }; |
گره B: گره غنیسازی ویژگیهای مشتری
- گره ویژگیهای مشتری را اضافه کرده و آن را به گره تولیدکننده با نوع ارتباط "موفقیت" (Success) متصل کنید. این گره ویژگی مشتری APPID را در متادیتای پیام قرار میدهد.
- فیلدهای آن را به این صورت پر کنید:
فیلد |
مقدار |
---|---|
Name |
دریافت کلید API مشتری (Get customer API key) |
Latest telemetry |
False |
Source attribute |
APPID |
Target attribute |
APPID |
گره C: گره غنیسازی ویژگیهای مبدا
- گره غنیسازی ویژگیهای مبدا را اضافه کنید و آن را با نوع ارتباط "موفقیت" (Success) به گره ویژگیهای مشتری متصل کنید. این گره، ویژگیهای سرور عرض جغرافیایی (latitude)، طول جغرافیایی (longitude) و واحدهای اندازهگیری (units) را که در گره تولیدکننده تنظیم شدهاند، به متادیتای پیام اضافه میکند.
- فیلدهای آن را به صورت زیر پر کنید:
فیلد |
مقدار |
---|---|
Name |
Latitude/Longitude |
Server attributes |
latitude, longitude, units |
گره 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 ویژگیهای سرور هستند که از متادیتا استخراج شدهاند و توسط گره غنیسازی ویژگیهای مبدا در آنجا قرار گرفتهاند.
گره 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};
گره F: گره ذخیره سری زمانی
گره ذخیره سری زمانی را اضافه کنید و آن را با نوع ارتباط "موفقیت" (Success) به گره فراخوانی REST API خارجی متصل کنید. این گره پیام را در تلمتری ذخیره میکند.
راهاندازی داشبورد
فایل JSON مربوط به داشبورد را دانلود کرده و وارد کنید.
داشبورد باید به این صورت نمایش داده شود:
گامهای بعدی
- راهنماهای شروع به کار: این راهنماها مرور سریعی از ویژگیهای اصلی ThingsConnect ارائه میدهند. طراحی شدهاند تا در 15 تا 30 دقیقه تکمیل شوند.
- اتصال دستگاه شما: یاد بگیرید چگونه دستگاههای خود را بر اساس تکنولوژی اتصال یا راهحلهای خود متصل کنید.
- بصریسازی دادهها: این راهنماها شامل دستورالعملهایی برای پیکربندی داشبوردهای پیچیده ThingsConnect هستند.
- تحلیل دادههای IoT: یاد بگیرید چگونه از موتور قوانین برای انجام وظایف پایه تحلیل استفاده کنید.
- نمونههای سختافزاری: یاد بگیرید چگونه پلتفرمهای سختافزاری مختلف را به ThingsConnect متصل کنید.
- ویژگیهای پیشرفته: با ویژگیهای پیشرفته ThingsConnect آشنا شوید.
- مشارکت و توسعه: با نحوه مشارکت و توسعه در ThingsConnect آشنا شوید.