فهرست مطالب:

MQTT در تخته های Armtronix: 3 مرحله
MQTT در تخته های Armtronix: 3 مرحله

تصویری: MQTT در تخته های Armtronix: 3 مرحله

تصویری: MQTT در تخته های Armtronix: 3 مرحله
تصویری: TryHackMe - Broker room walkthrough (MQTT, ActiveMQ, Eavesdropping) -- هک کردن باکس بروکر 2024, جولای
Anonim
MQTT در تخته های Armtronix
MQTT در تخته های Armtronix

در این دستورالعمل می خواهیم در ابتدا به شما نشان دهیم که چگونه می توانید از سیستم مبتنی بر لینوکس (دبیان یا اوبونتو) استفاده کرده و Mosquitto (کارگزار Mqtt) را روی آن نصب کنید ، همچنین نحوه استفاده از سرویس گیرنده Mqtt در تلفن (Android)/ مبتنی بر لینوکس را به شما نشان می دهیم. سیستم ، ارسال و دریافت پیام از طریق Mqtt. پس از آشنایی با این موضوع ، می خواهیم به شما نشان دهیم که چگونه می توانید برد ما را با این کارگزار نصب شده Mqtt پیکربندی و وصل کنید. همچنین می خواهم به شما نشان دهم که چگونه می توانید احراز هویت را به کارگزار Mqtt و نکات و ترفندهای اساسی برای اشکال زدایی اضافه کنید. پس بیایید شروع کنیم ………..

مرحله 1: نصب بروکر Mqtt:

نصب بروکر Mqtt
نصب بروکر Mqtt
نصب بروکر Mqtt
نصب بروکر Mqtt
نصب بروکر Mqtt
نصب بروکر Mqtt
نصب بروکر Mqtt
نصب بروکر Mqtt

چندین کارگزار Mqtt وجود دارد که می توانید آنها را نصب کنید. برخی از موارد شناخته شده به شرح زیر است. برخی از آنها خدمات مبتنی بر ابر هستند.

  • HiveMQ
  • MosquittoCloud
  • MQTT
  • Adafruit.io

ما نحوه نصب Mosquitto را بر روی سیستم مبتنی بر لینوکس (اوبونتو 18.04) به شما نشان خواهیم داد. برای انجام این کار ابتدا Mosquitto را به لیست منبع اوبونتو اضافه کنید. هنگامی که Mosquitto در مخازن اوبونتو موجود است ، می توانید آن را با apt-get نصب کنید.

فقط یک ترمینال باز کنید برای باز کردن یک ترمینال ، به گوشه سمت چپ پایین صفحه دسکتاپ اوبونتو بروید ، بر روی Show application (Doted 3X3 grid) کلیک کنید. پنجره ای باز می شود در آنجا Terminal را جستجو می کنید. روی ترمینال کلیک کنید تا بتوانید پنجره ای را باز کنید که در تصاویر زیر نشان داده شده است.

  • نمایش برنامه (تصویر 1).
  • جستجوی ترمینال (تصویر 2).
  • پنجره ترمینال (تصویر 3).

بعد از باز کردن ترمینال دستورات زیر را وارد کنید

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

sudo apt-get update

sudo apt-get mosquitto را نصب کنید

همچنین می توانید مشتری Mqtt را نصب کنید. دستور انجام این کار خواهد بود

sudo apt-get mosquitto-client را نصب کنید

چند تصویر برای مرجع شما

  • افزودن ppa (تصویر 4).
  • به روز رسانی repo (تصویر 5).
  • نصب Mosquitto (تصویر 6).
  • نصب Mosquitto Client (تصویر 7).

مرحله 2: آزمایش MQTT (Mosquitto)

آزمایش MQTT (Mosquitto)
آزمایش MQTT (Mosquitto)
آزمایش MQTT (Mosquitto)
آزمایش MQTT (Mosquitto)
آزمایش MQTT (Mosquitto)
آزمایش MQTT (Mosquitto)

برای آزمایش mqtt از طریق ubuntu (همان سیستم یا سیستم دیگر) باید مشتری mqtt را نصب کنید که قبلاً توسط فرمان sudo apt-get install mosquitto-client نصب شده بود. در صورتی که می خواهید آن را با استفاده از تلفن همراه (Android) آزمایش کنید ، می توانید برنامه MyMqtt را از فروشگاه بازی نصب کنید.

Mqtt روی چیزی به نام Topics کار می کند. برای سهولت درک ، این موضوعات را به عنوان پوشه ای روی هارد رایانه در نظر بگیرید. اجازه دهید این رایانه را به عنوان یک سرور کامپیوتر (که در جهان mqtt یک کارگزار Mqtt است) در نظر بگیرید. در این سرور اجازه دهید یک پوشه را در نظر بگیریم.

نام پوشه: /Folder_one /

حالا اجازه دهید دو نفر را از دو سیستم مختلف (رایانه/لپ تاپ) که به این سرور دسترسی دارند یا برای خواندن فایل ها یا ارسال/تخلیه فایل ها یا انجام هر دو عملیات در نظر بگیرند.

ما از دو نفر/سیستم به عنوان System X ، System Y نام می بریم (اینها مشتریان Mqtt in Mqtt World هستند).

حال ، فرض کنید System X برخی از فایل ها (نام فایل: درجه حرارت) را به پوشه "/Folder_one/" ارسال و ارسال می کند ، در دنیای mqtt می توانیم این نشر را نام ببریم (به جای فایل ، پیام/بار ارسال می کنیم).

حالا ، فرض کنید System Y مایل است این فایل یا هر فایل جدید را دریافت کند/بخواند یا در این پوشه به روز شود ، اولین چیزی که باید بدانید این است که نام و مسیر پوشه را بدانید ، که در مورد ما "/Folder_one/" است. بنابراین اکنون به این پوشه رفته و آن فایل را خوانده/دریافت می کند (نام فایل: درجه حرارت). دانستن مسیر/موضوع و بررسی تغییرات در فایل/فایلهای جدید در جهان Mqtt اشتراک آن موضوع است.

با توجه به مثال بالا ،

سیستم X در "/Folder_one" و سیستم Y در "/Folder_one" مشترک می شود

همچنین توجه داشته باشید که سیستم X همچنین می تواند در "/Folder_one" مشترک شود و سیستم Y نیز می تواند در "/Folder_one" منتشر کند. درست مانند سیستم سرور (کارگزار Mqtt) می توانید با نصب سرویس گیرنده Mqtt بر روی آن ، مانند/در حال حاضر "/Folder_one" را منتشر یا مشترک شوید. نکته دیگری که باید به خاطر داشته باشید این است که موضوعی را منتشر یا مشترک شوید که باید آدرس IP کارگزار Mqtt را بدانید.

ابتدا آن را از طریق سرویس گیرنده ubuntu که روی همان سیستم کارگزار نصب شده است ، آزمایش می کنیم. ما دو پنجره ترمینال را باز می کنیم که یکی از آنها منتشر می شود و دیگری در آن مشترک می شود. برای مثال ما از /Folder_one به عنوان موضوع استفاده خواهیم کرد. قبل از pub/sub به یک موضوع ، باید آدرس IP ubuntu را پیدا کنید. برای انجام این کار ، روی گوشه سمت راست بالای صفحه کلیک کنید ، تنظیمات wifi را انتخاب کنید ، از آنجا می توانید آدرس IP سیستم اوبونتو (در حال حاضر IP کارگزار) را پیدا کنید. Screenshort برای مرجع به اشتراک گذاشته شد (تصویر 8).

یا برای یافتن آدرس IP کارگزار می توانید آدرس IP را با نصب ابزارهای net با استفاده از دستور زیر در ترمینال پیدا کنید

sudo apt install net-tools

نصب ابزارهای شبکه (تصویر 9). پس از آن فقط دستور ipconfig را تایپ کنید ، لیستی از رابط شبکه با مک و آدرس 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 "سلام تست 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 در اندروید (mqtt من)

برنامه mymqtt را از فروشگاه بازی روی تلفن اندرویدی خود نصب کنید (تصویر 12)

برنامه را باز کنید و روی گوشه سمت چپ بالای صفحه کلیک کنید (تصویر 13 ، تصویر 14).

روی تنظیمات کلیک کنید و آدرس IP کارگزار را وارد کنید ، پورت به طور پیش فرض 1883 خواهد بود. در حال حاضر ما از کارگزار معتبر mqtt استفاده نمی کنیم بنابراین نام کاربری و رمز عبور خالی خواهد بود. کافی است آن را ذخیره کرده و مجدداً روی گوشه سمت چپ بالای برنامه کلیک کنید (<تنظیمات) کشو دوباره باز می شود (تصویر 15).

در بالای کشو آدرس IP کارگزار و پورتی که برنامه به آن متصل است را به شما نشان می دهد (تصویر 16).

اکنون موضوعی را که می خواهید مشترک شوید با کلیک بر روی اشتراک اضافه کنید. در اینجا ما موضوع را به عنوان /Folder_one (تصویر 17 ، تصویر 18) اضافه می کنیم.

پس از انجام این کار ، از سیستم اوبونتو با استفاده از ترمینال موضوع را منتشر می کنیم. هنگام انتشار باید بار/پیام منتشر شده در این برنامه تلفن همراه را دریافت کنید. به عنوان مثال انتشار بار به عنوان "ARM -Automation Robotics & Mechatronics". فرمان همانطور که قبلاً ذکر شد است.

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

انتشار از سیستم اوبونتو (تصویر 19).

پیام منتشر شده را در داشبورد دریافت کرد (تصویر 20).

حالا اجازه دهید از تلفن اندروید (My mqtt) منتشر کنیم و در سیستم اوبونتو مشترک شویم. برای این مثال ما از موضوع "/mymqtt_to_pub" استفاده می کنیم.

برای انجام این کار ابتدا یک ترمینال از سیستم اوبونتو خود باز کرده و با استفاده از دستور زیر در مبحث "/mymqtt_to_pub" مشترک شوید (تصویر 21)

mosquitto_sub -h 192.168.1.67 -t /mymqtt_to_pub

حالا به کشوی برنامه mymqtt بروید و روی انتشار کلیک کنید. موضوع نشر را اضافه کنید (در مورد ما "/mymqtt_to_pub" است) و پیامی ارسال کنید مانند "سلام اوبونتو" ، دکمه ارسال را فشار دهید (تصویر 22 ، تصویر 23).

پیام باید در پنجره ترمینال سیستم اوبونتو ظاهر شود (تصویر 24).

توجه داشته باشید که سیستم اوبونتو و تلفن اندروید باید در یک شبکه باشند یا پورت 1883 باید در معرض دید قرار گیرد و باید آدرس IP روتر/دروازه خود را برای کارکردن mqtt بدانید. اگر می خواهید احراز هویت را به کارگزار mqtt خود اضافه کنید ، می توانید با دنبال کردن پیوند وبلاگ زیر https://medium.com/@eranda/setting-up-authenticat… مرحله دوم این وبلاگ را دنبال کنید. ما احراز هویت کارگزار خود را فعال کرده ایم و از واسطه معتبر برای هیئت مدیره خود استفاده خواهیم کرد.

مرحله 3: کار با Armtronix Board & Mqtt

کار با Armtronix Board & Mqtt
کار با Armtronix Board & Mqtt
کار با Armtronix Board & Mqtt
کار با Armtronix Board & Mqtt
کار با Armtronix Board & Mqtt
کار با Armtronix Board & Mqtt

در حال حاضر برای این دستورالعمل ، ما از صفحه Wifi Single Dimmer خود استفاده می کنیم که از Triac برای خرد کردن موج سینوسی و به نوبه خود لامپ را کم می کند یا سرعت فن را کنترل می کند. همچنین ما آن را از طریق نوع احراز هویت mqtt متصل کرده ایم.

در ابتدا ما برد را پیکربندی کرده ایم. مراحل پیکربندی آن به شرح زیر است.

Power on board ، میزبانی Wifi Access Point را آغاز می کند.

با استفاده از تلفن Android یا لپ تاپ به این AP متصل شوید (تصویر 25).

پس از اتصال به این AP نوع 192.168.4.1 را با باز کردن مرورگر (chrome/firefox) از سیستم متصل به AP/تلفن وارد کنید. مطمئن شوید که از اتصال داده خود (3G/4G) استفاده نمی کنید.

هنگام تایپ IP ، یک صفحه وب باز می شود که باید موارد زیر را وارد کنید (تصویر 26).

  • SSID: نام AP Wifi.
  • رمز عبور: رمز SSID.
  • حالت اینترنت اشیا Mqtt یا Http (Mqtt را انتخاب کنید).
  • IP کارگزار Mqtt (در مورد ما 192.168.1.67 است).
  • نام کاربری و رمز عبور Mqtt ، همانطور که از نوع احراز هویت استفاده می کنیم ، از Naren ، xxxx استفاده کرده ایم
  • موضوع انتشار Mqtt: این موضوعی است که هیئت مدیره نیز منتشر می کند ، ما از /testpub استفاده کرده ایم.
  • موضوع اشتراک مشترک Mqtt: این موضوع در مورد موضوعی است که هیئت مدیره برای فرمان هایی که باعث ایجاد triac می شود گوش می دهد ، ما از /testsub استفاده کرده ایم.
  • نام دستگاه: این نامی است که شما برای فعال کردن صفحه به الکسا می گویید ، ما از corvi استفاده کرده ایم.

پس از وارد کردن جزئیات ، دکمه ارسال را فشار دهید ، با انجام این کار صفحه ای مانند تصویر 27 نشان داده می شود ، مدتی منتظر بمانید تا میزبانی برنامه AP را متوقف کند.

لطفاً توجه داشته باشید که ما برد خود را از طریق Uart به مانیتور سریال Arduino IDE وصل کرده ایم. بنابراین در سمت چپ پیامهای اشکال زدایی را که از طریق Uart چاپ می کند مشاهده خواهید کرد (این فقط برای مرجع شماست).

پس از انجام این کار می توانید صفحه اشکال زدایی را مشاهده کنید. بیشتر جزئیات در آنجا قابل مشاهده خواهد بود. پس از این ، با موفقیت به بروکر در صفحه اشکال زدایی (سریال) متصل می شود که می توانید این را ببینید.

متصل به کارگزار MQTT با احراز هویت. مشترک موضوع 1.

پس از چاپ این ، می توانید دستورات ارسال آن را از طریق mqtt در مورد موضوعی که در آن مشترک شده است شروع کنید.

دستورات مربوط به این برد عبارتند از:

  • R13_ON: برای روشن کردن تریاک به 100.
  • R13_OFF: برای خاموش کردن تریاک به 0.
  • Dimmer: xx: Where ، xx مقدار کم نور است و می تواند از 0 تا 99 متغیر باشد.
  • بازنشانی: برای پاک کردن پیکربندی برد.
  • وضعیت: وضعیت تیره کننده صفحه را در موضوع انتشار تابلو چاپ کنید.

برای ارسال این فرمان از یک سیستم مبتنی بر اوبونتو که سرویس گیرنده mqtt در آن نصب شده است ، کافی است آن را مانند تصویر زیر تایپ کنید. دو پارامتر اضافی در اینجا به دلیل احراز هویت اضافه می شوند -یعنی -u که نام کاربری است و -P رمز عبور است ، لطفاً توجه داشته باشید که اینها به حروف کوچک و بزرگ حساس هستند.

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

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

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m Dimmer: 50

توجه: 50 مقدار کم نورتر است

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

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m وضعیت

برای آخرین وضعیت ، وضعیت در موضوع انتشار تابلو که در مورد ما is /testpub چاپ می شود. در صفحه ما هرگونه تغییر در دستگاه در موضوع انتشار تخته چاپ می شود. به عنوان مثال ، اگر Dimmer: 50 را در مورد موضوع مشترک روی تخته عبور دهیم تا در مورد اجرای فیزیکی آن ، هیئت مدیره پیامی مبنی بر سطح کم نور در موضوع انتشار ارسال می کند. مثال در زیر نشان داده شده است ،

برای عضویت در سیستم اوبونتو خود در موضوع انتشار هیئت مدیره دستور زیر را وارد کنید

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

پیامی که دریافت می کنیم این است

DimmerIS50

چند شورت صفحه مشابه در زیر وجود دارد (تصویر 28 ، تصویر 29)

توصیه شده: