آموزش های کاربردیاینترنت اشیاء (IOT)بایگانی مطالب

پروتکل MQTT

در این مقاله همراه شما هستیم تا نگاه دقیق تری به پروتکل MQTT داشته باشیم .

پروتکل MQTT یکی از شناخته شده ترین پروتکل های موجود در دنیای IoT است. طراحی سبک و ساده افزونه ویژگی هایی هستند که باعث می شود MQTT برای تمام دستگاه های مختلف با قابلیت پردازش و همچنین ذخیره سازی کوچک و بزرگ مناسب باشد.

معرفی و آشنایی پروتکل MQTT

MQTT یک پروتکل استاندارد برمبنای publish/subscribe هست که به صورت پیام رد و بدل می­شود. ارتباط در این روش بر اساس پیام‌ها و تاپیک‌هایی است که به یک گره (دستگاه) ارسال می‌شود و دیگر گره‌ها (دستگاه‌ها) نیز می‌توانند با اشتراک‌گذاری آن پیام را دریافت کنند. به این صورت که یکی از کلاینت­ها یک موضوعی را publish می­کند و سایر کلاینت­ها می­توانند آن را subscribe کنند. این پروتکل بسیار شبیه به ارتباط کلاینت سرور هست و به سرور آن broker میگویند. در حقیقت سرور نقش مدیریت و جمع آوری اطلاعات را بر عهده دارد. این پروتکل روش تبادل اطلاعات مناسبی برای بستر اینترنت اشیاء (IOT) است.

پروتکل MQTT بسیار سبک و کم حجم است، همین دو ویژگی به همراه امنیت قابل توجه این پروتکل، باعث شده انتخاب مناسبی برای پروژه‌های اینترنت اشیاء باشد. MQTT دارای دو نوع ارتباط رمزنگاری شده که همان پورت ۸۸۸۳ و ارتباط رمزنگاری نشده یا همان پورت ۱۸۸۳ می‌باشد. پروتکل MQTT روی یک سرور نصب می‌شود و سپس از طریق MCU یا همان Main Control Unit نوعی ارتباط ماشین به ماشین برقرار می‌کند. این ارتباط دو طرفه است، از MCU به سرور و از سرور بهMCU  صورت می‌گیرد.

در این پرتکل واژه‌های اساسی زیر را داریم:

دلال(broker): وظیفه انتقال پیام میان انتشاردهنده و مشترک را بر عهده دارد.
انتشاردهنده(publisher): پیام دلخواهی را برای موضوع خاص، برای دلال می‌فرستد.
مشترک(subscriber): پیام‌های مرتبط با موضوع خاصی که از دلال اشتراک گرفته است، دریافت می‌کند.
موضوع(topic): موضوعی است که در دلال تعریف می‌شود و انتشاردهندگان می‌توانند برای آن پیام بنویسند و مشترکان می‌توانند از آن پیام دریافت کنند.

پروتکل MQTT

استفاده از پروتکل mqtt در node-red:

در سناریو زیر میخواهیم در صورت بالا رفتن دمای cpu کاربران، در esp32 پیام مناسب چاپ شود.
در این سناریو Raspberry Pi به عنوان دلال است که روی آن دلالی به نام  mosquitto نصب شده است.
همچنین کامپیوتر شخصی کاربر به عنوان publisher است که دمای cpu را در صورتی بالاتر از حد مجاز بشود برای موضوع topic/sesnsors/temp/ali_ramezanian_pc/می نویسد.

Esp32 در این سناریو به عنوان subscriber، برای موضوع topic/sesnsors/temp/ali_ramezanian_pc/ اشتراک دارد و پیام‌هایی که برای این موضوع فرستاده می‌شود را دریافت می‌کند.

راه‌اندازی

در broker کافی‌ است mosquitto را نصب و اجرا کنید.

$ sudo apt install mosquitto
$ sudo systemctl start mosquitto

mosquitto بر روی پورت ۱۸۸۳ گوش می‌دهد.

در publisher توسط node Red سناریو زیر را راه‌اندازی می‌کنیم:

پروتکل mqtt در node-red

حالا در esp32 با پیاده‌سازی مناسب، روی موضوع topic/sesnsors/temp/ali_ramezanian_pc/ مشترک می‌شویم.

این مقاله چطور بود ؟
+1
1
+1
0
+1
0
مشاهده بیشتر

محمد حسنی

علاقمند به حوزه IoT و الکترونیک. در حال حاضر به مدت یکسال است که در تیم سخت افزار سازان نام آور به تولید محتوا مشغول هستم.

نوشته های مشابه

دکمه بازگشت به بالا