با توجه به اهمیت کاهش هزینه ی دیوایس های IoT و در عین حال آنلاین بودن همیشگی آنها استفاده از پروتکل های رایج جهت تبادل داده در شبکه جهانی اینترنت همیشه چالش ها و مشکلاتی را برای تولید کنندگان محصولات IoT در بر داشته است؛ از این رو پروتکل MQTT که امکان تبادل دیتا در شبکه جهانی اینترنت را با کمترین حجم دیتا و همچنین سرعت بسیار پایین اینترنت را نیز فراهم می کند ابداع شد.
شرکت آزمون الکترونیک خزر در تولید محصولات الکترونیکی خود جهت تبادل داده از این تکنولوژی به روز استفاده می کند.
استفاده از این پروتکل نیازمند در اختیار داشتن Broker مخصوص و همچنین پیاده سازی پروتکل MQTT بر روی دیوایس های IoT است که در ادامه به توضیح آن خواهیم پرداخت.
MQTT Brokerچیست؟
MQTT Broker در واقع یک نرم افزار است که بر روی کامپیوتری که همیشه به اینترنت متصل است (سرور) نصب می گردد و وظیفه ی آن دریافت پیام ها از Publisher ها و قرار دادن آن در Topic های ایجاد شده جهت دریافت توسط Subscriber ها می باشد. با مشاهده تصویر زیر به سادگی با نحوه ی عملکرد سیستم آشنا خواهید شد.
اجزای اصلی مورد نیاز جهت پیاده سازی سرویس MQTT
MQTT Broker که بر روی یک سرور نصب و Topic های مورد نظر در آن ایجاد می گردد.
Publisher ها که پیام هایی را برای دریافت توسط Subscriber ها به Broker ارسال می کنند.
Subscriber ها که پیام های ارسالی توسط Publisher ها را توسط Broker دریافت می کنند.
همانگونه که در تصویر مشخص است Publisher یک پلوپز است که اطلاعاتی که باید کاربر یا همان Subscriber دریافت کند را به Topic خود در Broker ارسال می نماید، کاربر هم به راحتی می تواند با خواندن Topic فوق اطلاعات ارسالی توسط پلوپز را دریافت نماید. البته سیستم فوق پیچیدگی ها و قابلیت های بسیار زیادی دارد، ولی به نظر می رسد این مقدار از توضیحات جهت آشنایی کلی عملکرد سیستم کافی باشد. فقط به یک نکته ی کوچک اشاره می کنیم که در مواردی نیاز خواهد بود کاربر پیامی را برای پلوپز ارسال نماید ،برای مثال تنظیم برنامه ی پخت جدید بر روی پلوپز، در این حالت کاربر نقش Publisher و پلوپز نقش Subscriber را خواهد داشت.
یک مثال ساده برای درک بهتر عملکرد سیستم
همه ی ما معمولا در کانال های تلگرامی عضو هستیم و همه روزه اخبار و اطلاعات زیادی را در کانال های تلگرامی دنبال می کنیم. تلگرام یک مثال عینی و ساده برای درک عملکرد سرویس MQTT می باشد. لطفا به موارد زیر دقت فرمایید:
نرم افزار های سمت سرور تلگرام را همان MQTT Broker در نظر بگیرید.
کانال تلگرام را Topic ایجاد شده در Broker در نظر بگیرید.
ادمین کانال را که هر روزه مطالب جدید در کانال ارسال می کند را Publisher در نظر بگیرید.
خودتان را هم که کانال را دنبال و مطالب آن را مطالعه می نمایید Subscriber در نظر بگیرید.
عملکرد سرویس MQTT به زبان ساده به همین سادگی است؛ ادمین کانال اطلاعاتی را جهت دریافت توسط شما به کانال تلگرامی خود (Topic) ارسال می نماید و شما با دنبال کردن کانال مطالب ارسالی از ادمین کانال را مشاهده می کنید.
گروه های تلگرامی مثال دیگری برای ارتباط دو طرفه در سرویس MQTT به زبان ساده می باشد؛ تمام اعضاء گروه (Topic) می توانند پیام برای یکدیگر ارسال و ارتباط دو طرفه با یکدیگر برقرار نمایند، بر خلاف کانال که فقط ادمین می تواند پیام ارسال کند و ارتباط یک طرفه است.