پیشرفت فناوری ما را قادر ساخته تا در دنیای امروزی عملکرد تجهیزات خانه هوشمند را با یک ضربه روی گوشی هوشمند کنترل کنیم، وضعیت زمین کشاورزی شامل دما، رطوبت، شدت نور، میزان مواد مغذی خاک و غیره را از خانه مشاهده کنیم و به طور کلی، زندگی راحتتر و بهرهوری بیشتری در مقایسه با گذشته داشته باشیم. این امکانات که شاید چند سال پیش برای بسیاری از افراد عجیب و دست نیافتنی به نظر میرسیدند، توسط پروتکلهای مختلفی در حوزه اینترنت اشیا امکانپذیر شده که یکی از آنها پروتکل MQTT است.
این پروتکل ویژگیهای مفید متعددی را ارائه میکند و به همین دلیل، به یکی از کاربردیترین پروتکلهای مورد استفاده در حوزه اینترنت اشیا تبدیل شده است. برای آشنایی با اهمیت و کاربرد پروتکل MQTT در اینترنت اشیا در این مقاله شرکت خانه هوشمند فریتز را همراهی کنید.
فهرست مطالب
پروتکل MQTT چیست؟
پیادهسازی اینترنت اشیا به کمک پروتکل یا استانداردهایی امکانپذیر میشود که تبادل داده بین تجهیزات مختلف را امکانپذیر میکنند. پروتکل ام کیو تی تی یکی از فناوریهای کاربردی است که همین وظیفه را انجام میدهد. این پروتکل به طور ویژه برای به کارگیری در شرایطی طراحی شده که محدودیت پهنای باند و تاخیر زیادی وجود دارد. پروتکل MQTT بر پایه مدل انتشار و به اشتراکگذاری کار میکند که در آن تجهیزات میتوانند پیامهای مشخصی را در رابطه با یک عنوان خاص منتشر کنند، در حالی که سایر تجهیزات میتوانند برای دریافت پیامها در آن تاپیک مشترک شوند.
برای مثال، زمانی که سنسور دما دادههای مربوط به تغییرات دمای هوا را تحت عنوان «دمای هوا» منتشر میکند، ترموستات هوشمند میتواند برای دسترسی به این دادهها در تاپیک دمای هوا مشترک شود. مدل انتشار-اشتراک ساختاری را ایجاد میکند که در آن یک منتشر کننده میتواند به سادگی هر پیامی را به چند مشترک ارسال کند.
معماری پروتکل MQTT
پروتکل MQTT بر پایه مدل انتشار-اشتراک (Publish-Subscribe) پیادهسازی میشود که ناشرین (Publishers)، مشترکها (Subscribers) و کارگزار یا بروکر (Broker) اجزای اصلی این ساختار را تشکیل میدهند.
- Publisher: ناشر دستگاهها یا برنامهای است که پیامهای حاوی دادهها را با عناوین مشخص و بدون اطلاع از گیرندگان آن (مشترکها) ارسال میکند.
- Subscribers: مشترک به دستگاه یا برنامهای گفته میشود که درخواست دریافت پیامهای ارسال شده از سوی ناشرین تحت یک عنوان مشخص را با مشترک شدن در آن تاپیک اعلام میکند.
- Broker: کارگزار یا بروکر به سیستم واسطهای گفته میشود که پیام را از ناشر دریافت میکند و بر اساس عنوان به Subscriber تحویل میدهد. این سیستم، وظیفه مدیریت ارتباطها، اشتراکها، درخواستها و مسیریابی پیامها را بر عهده دارد. بروکر از فرآیندی با عنوان جداسازی (Decoupling) استفاده میکند تا پیامها بدون برقراری ارتباط مستقیم بین Publisher و Subscriber توزیع شوند. فرآیند جداسازی فرستندهها را از گیرندهها تفکیک میکند.
خرید دستگیره هوشمند یا دستگیره دیجیتال با بهترین کیفیت
کاربرد پروتکل MQTT در اینترنت اشیا
ام کیو تی تی یکی از پروتکلهایی است که امروزه به طور گسترده برای پیادهسازی زیرساختهای مبتنی بر فناوری اینترنت اشیا مورد استفاده قرار میگیرد. مثالهای به کارگیری پروتکل MQTT در اینترنت اشیا عبارتند:
- اندازهگیری هوشمند: پروتکل MQTT امکان انتقال دادههای کنتورهای هوشمند را به طور پایدار و با استفاده از کمترین پهنای باند فراهم میکند. این ویژگی ما را قادر میسازد تا فرایند خواندن کنتورها را به طور خودکار و دقیق انجام دهیم.
- انتقال داده توسط سنسورها: سنسورهای وایرلس اغلب تجهیزات کم مصرفی هستند که برق مصرفی آنها از طریق باتری تامین میشود و پهنای باند اندکی را مصرف میکنند؛ بنابراین پروتکل MQTT گزینه مناسبی برای انتقال داده توسط سنسورهای اینترنت اشیا محسوب میشود.
- سیستم صدور صورتحساب: به کارگیری پروتکل MQTT در سیستم صدور صورتحساب به ما کمک میکند تا از ارسال پیامهای تکراری یا گم شده که به صدور صورتحساب تکراری یا از دست رفتن صورتحساب منجر میشود، جلوگیری کنیم.
- انتقال دادههای مربوط به وضعیت عملکرد تجهیزات: پروتکل MQTT امکان انتقال دادههای مربوط به وضعیت عملکرد و سلامت تجهیزات مختلف مانند توربینهای بادی را به مرکز کنترل فراهم میکند. این دادهها برای بررسی وضعیت عملکرد تجهیزات و انجام دادن سرویس تعمیر و نگهداری پیشگیرانه مورد استفاده قرار میگیرند.
کاربرد MQTT تنها به موارد عنوان شده در این مقاله محدود نمیشود و این پروتکل کاربردهای بیشتری در زمینه نظارت و کنترل تجهیزات صنعتی، تلهمتری و سنجش از راه دور، ردیابی دارایی، مدیریت سیستم حمل و نقل شهری، سیستم مدیریت انرژی و شبکههای هوشمند، حوزه سلامت و حتی پیادهسازی شهرهای هوشمند دارد. به علاوه، پروتکل خانه هوشمند MQTT قابلیت تبادل داده بین سنسور هوشمند و سایر تجهیزات ساختمان را دارد.
MQTT چگونه کار میکند؟
پروتکل MQTT به چهار مرحله اصلی تقسیم میشود: اتصال، احراز هویت، ارتباط، و خاتمه. در مرحله اتصال، گیرنده اتصال TCP/IP را با استفاده از پورت استاندارد یا پورت سفارشی برقرار میکند. از آنجا که اتصال ممکن است به نشست قدیمی ادامه یابد، شناسه (هویت) گیرنده مورد استفاده قرار میگیرد تا آن تشخیص داده شود.
پورتهای استاندارد برای ارتباط غیر رمزگذاری شده 1883 و برای ارتباط رمزگذاری شده 8883 هستند، که با استفاده از SSL/TLS امکانپذیر است. در طول مرحله SSL/TLS، گیرنده گواهینامه و اعتبار سرور را تعیین و تایید میکند. از طرف دیگر، گیرنده میتواند گواهینامه را به رابط ارائه دهد تا احراز هویت انجام شود.
پروتکل MQTT به خاطر سبک بودن خود شناخته میشود. تمام پیامهای آن دارای کد کوچکی هستند. هر پیام از یک قسمت ثابت (2 بایت) و یک قسمت متغیر اختیاری تشکیل شده است. حداکثر بار مفید پیام به 256 مگابایت اطلاعات محدود میشود و سطح کیفیت خدمات (QoS) مشخص کننده ارتباط را محدود میکند. در طول مرحله ارتباط، گیرنده میتواند عملیات انتشار، اشتراک، لغو اشتراک و پینگ را انجام دهد. این عملیات شامل ارسال دادهها به موضوعات تعریف شده توسط ناشر، مشترک شدن در موضوعات، لغو اشتراک از موضوعات، و ارسال یک پیغام PINGREQ به رابط برای حفظ اتصال است.
وقتی که یک ناشر یا مشترک میخواهد نشست MQTT را خاتمه دهد، یک پیام DISCONNECT را به رابط ارسال میکند و اتصال را قطع میکند. این عمل به گیرنده این امکان را میدهد تا با ارائه هویت خود به راحتی مجدداً به اتصال وصل شود. در صورتی که قطع ارتباط ناگهانی برای ناشر اتفاق بیافتد، رابط ممکن است آخرین پیام را به مشترکین ارسال کند تا راهنماییهای لازم را ارائه دهد.
مزایا و معایب MQTT
امروزه به طور گستردهای از پروتکل اینترنت اشیا MQTT استفاده میشود و این پروتکل به دلیل مزیتهای مختلفی که ارائه میدهد، مورد توجه قرار گرفته است. مهمترین مزیتهای استاندارد MQTT عبارتند از:
- استفاده بهینه از پهنای باند: پروتکل MQTT طوری طراحی شده که پیامها را به طور مختصر و کوتاه ارسال میکند. از آنجایی که پیامهای کم حجم به سادگی منتقل میشوند، این ویژگی مزیت بزرگی برای این پروتکل محسوب میشود. پروتکل MQTT بر پایه سیستم باینری کار میکند که حجم پیامهای ارسال شده را بهینهسازی میکند و در نتیجه میتواند دادهها را با استفاده از کمترین میزان پهنای باند قابل دسترس ارسال کند؛ بنابراین این پروتکل برای پیادهسازی در شبکههایی که ظرفیت محدودی دارند، مناسب است.
- قابلیت اطمینان: پروتکل MQTT امکان تنظیم سطح اطمینان برای تحویل پیامهای ارسال شده به تجهیزات دریافت کننده پیام را دارد. این پروتکل از سطوح مختلف MQTT Quality of Service یا به اختصار QoS پشتیبانی میکند و این ویژگی کاربران را قادر میسازد تا با توجه به اهمیت تحویل پیام به گیرنده از سطوح مختلف QoS استفاده کند. کیو او اس 0 دریافت شدن پیام توسط گیرنده را بررسی نمیکند، در حالی که کیو او اس 2 اطمینان حاصل میکند که مشترک دقیقاً یکبار پیام را دریافت کرده است. ام کیو تی تی میتواند در شبکههای ناپایدار نیز کار کند و پس از آنکه ارتباط یکی از تجهیزات از حالت آفلاین به حالت متصل به شبکه تغییر کند، پیامهایی که در آن مشترک شده و در زمان قطع ارتباط قادر به دریافت آن نبوده را مجدداً ارسال کند.
- امکان افزودن پیادهسازی لایههای امنیتی: پروتکل ام کیو تی تی انعطافپذیری نسبتاً خوبی از نظر امنیت دارد و توسعهدهندگان را قادر میسازد تا با هدف افزایش امنیت از لایههای امنیتی بیشتری مانند احراز هویت با استفاده از نام کاربری و کلمه عبور، رمزگذاری با استفاده از تکنیک رمزگذاری TLS و احراز اعتبار گواهی کلاینت (CCA) استفاده کنند. به علاوه، میتوانیم از فهرست کنترل دسترسی و سایر اقدامات برای حفاظت از شبکه تبادل داده مبتنی بر پروتکل MQTT در برابر دسترسی غیر مجاز استفاده کنیم.
- مقیاسپذیری: پروتکل پیامرسانی MQTT از تغییر مقیاس عمودی (Vertical Scalability) و افقی (Horizontal Scalability) پشتیبانی میکند که امکان گسترش پروژهای که قبلاً بر پایه فناوری اینترنت اشیا پیادهسازی شده را با افزودن تجهیزات جدید یا بروزرسانی تجهیزات و بروکر فراهم میکند.
- یکپارچهسازی آسان: سادگی ساختار پروتکل MQTT و دسترسی به کتابخانههای مختلف برای زبانهای برنامهنویسی و پلتفرمهای مختلف، توسعهدهندگان اینترنت اشیا را قادر میسازد تا آن را به سادگی در سیستمها و پلتفرمهای مختلف ترکیب کنند.
- استقبال گسترده از MQTT: پروتکل MQTT کاربرد گستردهای در حوزه اینترنت دارد و شرکتهای مختلفی در زمینه توسعه راهکارها و تجهیزات مبتنی بر این پروتکل فعالیت دارند. گستردگی استفاده از این پروتکل موجب میشود تا دسترسی به اجزای مورد نیاز برای راهاندازی شبکه اینترنت اشیا بر پایه ام کیو تی تی نیز به سادگی امکانپذیر باشد.
با وجود مزیتهای متعددی که MQTT برای استفاده در شبکههای ناپایدار و با پهنای باند محدود ارائه میکند، این پروتکل کاملاً بدون نقص نیست. نقاط ضعف یا معایبی که احتمالاً در زمان استفاده از پروتکل MQTT با آنها مواجه خواهیم شد عبارتند از:
- سرعت نسبتاً کم و تاخیر بالا: پروتکل MQTT چرخههای انتقال داده کندتری در مقایسه با پروتکل CoAP دارد که کاهش سرعت و افزایش زمان تاخیر را موجب میشود؛ بنابراین در کاربردهایی که سرعت انتقال داده اهمیت زیادی دارد، استفاده از پروتکل ام کیو تی تی میتواند ما را با محدودیتهای متعددی مواجه سازد.
- امنیت: امنیت MQTT از طریق پروتکل TCP/IP تامین میشود که تنها ویژگیهای امنیتی اساسی شامل رمزگذاری و احراز هویت را ارائه میکند. عدم دسترسی به ویژگیهای پیشرفته امنیتی در حالت پیشفرض موجب میشود تا MQTT در برابر حملات سایبری و نفوذ هکرها آسیبپذیر باشد.
- عدم برقراری ارتباط دو طرفه: ام کیو تی تی اساساً برای برقراری ارتباط دو طرفه بین تجهیزات طراحی نشده است. این پروتکل از مدل Publish/Subscribe استفاده میکند که در آن تجهیزات تنها پیامها را به بروکر (سرور) ارسال میکنند و نمیتوانند پیامها را به طور مستقیم از سایر تجهیزات دریافت کنند. عدم امکان برقراری ارتباط دو طرفه میتواند در زمان استفاده از پروتکل MQTT در اینترنت اشیا، محدودیتها و چالشهایی را به همراه داشته باشد. باید توجه داشته باشیم که بروزرسانی MQTT 5 امکان پیادهسازی الگوی درخواست/پاسخ را برای برطرف ساختن مشکل ارتباط دو طرفه فراهم میکند.
بیشتر بخوانید: سیستم برق هوشمند BMS چیست؟
- وابستگی به سرور متمرکز: در ساختار پروتکل MQTT، بروکر یا همان سرور نقش مهمی را در مدیریت ارتباط بین کلاینتها بازی میکند. به همین دلیل، خرابی سرور میتواند از کار افتادن شبکه اینترنت اشیا منجر شود. به همین دلیل توصیه میشود تا از سرور پشتیبان برای افزایش قابلیت اطمینان شبکه در زمان خرابی سرور اصلی استفاده کنیم.
- محدودیت در حجم انتقال داده: پروتکل MQTT برای انتقال حجم زیادی از دادهها طراحی نشده است. این پروتکل حداکثر حجم بستههای قابل ارسال 256 مگابایتی را دارد که برای بسیاری از کاربردهای اینترنت اشیا کافی است اما اگر تعداد تجهیزات یا حجم تبادل داده به طور قابل توجهی افزایش یابد، احتمال مواجهه با مشکل انباشتگی دادهها و تاخیر در انتقال اطلاعات وجود دارد.
پرسشهای متداول
مهمترین مزیت پروتکل MQTT چیست؟
ام کیو تی تی مزیتهای متعددی مانند قابلیت اطمینان، مقیاسپذیری و امنیت دارد اما استفاده بهینه از پهنای باند و ارسال پیامهای کم حجم، مهمترین نقطه قوت پروتکل MQTT محسوب میشود.
بیشتر بخوانید: سیستم bms در ساختمان چیست؟
جمعبندی
در دنیای امروزی که فناوری اینترنت اشیا به بخش جداییناپذیری از زندگی ما تبدیل شده، پروتکل های هوشمندسازی و به ویژه MQTT نقش مهمی را در فراهم ساختن امکان تبادل داده بین تجهیزات مختلف بازی میکنند. پروتکل MQTT از نظر پایداری، مقیاسپذیری، مصرف پهنای باند و امنیت میتواند نیاز بسیاری از پروژههای اینترنت اشیا را برآورده سازد.
با وجود مزیتهای این پروتکل برای استفاده در شبکههای ناپایدار یا شبکههایی که پهنای باند محدودی دارند، معایب و محدودیتهایی شامل سرعت نسبتاً کم و تاخیر قابل توجه یا محدودیت حجم دادهها نیز وجود دارند که باید در زمان انتخاب پروتکل مناسب در نظر گرفته شوند.
مطالب مشابه:
- انواع پروتکل های IoT؛ معرفی 18 پروتکل اینترنت اشیا
- اینترنت اشیا صنعتی (IIOT) چیست و در چه صنایعی کاربرد دارد؟
- اینترنت اشیا چیست؟ همه آنچه که باید درباره IoT بدانید!
- کاربرد اینترنت اشیا در پزشکی + مزایا، معایب و چالشها
- مزایا و کاربرد اینترنت اشیا در خانه هوشمند
- پروتکل Z Wave چیست و چه کاربردی در هوشمند سازی دارد؟
- پروتکل لورا LoRa چیست و چه کاربردی دارد؟
- پروتکل BACnet چیست و چه کاربردی در هوشمند سازی دارد؟
- پروتکل S-BUS چیست و چه کاربردی در هوشمند سازی دارد؟
- پروتکل SIP چیست، چگونه کار میکند و چه مزایا و معایبی دارد؟