التدفق الثاني : تنبيهات الطقس
في هذا المثال ، سيتم مراقبة الطقس لمدينتك و إرسال لنفسك تغريدة في حال يبدو الطقس جيد. عليك استخدام عقدة الطقس (openweathermap) والتي تسترد الطقس من openweathermap.org حول الموقع الذي تم تحديده من قبلك. و سوف يتم استخدام عقدة function للتحقق من الطقس ما اذا كان جيد و عقدة التويتر سيتم استخدامها لإرسال لنفسك تغريدة في حال كان الطقس جيد.
أولا، سوف تحتاج إلى الحصول على مفتاح API في OperWeatherMap . تقدم penWeatherMap معلومات تفصيلية حول الطقس لمواقع في جميع أنحاء العالم . قم بزيارة http://openweathermap.org/appid واتبع المعلومات ادناه .
سوف تحتاج إلى الاشتراك للحصول على حساب OpenWeather كما هو موضح ادناه :
بعد الإشتراك سيتم توجيهك إلى الصفحة الرئيسية الخاصة بك حيث أنك ستكون قادرا على الوصول أو إعادة توليد مفتاح API خاص بك .
الآن ، دعونا نستخدم مفتاح API لبناء تدفق تنبيهات الطقس. قم بسحب و اسقاط عقدة الطقس من الجزء الأيمن على مساحة العمل ، كما هو مبين بالشكل ادناه :
اذا قمت بتحديد لوحة info لظهور المعلومات على الجانب الايمن ، يمكنك أن ترى وصفا لعقدة openweathermap مع معلومات مفصلة حول كيفية إعدادها و استخدامها. ستلاحظ بعض الأمور المهم :
1- أن لديها بنية JSON كما ان لها msg.payload ، تحتوي على الكثير من التفاصيل حول الطقس على سبيل المثال : سرعة الرياح و درجة الحرارة tempc.
2- العقدة تعرف ثلاث خصائص للرسالة الجديدة : msg.time ، msg.location و msg.data. وكما ذكر أعلاه، انت لك الحريه في إضافة خصائص الرسائل ، openweathermap اضافت هذة الخصائص الجديدة لتحمل معلومات إضافية مرتبطة مع الرسالة .
سنقوم بإعداد العقدة و النظر في بنية البيانات الفعلية التي يتم توليدها بعد أن تسأل عن الطقس المحلي الخاص بك . قم بالنقر المزدوج على العقدة وملء النموذج حسب موقعك. اكتب المدينة و الدولة في الحقول المخصصة او وضع احداثيات مدينتك. قم بإضافة API الذي تم الحصول عليه من http://openweathermap.org/appid ثم انقر موافق كما هو مبين بالشكل التالي:
في الصورة ادناه تم تحديد موقع مدينة جدة في المملكة العربية السعودية.
ثم قم بسحب و إسقاط عقدة debug و قم بتوصيل العقد معا عن طريق السلك قم بالضغط على زر Deploy لرؤية رسالة payload من عقدة openweathermap في لوحة debug .
كما ترون في الصورة اعلاه على لوحة الاخراج، العقدة توفر الكثير من المعلومات حول الطقس المحلي الخاص بك، بالعادة تتوفر المعلومات كأزواج من اللإسم: القيمة . على سبيل المثال ، استخدام حقل الطقس “weather” لاختبار ما اذا كان الطقس جيد “Clear ” . في حال كان جيد عليك ارسال تغريدة.
لبرمجة هذا المنطق، عليك استخدام عقدة function . تم عرضها في الدرس الأول ولكن دون ذكر التفاصيل. دعونا نرى كيف يتم استخدامها عن طريق سحب واحدة على مساحة عمل التدفق و النقر المزدوج لفتح محرر العقدة .
الان انقر نقرا مزدوجا فوق عقدة function وقم بكتابة الشرط التالي:
في الشرط تم التحقق ما اذا كان الطقس جيد “Clear” أو لا . اذا تحقق الشرط ، فإنه سيتم إعادة كتابة رسالة payload لتصبح “Clear skies ahead today!” (في السطر 2) . و اذا لم يتحقق سيعيد رسالة فارغة . السطر الأخير مهم لأن الـ Node-RED تتجاهل الرسائل الفارغة.
if (msg.payload.weather === "Clear") { msg.payload = "Clear skies ahead today!" return msg; } return null;
يمكنك الأن أن تفعل عدة تطبيقات على هذا التدفق مثلا توصيل هذة الرسالة إلى عقدة البريد الإلكتروني أو عقدة pushbullet . لهذا الدرس سيتم استخدام عقدة التويتر. قم بسحب عقدة التويتر على مساحة العمل ، انقر نقرا مزدوجا فوق العقدة و قم بملء اعتماد حساب التويتر الخاص بك كما هو موضح بالصورة ادناه :
وبمجرد الانتهاء من إعداد هذة الوثائق، تقوم Node-RED بتخزين هذة الوثائق التي يمكنك استخدامها في التدفقات المستقبلية. و أخيرا قم بالضغط على زر النشر Deploy و راقب حساب التويتر الخاص بك لرؤية التغريدة الجديدة في كل مرة يتم التحقق أن حالة الطقس جيدة .