برای شروع تعریف MQTT سه کلمه در اولویت قرار دارد، سرعت بالا، کم حجم بودن و امنیت. سه دلیل قانع کننده برای استفاده از پروتکل MQTT جهت ارسال دیتا. در این آموزش به معرفی و تحلیل کتابخانه MQTT خواهیم پرداخت. در ادامه این آموزش با مرجع تخصصی کتابخانه آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
معرفی ساختارها
دستور اول: Pubsubclient
توسط این دستور یک کلایت به صورت ناشناخته ساخته میشود. دستور به صورت زیر فراخوانی میشود.
EthernetClient ethClient; PubSubClient client; void setup() { client.setClient(ethClient); client.setServer("broker.example.com",1883); // در این مرحله کلاینت برای استفاده تنظیم شده است }
دستور دوم: (Pubsubclient(client
توسط این دستور یک نمونه از کلاینت ساخته میشود. دستور به صورت زیر فراخوانی میشود.
EthernetClient ethClient; PubSubClient client(ethClient); void setup() { client.setServer("broker.example.com",1883); // کلاینت آماده استفاده است }
تنظیمات ([PubSubClient (server, port, [callback], client, [stream
- در قسمت سرور server آدرس سرور را وارد نمایید.
- در قسمت پورت Port را وارد نمایید.
- تابع Call back یا همان تابع بازگشتی، زمانیکه یک پیام جدید از Broker ارسال میشود، فراخوانی میشود.
- کلاینت به معتی یوزر و مشتری است و به طور معمول با Ethernet client به کار برده میشود.
- یک نمونه جهت دریافت پیام های دریافتی ایجاد میگردد.
معرفی توابع Function
در این بخش به معرفی توابع کاربردی در MQTT میپردایم:
(boolean connect (clientID
توسط این دستور ارتباط با مشتری client برقرار میگردد.
- Client ID: زمان اتصال به سرور استفاده میشود.
(boolean connect (clientID, willTopic, willQoS, willRetain, willMessage
توسط این دستور کلاینت با یک دستور مشخص متصل میگردد.
- client ID: از این پارامتر زمان اتصال به سرور استفاده میشود.
- willTopic: یک پیام MQTT نرمال همراه با تاپیک است. با فراخوانی این پارامتر client های دیگر را از قطع ارتباط client دیگر مطلع میکنید. به عبارت دیگر broker پیام را تا زمانیکه قطع ارتباط را تشخیص دهد، ذخیره میکند. چه کمکی به شما میکند؟ در هر لحظه اطلاعات مربوط به افت یک کلاینت برای شما ارسال میگردد.
- willQos: به عبارتی دیگر Qos مخفف quality of service است. به این معنی که یک توافق بین فرستنده و گیرنده جهت تضمین ارسال یک پیام ایجاد میگردد.
در این حالت پیام false معادل قطع ارتباط و Tue معادل ارتباط موفق میباشد.
(boolean connect (clientID, username, password
توسط این دستور یک نام کاربری و پسورد برای کلاینت در نظر گرفته شده و با آن متصل میشود.
()void disconnect
توسط این تابع ارتباط client قطع میگردد.
(int publish (topic, payload
توسط این تابع یک پیغام از جنس string یا همان رشته به یک تاپیک مشخص ارسال میگردد.
- Topic: تاپیکی که قرار است ارسال گردد.
- Payload: پیامی که قرار است منتشر گردد.
() int connected
اتصال کلاینت Client به سرور بررسی میشود.
(PubSubClient setServer (server, port
جزییات مربوط به سرور در این بخش تنظیم میگردد. مانند آدرس سرور و پورت
(PubSubClient setClient (client
جزییات مربوط به کلاینت را تنظیم میکند.
چنانچه در مراحل راه اندازی و انجام این کتابخانه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
سلام وقت بخیر من میخوام وقتی esp به هر دلیلی قطع شد و ارتباطش با بروکر قطع شد به وب سوکت اطلاع داده شه چطور باید پیاده سازی کنم
با سلام
این مورد توسط بنده تست نشده است. از دیگر کاربرانی که در این خصوص اطلاعاتی دارند، تقاضا میکنم در بحث شرکت کنند.
برای توضیحات کتابخانه که دقیقا به کلاس اصلی اشاره شده است ممنونم چون خارج از حاشیه و متن های اضافی است.
با سلام
کاربر گرامی سپاس از همراهی شما