السلسلة التالية من الأمثلة تبنى على عقدة mqtt ، الذي يوفر وسيلة ملائمة لإتخاذ المدخلات من وسيط MQTT . MQTT هو مثال على نظام نشر / اشتراك والذي يتيح لأجهزة الاستشعار بنشر التحديثات التي تسلمها إلى العميل المشترك في ذلك المستشعر . يستخدم MQTT نموذج الموضوع للسماح للناشرين (مثل اجهزة الاستشعار) لإنشاء الموضوعات و نشر البيانات للمواضيع ويمكن للأخرين الاشتراك في هذا الموضوع للحصل على اشعارات غير متزامنة من البيانات المرسلة لهذا الموضوع .
أنظمة pub/Sub هي طريقة رائعة لربط النظم الموزعة المتباعدة وهم خريطة جيدة لنموذج أنماط IOT حيث الأجهزة أو الأشياء تولد الأحداث التي ترغب في مشاركتها. بروتوكول MQTT ، فضلا عن كونها غير متزامنة هو أيضا خفيفة الوزن .
تلقي JSON عبر رسالة MQTT
لإستخدام عقدة MQTT ، تحتاج الوصول إلى الوسيط broker. هناك عدد من الخوادم تشغيلMQTT مجانية ، على سبيل المثال http://test.mosquitto.org/ ، او تلك التي سيتم استخدامها في هذا الدرس www.hivemq.com .
باستخدام عنوان الوسيط و الموضوع، يمكنك تكوين/إعداد عقدة المدخلات mqtt للإشتراك في هذا الموضوع . الأمر الذي ادى إلى إنشاء رسالة جديدة هو نشر البيانات الجديدة حول هذا الموضوع . و تحتوي الرسالة على معلومات عن البيانات المنشورة، وتتضمن البيانات نفسها في msg.payload و موضوع وسيط MQTT في msg.topic .
للبدء من عقدة mqtt ، عليك استخدام وسيط mqtt المجاني (hivemq) وهو متاح عبر (http://www.hivemq.com/showcase/public-mqtt-broker/) . بالطبع يمكنك استخدام أي وسيط MQTT .
أولا، قم بسحب و إسقاط عقدة المدخلات mqtt إعدادها للوسيط. لا تنسى تكوين/إعداد الموضوع ليكون فريد من نوعه (unique)في هذا المثال نحن نستخدم noderedlecture/sensor ولكن عليك استخدام الموضوع الفريد الخاص بك ، مثال : <your name>/sensor .
هناك العديد من الطرق التي تمكنك من ارسال رسائل mqtt إلى hivemq . و يمكنك استخدام مآخذها الويب websockets للعميل (http://www.hivemq.com/demos/websocket-client/) ،
و لوحة الإعدادات لـ (http://www.mqtt-dashboard.com/dashboard) mqtt ( mqtt dashboard) أو مكتبتك الخاصة .
عليك استخدام مآخذها الويب للعميل websocket client في هذا المثال ، لذلك انتقل إلى تلك الصفحة و قم بالاتصال إلى الوسيط . سوف تقوم بنشر سلسلة Json المرتبطة بالموضوع الذي قمت بتكوينه/إعداده ولرؤية ذلك قم بإستخدام عقدة qmtt وعقدة json .
بمجرد أن تقوم بإرسال سلسلة JSON ، سوف تحتاج إلى تحليل الرسالة التي تولدها عقدة mqtt عندما تتلقى رسالة MQTT . للقيام بذلك، سوف تحتاج إلى سحب و إسقاط عقدة json و توصيلها مع نقطة الإخراج في عقدة mqtt .
عقدة json هي نوع من convenience function ، حيث انه يوزع الرسالة الواردة و يحاول تحويلها من/إلى JSON .لذلك اذا قمت بإرسال سلسلة JSON سيقوم بتحويلها إلى جافاسكريبت JavaScript و العكس .
قم بتوصيل عقدة debug إلى عقدة json ثم قم بعملية النشر deploy ، استخدم لوحة إعداد HiveMQ لإرسال سلسلة JSON
{“analyze”:false, “value”:10} كما هو موضح بالشكل أدناه :
قم بالنظر عن كثب في المخرجات . يمكنك أن ترى msg.payload تحتوي على object و الذي يحتوي على حقلين حقل التحليل (analyze )و حقل القيمة (value) كما رأينا في الدرس السابق يمكنك الوصول إلى هذة الحقول عبر msg.payload.analyze و msg.payload.value . دعونا نلقي نظرة على العقدة وما يمكنها أن تفعل .