پروتکل MQTT چیست و چگونه با OpenHab از آن استفاده کنیم

بات نت های اینترنت اشیا
محافظت در برابر بات نت های اینترنت اشیا
نوامبر 16, 2020
دستگاه خانه هوشمند برای صاحبان حیوانات خانگی
دستگاه خانه هوشمند برای صاحبان حیوانات خانگی
نوامبر 16, 2020
پروتکل MQTT

در این مقاله هر آنچه به چگونگی این که پروتکل MQTT چیست و چگونه با OpenHab از آن استفاده کنیم را که پروتکل MQTT و نحوه ادغام پیام های MQTT در openHAB بدانید، خواهید آموخت. MQTT و openHAB ترکیبی عالی برای شروع ادغام سنسورهای اتوماسیون خانگی DIY در پروژه خانه هوشمند شما هستند.

MQTT چیست؟

MQTT پروتکلی است که توسط IBM ایجاد شده است و مخفف Message Queue Telemetry Transport است و اساساً بر ارتباطات M2M (ماشین به ماشین) متمرکز می باشد.

MQTT یک استاندارد OASIS و ISO (ISO / IEC 20922) پروتکل شبکه است که پیام ها را بین دستگاه ها منتقل می کند. پروتکل معمولاً روی TCP / IP اجرا می شود. با این حال هر پروتکل شبکه ای که اتصالات دو جهته مرتب شده، بدون ضرر را فراهم کند و می تواند از MQTT پشتیبانی کند. این برای اتصالات با مکان های از راه دور طراحی شده است که “small code footprint” مورد نیاز است یا پهنای باند شبکه محدود است.

پروتکل MQTT دو نوع موجودیت شبکه را تعریف می کند: یک واسطه پیام و تعدادی مشتری. بروکر MQTT سروری است که کلیه پیام های مشتری را دریافت می کند و سپس پیام را به مشتری مقصد مناسب هدایت می کند. اطلاعات در یک سلسله مراتب از موضوعات سازمان یافته اند. هنگامی که ناشری داده جدیدی برای توزیع دارد، پیام کنترل را با داده ها به کارگزار متصل ارسال می کند. سپس کارگزار اطلاعات را به هر مشتری که در آن موضوع مشترک شده اند توزیع می کند. ناشر نیازی به داشتن هیچ داده ای در مورد تعداد یا مکان مشترکان ندارد و مشترکین نیز به نوبه خود نیازی به پیکربندی هیچ داده ای درباره ناشران ندارند.

اگر کارگزار پیامی در مورد موضوعی دریافت کند که هیچ مشترک فعلی برای آن وجود ندارد کارگزار پیام را کنار می گذارد مگر اینکه ناشر پیام را به عنوان پیام حفظ شده تعیین نماید. پیام حفظ شده یک پیام معمولی پروتکل MQTT است که پرچم حفظ شده روی درست تنظیم شده است. کارگزار آخرین پیام حفظ شده و QoS مربوطه را برای موضوع انتخاب شده ذخیره می کند. هر مشتری مشترک الگوی موضوعی که با موضوع پیام حفظ شده مطابقت دارد، بلافاصله پس از اشتراک پیام حفظ شده را دریافت می کند. کارگزار فقط یک پیام حفظ شده را در هر موضوع ذخیره می کند. این به مشترکان جدید موضوع امکان می دهد بیشترین مقدار فعلی را به جای انتظار برای به روزرسانی بعدی از ناشر دریافت کنند.

شاید از خود بپرسید این چه ارتباطی با اتوماسیون خانگی دارد!

اگرچه MQTT برای تعدادی از برنامه ها استفاده شده است، اما به عنوان پروتکل ارتباطی دستگاه های اینترنت اشیا به شدت مورد استفاده قرار می گیرد.

چرا چنین است؟

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

دلایلی که باعث می شود MQTT پروتکل مناسبی برای کار با میکروکنترلرهایی باشد که از قدرت بالایی برخوردار نیستند(مانند Arduino ):

  • منابع بسیار کمی مصرف می کند.
  • این در بسیاری از سیستم عامل های مختلف موجود است.

 

معماری MQTT

MQTT از Star Topology با یک گره مرکزی به نام Broker و مشتریانی که به آن متصل هستند استفاده می کند.

کارگزار وظیفه ارسال و دریافت پیام از مشتریان را بر عهده دارد. با توجه به سبک بودن پروتکل لازم به ذکر است که MQTT می تواند با پیام های رمزگذاری شده کار کند که بسیار چشمگیر است.

چگونه این امر در اتوماسیون خانگی اعمال می شود؟

هنگامی که شما ارتباطات MQTT را در سنسورهای خود پیاده سازی می کنید، در اصل دو عنصر وجود خواهد داشت:

MQTT Broker : این به مشتریان اجازه می دهد تا پیام های مربوط به موضوعات را منتشر یا مصرف کنند.

حسگرها یا محرک ها : مشتری می تواند حسگر یا محرک باشد.

حسگرها : آن ها پیام هایی را در موضوعات مختلف منتشر می کنند تا مشترکان بتوانند آن ها را بخوانند و نمونه آن سنسور دما است.

محرک : آن ها در موضوعی مشترک هستند که منتظر دستور اجرای عملی هستند، مثلاً با روشن کردن چراغ.

مشتریان می توانند بین آن ها ارتباط برقرار کنند اما هنوز هم برای توزیع پیام به کارگزار احتیاج دارند.

مباحث MQTT

ارتباطات موجود در پروتکل MQTT بر اساس موضوعات است. یک سنسور می تواند پیام های مربوط به یک موضوع را منتشر کند و همه مشترکان آن موضوع آن پیام را دریافت می کنند.

بگذارید بگوییم که ما یک حسگر گاز در آشپزخانه داریم که وقتی سطح بنزین از یک آستانه مشخص عبور می کند، سیگنال رادیویی ارسال می کند. این سنسور پیامی را با عنوان Home / Floor1 / Kitchen / Gas_Sensor با شماره 1 منتشر می کند که نشان می دهد نشت گاز شناسایی شده است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *