جدول المحتويات:

MQTT على لوحات Armtronix: 3 خطوات
MQTT على لوحات Armtronix: 3 خطوات

فيديو: MQTT على لوحات Armtronix: 3 خطوات

فيديو: MQTT على لوحات Armtronix: 3 خطوات
فيديو: Laser distance measurement with M5Stack Core2 ESP32 and VL53L0X with Arduino - Robojax 2024, يوليو
Anonim
MQTT على لوحات Armtronix
MQTT على لوحات Armtronix

في هذا الدليل ، نود أن نوضح لك في البداية كيف يمكنك استخدام نظام قائم على Linux (Debian أو Ubuntu) وتثبيت Mosquitto (Mqtt Broker) عليه ، كما نوضح لك كيفية استخدام عميل Mqtt على هاتفك (Android) / المستندة إلى Linux نظام إرسال واستقبال الرسائل عبر مقتط. بعد التعرف على هذا ، نود أن نوضح لك كيف يمكنك تكوين وتوصيل لوحتنا مع وسيط Mqtt المثبت هذا. أود أيضًا أن أوضح لك كيف يمكنك إضافة مصادقة إلى وسيط Mqtt وبعض النصائح والحيل الأساسية لتصحيح الأخطاء. لذلك دعونا نبدأ ………..

الخطوة الأولى: تثبيت Mqtt Broker:

تثبيت Mqtt Broker
تثبيت Mqtt Broker
تثبيت Mqtt Broker
تثبيت Mqtt Broker
تثبيت Mqtt Broker
تثبيت Mqtt Broker
تثبيت Mqtt Broker
تثبيت Mqtt Broker

هناك عدة وسطاء Mqtt يمكنك تثبيتها. بعض المعروفة مذكورة أدناه. بعضها عبارة عن خدمات قائمة على السحابة.

  • HiveMQ
  • MosquittoCloud
  • MQTT
  • Adafruit.io

سنوضح لك كيفية تثبيت Mosquitto على نظام Linux (Ubuntu 18.04). للقيام بذلك ، قم أولاً بإضافة Mosquitto إلى قائمة مصادر ubuntu. بمجرد توفر Mosquitto في مستودعات Ubuntu ، ستتمكن من تثبيته باستخدام apt-get.

فقط افتح Terminal. لفتح Terminal ، انتقل إلى الزاوية السفلية اليسرى من Ubuntu Desktop ، وانقر فوق إظهار التطبيق (شبكة منقطة 3X3). ستفتح نافذة. هناك تبحث عن Terminal. انقر فوق المحطة ، يجب أن تكون قادرًا على رؤية نافذة مفتوحة كما تظهر في الصور التالية.

  • إظهار التطبيق (الصورة 1).
  • ابحث عن المحطة الطرفية (الصورة 2).
  • نافذة طرفية (الصورة 3).

أدخل الأوامر التالية بعد فتح Terminal

sudo apt-add-repository ppa: mosquitto-dev / mosquitto-ppa

sudo apt-get update

sudo apt-get install mosquitto. تثبيت البعوض sudo apt-get install

يمكنك أيضا تثبيت العميل Mqtt. سيكون الأمر لفعل ذلك

sudo apt-get install mosquitto-clients. تثبيت عملاء البعوض sudo apt-get install

بعض الصور للرجوع اليها

  • إضافة ppa (الصورة 4).
  • تحديث الريبو (الصورة 5).
  • تركيب Mosquitto (الصورة 6).
  • تركيب عميل Mosquitto (الصورة 7).

الخطوة الثانية: اختبار MQTT (البعوض)

اختبار MQTT (البعوض)
اختبار MQTT (البعوض)
اختبار MQTT (البعوض)
اختبار MQTT (البعوض)
اختبار MQTT (البعوض)
اختبار MQTT (البعوض)

لاختبار mqtt عبر ubuntu (نفس النظام أو نظام آخر) ، تحتاج إلى تثبيت عميل mqtt الذي تم تثبيته مسبقًا بواسطة الأمر sudo apt-get install mosquitto-clients. في حالة رغبتك في اختباره باستخدام هاتف محمول (android) ، يمكنك تثبيت تطبيق MyMqtt من متجر play.

مقتط يعمل على شيء يسمى المواضيع. لسهولة الفهم ، ضع في اعتبارك هذه الموضوعات كمجلد على محرك الأقراص الثابتة بجهاز الكمبيوتر. دعونا نتعامل مع هذا الكمبيوتر كخادم كمبيوتر (وهو في عالم mqtt هو وسيط Mqtt). في هذا الخادم ، دعونا نفكر في وجود مجلدات واحدة.

اسم المجلد: / Folder_one /

الآن دعونا نفكر في شخصين من نظامين مختلفين (كمبيوتر / كمبيوتر محمول) يصلان إلى هذا الخادم إما لقراءة الملفات أو لإرسال / تفريغ الملفات أو للقيام بكلتا العمليتين.

سنقوم بتسمية الشخصين / النظامين باسم System X ، System Y (هؤلاء هم عملاء Mqtt في Mqtt World).

الآن ، لنفترض أن System X يرسل / يفرغ بعض الملفات (اسم الملف: درجة الحرارة) في مجلد "/ Folder_one /" ، هذا في عالم mqtt يمكننا أن نطلق عليه هذا النشر (نرسل بعض الرسائل / الحمولة بدلاً من الملف).

الآن ، لنفترض أن System Y يرغب في الحصول على / قراءة هذا الملف أو أي ملف جديد أو التحديث في هذا المجلد ، فإن أول شيء يحتاجه هو معرفة اسم المجلد والمسار ، وهو في حالتنا "/ Folder_one /". الآن سيذهب إلى هذا المجلد ويقرأ / يستقبل هذا الملف (اسم الملف: درجة الحرارة). معرفة المسار / الموضوع والتحقق من التغييرات في الملف / الملفات الجديدة في عالم Mqtt هو الاشتراك في هذا الموضوع.

بالنظر إلى المثال أعلاه ،

يقوم النظام X بالنشر على "/ Folder_one" والنظام Y لديه اشتراكات في "/ Folder_one"

لاحظ أيضًا أن System X يمكنه أيضًا الاشتراك في "/ Folder_one" ويمكن للنظام Y أيضًا النشر إلى "/ Folder_one". مثل الحكمة ، حتى نظام الخادم (The Mqtt Broker) يمكنه نشر / الاشتراك في "/ Folder_one" عن طريق تثبيت عميل Mqtt عليه كما فعلنا حاليًا. الشيء الآخر الذي يجب تذكره هو نشر أو الاشتراك في موضوع ستحتاج إلى معرفة عنوان IP الخاص بـ Mqtt Broker.

أولاً سنختبرها من خلال عميل ubuntu المثبت على نفس نظام الوسيط. سنفتح نافذتين طرفية واحدة منهما ستنشر والأخرى ستشترك فيها. على سبيل المثال سوف نستخدم / Folder_one كموضوع. قبل النشر / الفرع الفرعي لموضوع ما ، ستحتاج إلى العثور على عنوان IP الخاص بـ ubuntu. للقيام بذلك ، انقر فوق الزاوية العلوية اليمنى من الشاشة ، وحدد إعداد wifi ، ومن هناك ستتمكن من العثور على عنوان IP لنظام ubuntu (حاليًا عنوان IP الخاص بالوسيط). تمت مشاركة لقطة الشاشة كمرجع (الصورة 8).

أو للعثور على عنوان IP الخاص بالوسيط ، يمكنك العثور على عنوان IP عن طريق تثبيت أدوات net باستخدام الأمر التالي في الجهاز

sudo apt تثبيت net-tools

تركيب أدوات الشبكة (الصورة 9). بعد ذلك فقط اكتب الأمر ipconfig وستحصل على قائمة بواجهة الشبكة مع عنوان mac و IP

sudo ipconfig

عنوان IP لنظامي هو 192.168.1.67 (الصورة 10)

للنشر

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m pub_to_folderone

هنا ، mosquitto_pub هو الأمر ، متبوعًا بعنصر معرف المعلمة -h وهو عنوان IP للمضيف / الوسيط (في حالتنا 192.168.1.67) ، متبوعًا بـ -t وهو اسم الموضوع للناشر (في حالتنا / Folder_one) ، متبوعًا بـ -m وهو ما يعني الرسالة / الحمولة التي سيتم إرسالها (في حالتنا هي pub_to_folderone).

للاشتراك

mosquitto_sub -h 192.168.1.67 -t / Folder_one

الرسالة التي أرسلها الناشر: pub_to_folderone

مثال للنشر

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m "hi test mqtt"

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m "mqtt working"

مثال للرد على الاشتراك في الموضوع

mosquitto_sub -h 192.168.1.67 -t / Folder_one

الرسالة التي أرسلها الناشر:

  • pub_to_folderone
  • مرحبا اختبار mqtt
  • mqtt العمل

Pub Sub في نافذتين طرفيتين منفصلتين جنبًا إلى جنب (الصورة 11)

اختبار Mqtt على android (my mqtt)

قم بتثبيت تطبيق mymqtt من متجر play على هاتف android الخاص بك (الصورة 12)

افتح التطبيق وانقر على الزاوية العلوية اليسرى (الصورة 13 ، الصورة 14).

انقر فوق الإعدادات وأدخل عنوان IP الخاص بالوسيط ، وسيكون المنفذ افتراضيًا هو 1883. حاليًا لا نستخدم وسيط mqtt المصادق عليه ، لذا سيكون اسم المستخدم وكلمة المرور فارغين. ما عليك سوى حفظه والنقر مرة أخرى على الزاوية العلوية اليسرى من التطبيق (<الإعدادات) ، سيتم إعادة فتح الدرج (الصورة 15).

في الجزء العلوي من الدرج ، سيُظهر لك عنوان IP الخاص بالوسيط والمنفذ المتصل به التطبيق (الصورة 16).

قم الآن بإضافة الموضوع الذي ترغب في الاشتراك فيه بالضغط على "اشتراك". هنا سنضيف الموضوع كـ / Folder_one (صورة 17 ، صورة 18).

بعد القيام بذلك ، من نظام ubuntu باستخدام Terminal ، سننشر الموضوع. عند النشر ، يجب أن يتم نشر الحمولة / الرسالة على تطبيق الجوال هذا. على سبيل المثال نشر الحمولة باسم "ARM -Automation Robotics & Mechatronics". الأمر كما ذكر سابقاً.

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m "ARM -Automation Robotics & Mechatronics"

النشر من نظام أوبونتو (الصورة 19).

تلقي رسالة منشورة على لوحة القيادة (الصورة 20).

الآن دعونا ننشر من هاتف android (My mqtt) والاشتراك في نظام ubuntu. في هذا المثال ، نستخدم الموضوع "/ mymqtt_to_pub".

للقيام بذلك أولاً ، افتح Terminal من نظام ubuntu واشترك في الموضوع "/ mymqtt_to_pub" باستخدام الأمر التالي (صورة 21)

mosquitto_sub -h 192.168.1.67 -t / mymqtt_to_pub

انتقل الآن إلى درج تطبيق mymqtt وانقر على "نشر". أضف موضوع النشر (في حالتنا هو “/ mymqtt_to_pub”) وأرسل رسالة مثل إرسال “hi Ubuntu” ، اضغط على زر الإرسال (صورة 22 ، صورة 23).

يجب أن تظهر الرسالة على النافذة الطرفية لنظام أوبونتو (الصورة 24).

لاحظ أن كلاً من نظام ubuntu وهاتف android يجب أن يكونا على نفس الشبكة أو يجب أن يتعرض المنفذ 1883 ويجب أن تعرف عنوان IP الخاص بجهاز التوجيه / البوابة حتى يعمل mqtt. إذا كنت ترغب في إضافة المصادقة إلى وسيط mqtt الخاص بك ، يمكنك القيام بذلك عن طريق اتباع رابط المدونة المذكور أدناه https://medium.com/@eranda/setting-up-authenticat… اتبع الخطوة الثانية من هذه المدونة. لقد قمنا بتمكين مصادقة الوسيط الخاص بنا وسنستخدم وسيطًا معتمدًا في مجالسنا.

الخطوة 3: العمل مع Armtronix Board & Mqtt

العمل مع ارمترونيكس بورد ومقطط
العمل مع ارمترونيكس بورد ومقطط
العمل مع ارمترونيكس بورد ومقطط
العمل مع ارمترونيكس بورد ومقطط
العمل مع ارمترونيكس بورد ومقطط
العمل مع ارمترونيكس بورد ومقطط

في الوقت الحالي لهذه التعليمات ، نحن نستخدم لوحة Wifi Single Dimmer Board التي تستخدم الترياك لتقطيع الموجة الجيبية وبالتالي يخفت اللمبة أو التحكم في سرعة المروحة. كما قمنا بتوصيله من خلال نوع المصادقة mqtt.

في البداية قمنا بتكوين اللوحة. خطوات تكوينه كما هو مذكور أدناه.

Power On the board ، سيبدأ في استضافة نقطة وصول Wifi.

باستخدام هاتف android أو كمبيوتر محمول ، اتصل بنقطة الوصول هذه (الصورة 25).

بمجرد الاتصال بنوع AP هذا 192.168.4.1 عن طريق فتح متصفح (chrome / Firefox) من نظام / هاتف متصل بنقطة الوصول. تأكد من أنك لا تستخدم اتصال البيانات الخاص بك (3G / 4G).

عند كتابة عنوان IP ، سيتم فتح صفحة ويب حيث يجب إدخال ما يلي (الصورة 26).

  • SSID: اسم Wifi AP.
  • كلمة المرور: كلمة مرور SSID.
  • وضع IoT Mqtt أو Http (اختر Mqtt).
  • Mqtt Broker IP (في حالتنا هو 192.168.1.67).
  • اسم المستخدم وكلمة المرور Mqtt ، حيث نستخدم نوع المصادقة ، استخدمنا Naren ، xxxx
  • موضوع النشر Mqtt: سيكون هذا هو الموضوع الذي سينشره المنتدى أيضًا ، لقد استخدمنا / testpub.
  • موضوع الاشتراك Mqtt: سيكون هذا هو الموضوع الذي يستمع إليه المجلس للحصول على أوامر لتشغيل التيرستورات ، وقد استخدمنا / testub.
  • اسم الجهاز: هو الاسم الذي تناديه إلى alexa لتشغيل اللوحة ، وقد استخدمنا corvi.

بعد إدخال التفاصيل ، اضغط على زر الإرسال ، وعند القيام بذلك ستحصل على شاشة كما هو موضح في الصورة 27 ، انتظر بعض الوقت حتى تتوقف اللوحة عن استضافة AP.

يرجى ملاحظة أننا قمنا بتوصيل لوحتنا عبر Uart بالشاشة التسلسلية لـ Arduino IDE. لذا على الجانب الأيسر سترى رسائل التصحيح التي تطبعها عبر Uart (هذا فقط للرجوع إليها).

بمجرد الانتهاء من ذلك ، يمكنك عرض شاشة التصحيح. ستكون معظم التفاصيل مرئية هناك. بعد ذلك ، سيتم الاتصال بالوسيط بنجاح على شاشة التصحيح (المسلسل) التي يمكنك رؤيتها.

متصل بـ MQTT broker مع المصادقة. مشترك في الموضوع 1.

بعد أن يطبع هذا ، يمكنك الآن البدء في إرسال أوامره عبر mqtt حول الموضوع الذي اشتركت فيه على سبيل المثال / testub /

لأوامر هذه اللوحة هي:

  • R13_ON: لتشغيل التيرستورات حتى 100٪.
  • R13_OFF: لإيقاف تشغيل التيرستورات إلى 0٪.
  • باهتة: xx: حيث ، xx هي قيمة التعتيم ويمكن أن تتنوع من 0 إلى 99.
  • إعادة التعيين: لمسح تكوين اللوحة.
  • الحالة: اطبع الحالة الباهتة للوحة في موضوع النشر الخاص باللوحة.

لإرسال هذا الأمر من نظام يستند إلى ubuntu حيث تم تثبيت عميل mqtt ، ما عليك سوى كتابته كما هو موضح أدناه. تمت إضافة معلمتين إضافيتين هنا بسبب المصادقة - أي -u وهو اسم المستخدم و -P هي كلمة المرور ، يرجى ملاحظة أن هذه هي حساسة لحالة الأحرف.

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testub -m R13_ON

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testub -m R13_OFF

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testub -m باهتة: 50

ملاحظة: 50 هي القيمة الباهتة

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testub -m R13_ON

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testub -m الحالة

للحصول على أحدث حالة ، تتم طباعة الحالة على موضوع النشر الخاص باللوحة والذي هو في حالتنا / testpub. تتم طباعة أي تغيير في الجهاز على اللوحة الخاصة بنا على موضوع النشر الخاص باللوحة. على سبيل المثال ، إذا مررنا Dimmer: 50 في الموضوع المشترك على اللوحة بدلاً من التنفيذ الفعلي لهذا ، فسوف ترسل اللوحة رسالة توضح المستوى الباهت في موضوع النشر. المثال موضح أدناه ،

للاشتراك من نظام ubuntu الخاص بك في موضوع النشر الخاص باللوحة ، أدخل الأمر التالي

mosquitto_sub -h 192.168.1.67 -u Naren -P xxxx -t / testpub

الرسالة التي نحصل عليها هي

باهتة

يوجد أدناه عدد قليل من الشاشات القصيرة من نفس النوع (صورة 28 ، صورة 29)

موصى به: