سلام به همراهان عزیز… بعد از یک غیبت طولانی، این بار ESP32 با یک پروژه جدید و جذاب دیگه همراه با پروتکل MQTT برگشته که میدونم شاید چالش خیلی از شما عزیزان باشه.
ارتباط بین دو دیوایس با شبکه های متفاوت! آیا امکان پذیر است؟!
تا به امروز هر پروژه ای که در ارتباط با ماژول ESP32 انجام دادیم در شرایطی بوده که ماژول، Node-Red و بروکر در یک شبکه محلی بودند. اما خب همیشه این امکان برقرار نیست که بتوان در یک شبکه محلی کار کرد. گاهی ممکن است بخواهیم دیتا را از مکان دیگری مانیتور کنیم و یا از Node-Red بر بستر وب از یک سرویس ابری استفاده کنیم، در این صورت ماژول و Node-Red دارای دو شبکه و به طبع آن رنج IP متفاوت خواهند بود. به نظرتون برای حل این مشکل چه راهکاری میتونیم پیاده کنیم؟
همراه من باشید تا با هم این چالش رو برطرف کنیم.
-
معرفی کارکرد و وظیفه بروکر
- ارسال دیتا از ماژول ESP32 به Node-Red و بالعکس از دو شبکه متفاوت
-
آشنایی و توضیحات کد مورد نیاز جهت ارسال دیتا از ماژول ESP32
- آشنایی با محیط و تنظیمات بروکر MQTT
- تنظیمات Node-Red جهت دریافت دیتا توسط MQTT
-
تنظیمات Node-Red جهت ارسال دیتا توسط MQTT
از هر جای دنیا داده های خود را کنترل کنید!
خب پیشنهادی که من دارم اینکه بیایم از یک واسط استفاده کنیم. به این صورت که ابتدا دیتا از ماژول به اون واسط و سپس به Node-Red فرستاده بشه اونم به صورت ایمن. چرا که وقتی خارج از شبکه محلی کار می کنیم بحث امنیت هم مطرح میشه و اهمیت پیدا میکنه. مراحلی که در تصویر پایین مشاهده می کنید این مسیر رو به وضوح نشون داده:
معرفی کارکرد و وظیفه بروکر
بروکر مرکزی است که عملکرد دریافت و ارسال دیتا را از ناشر به مشترک انجام می دهد. پیام هایی را از ناشر دریافت می کند و پیام را رمزگشایی می کند. پس از رمزگشایی پیام، آن را با توجه به موضوعات برای مشتریان مشترک ارسال می کند.
پروتکل MQTT دستگاههای اینترنت اشیا با محدودیت منابع را قادر میسازد تا اطلاعاتی را درباره برخی موضوعات به سروری که به عنوان یک واسطه پیام MQTT عمل میکند، منتشر یا ارسال کنند. وظیفه بروکر این است که آن بخش از اطلاعات را فقط به مشتریانی که قبلاً در آن موضوع مشترک بوده اند، منتقل کند. وظیفه اصلی یک بروکر تضمین امنیت با بررسی مجوز مشترکین و ناشران است.
پروتکل MQTT به 4 مرحله مانند اتصال، احراز هویت، ارتباط و خاتمه تقسیم می شود. برای درک بهتر این موضوع حتما ابتدا به آموزش زیر سر بزنید.
اول از همه، یک اتصال TCP/IP از مشتری به بروکر با استفاده از یک پورت استاندارد یا آغاز میشود.