تحلیل کتابخانه

تحلیل و بررسی کتابخانه PubSubClient.h

arduino-client-for-mqtt-PubSubClient-h-digispark
نوشته شده توسط پریسا پوربلورچیان

برای شروع تعریف 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

جزییات مربوط به کلاینت را تنظیم می‌کند.

 

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

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۴ دیدگاه

  • سلام وقت بخیر من میخوام وقتی esp به هر دلیلی قطع شد و ارتباطش با بروکر قطع شد به وب سوکت اطلاع داده شه چطور باید پیاده سازی کنم

    • با سلام
      این مورد توسط بنده تست نشده است. از دیگر کاربرانی که در این خصوص اطلاعاتی دارند، تقاضا میکنم در بحث شرکت کنند.

  • برای توضیحات کتابخانه که دقیقا به کلاس اصلی اشاره شده است ممنونم چون خارج از حاشیه و متن های اضافی است.