- مدرس دوره : جواد مهدی نیا ( رزومه )
- تعداد ویدیوها : 19 ویدیو
- مدت زمان دوره : 2:41:00
- سطح دوره : مقدماتی
- وضعیت دوره : در حال برگزاری
- تاریخ آخرین بروزرسانی : 1404/07/08

پروتکل MQTT مقدماتی
توضیحات | اگر به دنبال ورود به دنیای اینترنت اشیا (IoT) هستید و میخواهید یاد بگیرید دستگاههای هوشمند چطور با هم ارتباط برقرار میکنند، پروتکل MQTT یکی از اصلیترین ابزارهایی است که باید بشناسید. طبق گزارشهای جهانی، تا سال ۲۰۲۵ بیش از ۷۵ میلیارد دستگاه به اینترنت متصل خواهند بود. مدیریت این حجم عظیم از دادهها و ارتباطات بدون استفاده از پروتکلهای سبک و بهینهای مثل MQTT تقریباً غیرممکن است. به همین دلیل یادگیری MQTT نه تنها یک مهارت، بلکه یک ضرورت برای آینده است. چرا MQTT مهم است؟ مزایای کلیدی آن: سبک و کممصرف: طراحی شده برای دستگاههای کمقدرت و شبکههای با پهنای باند محدود مدلPub/Sub: سادهسازی ارتباط بین چندین دستگاه بدون نیاز به اتصال مستقیم و پیچیده انعطافپذیر: پشتیبانی از QoS برای تضمین تحویل پیامها در شرایط مختلف شبکه مقیاسپذیر: قابل استفاده در پروژههای کوچک خانگی تا شبکههای عظیم صنعتی چندسکویی (Cross-platform): قابل اجرا روی انواع سیستمعاملها، اپلیکیشنهای موبایل و بردهای اینترنت اشیا امنیتپذیر: پشتیبانی از احراز هویت، TLS/SSL و رمزنگاری برای ایجاد ارتباط
در این دوره آموزشی، شما با تمامی مبانی و مفاهیم پروتکل MQTT آشنا میشوید و گامبهگام آن را به صورت کاملاً عملی پیادهسازی خواهید کرد. سرفصلهای دوره: معرفی پروتکل MQTT و کاربردهای آن در اینترنت اشیا مقایسه MQTT با پروتکلهای پرکاربرد HTTP و WebSocket درک کامل مدل انتشار/اشتراک (Publish/Subscribe) معرفی بروکرهای محلی (Local) و ابری (Cloud) و نصب Mosquitto Broker تست انتشار پیام (Publish) و اشتراک (Subscribe) از طریق خط فرمان ویندوز ساختار استاندارد Topic در MQTT و استفاده از Wildcardها کار با قابلیتهای مهم پروتکل مثل Retain Message،QoS و LWT اتصال به بروکرهای Cloud و ارسال/دریافت پیام از راه دور ساخت داشبورد و پنل شبیهسازی برای مدیریت دستگاههای IoT اتصال به بروکر Mosquitto از طریق موبایل و تنظیمات احراز هویت کاربران چرا این دوره ارزشمند است؟ محتوای آموزشی کاملاً کاربردی با مثالهای واقعی پوشش کامل مفاهیم تئوری + تمرینهای عملی یادگیری نحوه اتصال دستگاهها، مدیریت پیامها و شبیهسازی پروژههای اینترنت اشیا رفع اشکالات و خطایابی حین آموزش آمادهسازی برای ورود به پروژههای IoT واقعی سرمایهگذاری روی مهارتی که با رشد نمایی اینترنت اشیا، آیندهی کاری شما را میتواند تضمین کند. این دوره برای دانشجویان، برنامهنویسان، توسعه دهندگان و علاقهمندان به اینترنت اشیا طراحی شده است. پس از پایان دوره، شما به آسانی توانایی ایجاد، مدیریت و توسعه پروژههای مبتنی برMQTT را خواهید داشت. |
فهرستـــ ویدیوها
مدت زمان دوره 2:41:00با مشاهده آنلاین جلسات در سایت ، هزینه اینترنت شما به صورت نیم بها محاسبه خواهد شد.
معرفی دوره و آشنایی با کاربردهای پروتکل MQTT
در بخش اول از دوره ویدئویی آموزش پروتکل MQTT، ضمن معرفی کاربرد این پروتکل از ابتدا با مفهوم کلی پروتکل MQTT و دلیل اهمیت آن در دنیای اینترنت اشیا (IoT) آشنا میشویم. MQTT یک پروتکل سبک و پرکاربرد است که برای انتقال پیام بین دستگاهها طراحی شده و بهخصوص در محیطهایی که پهنای باند محدود یا ارتباط ناپایدار دارند، بسیار موثر عمل میکند. در MQTT با استفاده از الگوی انتشار/اشتراک (Publish/Subscribe) دستگاهها میتوانند همزمان هم فرستنده و هم گیرنده باشند. این ویژگی باعث میشود ارتباطات سریعتر، بهینهتر و هوشمندانهتر شکل بگیرند.
مقایسه پروتکل MQTT با دو پروتکل پر کاربرد Http و Websocket
در این قسمت یاد میگیریم که تفاوتهای اصلی پروتکل MQTT با دو پروتکل پرکاربرد دیگر یعنی HTTP و WebSocket در چیست. HTTP بیشتر برای انتقال داده در وب استفاده میشود اما به دلیل ماهیت یکطرفه و سربار بالا، برای ارتباطات مداوم دستگاههای IoT چندان مناسب نیست. WebSocket امکان ارتباط دوطرفهی بلادرنگ را فراهم میکند، اما همچنان مصرف منابع و پهنای باند بیشتری نسبت به MQTT دارد. در مقابل، MQTT با ساختار سبک و الگوی انتشار/اشتراک بهترین انتخاب برای سناریوهایی است که دستگاهها باید بهطور دائمی و با کمترین هزینهی ارتباطی به تبادل داده بپردازند. در ویدئو با مثالهای عملی نشان داده میشود که چرا MQTT در محیطهای محدود مثل سنسورها یا سیستمهای هوشمند، کارایی بالاتری نسبت به HTTP و WebSocket دارد.
آشنایی با مدل انتشار / اشتراک یا publish/subscribe
یکی از مهمترین ویژگیهای پروتکل MQTT استفاده از الگوی انتشار/اشتراک (Publish/Subscribe) است. در این مدل، دستگاهها به دو دسته اصلی تقسیم میشوند: ناشر (Publisher) که پیام را ارسال میکند و مشترک (Subscriber) که پیامها را دریافت میکند. ارتباط بین این دو نقش مستقیم نیست، بلکه از طریق یک بروکر (Broker) مدیریت میشود. این ساختار باعث میشود هر ناشر بدون نگرانی از تعداد یا نوع مشترکین پیام خود را منتشر کند و هر مشترک نیز فقط موضوعاتی را دریافت کند که به آنها علاقهمند است. نتیجهی این مدل، کاهش مصرف پهنای باند، مدیریت بهتر پیامها و ایجاد یک ارتباط انعطافپذیر میان دستگاهها در شبکههای IoT است.
معرفی بروکرهای local و cloud برای پروتکل MQTT
بروکر (Broker) قلب پروتکل MQTT است و وظیفه مدیریت پیامها میان ناشرها و مشترکها را بر عهده دارد. در این بخش با دو نوع اصلی بروکرها آشنا میشویم: بروکرهای Local و بروکرهای Cloud. بروکرهای Local معمولاً روی یک سیستم یا سرور محلی نصب میشوند و کنترل کامل، امنیت بالاتر و سرعت پاسخگویی بیشتری را در اختیار توسعهدهنده قرار میدهند. در مقابل، بروکرهای Cloud روی سرورهای ابری ارائه میشوند و بهخصوص برای پروژههای بزرگ یا توزیعشده بسیار کاربردی هستند، چون نیاز به سختافزار محلی ندارند و مقیاسپذیری بالاتری ارائه میدهند. در ویدئو مزایا و معایب هرکدام بررسی شده و مثالهایی از بروکرهای محبوب مثل Mosquitto در حالت Local و سرویسهای ابری مانند HiveMQ معرفی میشوند.
نصب نیازمندیها؛ استفاده از بروکر mosquitto و تست انتشار یا publish پیام
در این بخش وارد فاز عملی دوره میشویم و یاد میگیریم چگونه محیط مورد نیاز برای کار با پروتکل MQTT را آماده کنیم. در ابتدا ابزارها و نیازمندیهای ضروری مثل نصب Mosquitto Broker روی سیستم را انجام میدهیم. Mosquitto یکی از محبوبترین و سبکترین بروکرهای MQTT است که بهصورت رایگان ارائه میشود و برای تست، آموزش و حتی پروژههای کوچک تا متوسط گزینهای ایدهآل محسوب میشود. علاوه بر این، یک نرمافزار کمکی معرفی خواهد شد تا بتوانیم فرآیند انتشار (Publish) و اشتراک (Subscribe) پیامها را سادهتر انجام دهیم. پس از راهاندازی بروکر، نحوه اتصال کلاینتها را بررسی میکنیم و در نهایت یک پیام نمونه را منتشر کرده و در سمت دیگر آن را دریافت میکنیم. این تمرین عملی، اولین تجربه واقعی شما در تبادل داده با MQTT است و پایهای محکم برای ادامه مباحث پیشرفتهتر دوره ایجاد میکند.
ارسال پیام با استفاده از خط فرمان ویندوز
در این بخش یاد میگیریم چگونه با استفاده از خط فرمان ویندوز یا CMD و دستور mosquitto_pub یک پیام را روی یک موضوع مشخص منتشر کنیم. پس از نصب بروکرMosquitto، این ابزار در دسترس قرار میگیرد و به شما اجازه میدهد تنها با یک خط دستور، پیام دلخواه خود را به بروکر ارسال کنید. به عنوان مثال میتوانیم پیامی مثل Hello MQTT را روی موضوعی به نام test/topic منتشر کنیم و در سمت دیگر مشترکها (Subscribers) همان پیام را دریافت کنند. این تمرین ساده اولین گام عملی شما در درک مفهوم Publish در پروتکل MQTT است و پایهای برای کار با پیامهای پیچیدهتر در ادامه دوره خواهد بود.
ساختار استاندارد تاپیک یا topic در پروتکل MQTT
در پروتکل MQTT هر پیام روی یک مسیر مشخص به نام Topic منتشر میشود. تاپیکها در واقع مثل آدرس عمل میکنند و مشخص میسازند که هر پیام به کدام گروه از مشترکها برسد. ساختار استاندارد تاپیک به صورت سلسلهمراتبی طراحی شده و با علامت / از هم جدا میشوند. برای مثال، تاپیک home/kitchen/temperature نشان میدهد که پیام مربوط به دمای آشپزخانه است. این ساختار انعطافپذیر به ما اجازه میدهد دادهها را دستهبندی کنیم و دسترسی دقیقتری به اطلاعات داشته باشیم. در ویدئو با مثالهای واقعی، نحوه تعریف و استفاده از تاپیکهای استاندارد را تمرین خواهیم کرد.
مشترک شدن یا subscribe به topic در پروتکل mqtt
یکی از مهمترین مفاهیم پروتکل MQTT، توانایی دستگاهها برای مشترک شدن (Subscribe) به تاپیکهای مشخص است. با اشتراک در یک تاپیک، دستگاه میتواند تمام پیامهایی را که ناشران (Publishers) روی آن موضوع ارسال میکنند، دریافت کند. این مکانیزم باعث میشود دادهها بهصورت بلادرنگ و هدفمند بین دستگاهها منتقل شوند. در ویدئو یاد میگیریم چگونه با استفاده از دستور mosquitto_sub در خط فرمان یا کلاینتهای نرمافزاری، یک مشترک ایجاد کنیم و پیامهای مربوط به یک تاپیک خاص را دریافت کنیم. این تمرین عملی، درک واقعی شما از مدل انتشار/اشتراک MQTT را کامل میکند و پایهای برای بخشهای بعدی دوره فراهم میکند.
آشنایی با wildcard ها در ساختار topic
در پروتکلMQTT، برای انعطاف بیشتر در دریافت پیامها، از Wildcardها استفاده میشود که به مشترکها (Subscribers) اجازه میدهند چندین تاپیک مشابه را با یک دستور دریافت کنند، بدون اینکه لازم باشد تکتک تاپیکها را مشخص کنند. دو نوع Wildcard اصلی وجود دارد: علامت + (Plus) که جایگزین یک سطح از سلسلهمراتب تاپیک میشود و علامت# (Hash) که جایگزین تمام سطوح بعدی تاپیک است و امکان دریافت همه پیامهای زیرمجموعه یک تاپیک را فراهم میکند. در این بخش، مفهوم و کاربرد هر نوع Wildcard توضیح داده شده و درک پایهای برای استفاده عملی در بخش بعد فراهم میشود.
استفاده عملی از wildcard ها در حالت subscribe
در این بخش به صورت عملی یاد میگیریم که چگونه با استفاده از Wildcardها، پیامها را روی چندین تاپیک بهطور همزمان دریافت کنیم. برای مثال، با دستور mosquitto_sub -t "home/+/temperature" میتوان پیامهای دمای همه اتاقها را دریافت کرد و با دستور mosquitto_sub -t "home/#" میتوان تمام پیامهای مربوط به خانه از جمله دما، روشنایی و سایر دادهها را همزمان دریافت کرد. این تمرین عملی به شما کمک میکند کاربرد واقعی Wildcardها در مدیریت دادهها و کاهش حجم دستورات را تجربه کنید و در پروژههای IoT خود بهرهبرداری کنید.
آشنایی با retain message در پروتکل MQTT و تست آن
در پروتکل MQTT، ویژگی Retain Message به ناشر (Publisher) این امکان را میدهد که آخرین پیام یک تاپیک را روی بروکر ذخیره کند، تا هر مشترکی (Subscriber) حتی بعد از اتصال، بتواند آن پیام را فوراً دریافت کند. این قابلیت برای اطلاعاتی که همواره باید در دسترس باشند، مثل وضعیت یک سنسور یا پیامهای مهم سیستم، بسیار کاربردی است. در این بخش، ابتدا مفهوم Retain Message توضیح داده میشود و سپس به صورت عملی با استفاده از دستور mosquitto_pub -r یک پیام Retain منتشر میکنیم و با ایجاد یک مشترک جدید، مشاهده میکنیم که پیام ذخیره شده بلافاصله دریافت میشود. این تمرین عملی درک واقعی شما از نحوه ذخیره و دسترسی به آخرین پیامها را در پروژههای IoT تقویت میکند و پایهای برای استفاده پیشرفتهتر از MQTT فراهم میسازد.
تضمین انتقال پیام ها یا سطح QoS در پروتکل MQTT
در پروتکلMQTT، قابلیت Quality of Service (QoS) به شما اجازه میدهد سطح اطمینان از تحویل پیامها را مشخص کنید. این پروتکل سه سطح QoS اصلی ارائه میدهد: QoS 0 که پیام حداکثر یک بار ارسال میشود و تضمینی برای دریافت آن وجود ندارد؛ QoS 1 که پیام حداقل یک بار ارسال میشود و اطمینان نسبی از دریافت آن فراهم است، و QoS 2 که پیام دقیقاً یک بار و بدون تکرار ارسال میشود و بالاترین سطح اطمینان را ارائه میکند. با استفاده از این سطوح میتوان بسته به نیاز پروژه، تعادلی بین سرعت، مصرف پهنای باند و اطمینان از تحویل پیامها ایجاد کرد. در ویدئو، با مثالهای عملی نشان داده میشود چگونه میتوان هنگام انتشار پیام، سطح QoS را تعیین کرد و تاثیر آن را بر دریافت پیامها توسط مشترکها مشاهده نمود. این ویژگی به ویژه در پروژههای صنعتی و IoT که اطمینان از دریافت داده حیاتی است، اهمیت فراوان دارد.
پیام نهایی یا LWT در پروتکل MQTT
ویژگی LWT در پروتکل MQTT به شما امکان میدهد تا پیامی از پیش تعریف شده را در صورت قطع غیرمنتظره اتصال یک کلاینت به بروکر ارسال کنید. این پیام نهایی به سایر مشترکها اطلاع میدهد که یک دستگاه به طور ناگهانی از شبکه خارج شده است، بدون اینکه بهطور مستقیم قطع ارتباط را گزارش دهد. استفاده از LWT در سیستمهای حساس و IoT که نیاز به نظارت لحظهای بر وضعیت دستگاهها دارند، بسیار مهم است. در این بخش، ابتدا مفهوم LWT توضیح داده میشود و سپس به صورت عملی با تنظیم یک پیام نهایی برای کلاینت، مشاهده میکنیم که در صورت قطع ارتباط ناگهانی، پیام به مشترکها ارسال میشود. این تمرین، درک شما از مدیریت وضعیت دستگاهها و امنیت دادهها در MQTT را تقویت میکند و کاربرد واقعی LWT را در پروژههای IoT نشان میدهد.
استفاده از پروتکل MQTT در Postman
در این بخش یاد میگیریم چگونه میتوان ازPostman برای تعامل با پروتکل MQTT استفاده کرد. Postman که بیشتر بهعنوان ابزاری برای تست APIهای HTTP شناخته میشود، از نسخههای جدید خود امکان اتصال به بروکرهای MQTT، انتشار (Publish) و اشتراک (Subscribe) پیامها را نیز فراهم کرده است. با استفاده از این ابزار، میتوان بدون نیاز به نصب کلاینتهای اضافی، پیامها را به آسانی منتشر و دریافت کرد و فرآیندهای آزمایشی را سریعتر و قابل ردیابیتر انجام داد. در ویدئو نحوه اتصال به یک بروکرMQTT، تنظیم تاپیکها، ارسال پیام و مشاهده پاسخها به صورت عملی نشان داده میشود. این روش برای توسعهدهندگان و تستکنندگان بسیار کاربردی است، زیرا امکان بررسی سریع جریان دادهها و شبیهسازی سناریوهای مختلف را بدون نیاز به برنامهنویسی فراهم میکند.
معرفی یک بروکر ابری یا Cloud و انجام تنظیمات آن
در این بخش با نحوه استفاده از یک بروکر ابری (Cloud Broker) آشنا میشویم و یاد میگیریم چگونه تنظیمات لازم را برای اتصال کلاینتها انجام دهیم. بروکرهای ابری، امکانات مقیاسپذیری، دسترسی از هر مکان و مدیریت سادهتر دادهها را ارائه میکنند و برای پروژههای توزیعشده و IoT بسیار کاربردی هستند. در ویدئو، ابتدا نحوه ایجاد حساب کاربری و تنظیمات پایه مثل تاپیکها، مجوزها و اطلاعات اتصال (Host, Port, Username, Password) آموزش داده میشود. سپس کلاینتها را به بروکر ابری متصل کرده و فرآیند Publish و Subscribe پیامها را به صورت عملی اجرا میکنیم. این تمرین به شما کمک میکند تا با استفاده از سرویسهای ابری، دادهها را بهصورت امن، سریع و قابل دسترس مدیریت کنید و پروژههای IoT خود را بدون محدودیت سختافزاری توسعه دهید.
ارتباط با بروکر Cloud با استفاده از خط فرمان ویندوز و ارسال/دریافت پیام از راه دور
در این بخش یاد میگیریم چگونه با استفاده از خط فرمان ویندوز (Command Prompt) به یک بروکر ابری (Cloud Broker) متصل شویم و پیامها را به صورت Publish و Subscribe با استفاده از TLS ارسال و دریافت کنیم. ابتدا باید از پورت امن بروکر (معمولاً 8883) استفاده کرده و فایل گواهینامه PEM (CA Certificate) ارائه شده توسط بروکر را در کلاینت خود مشخص کنیم. سپس با پارامترهای --cafile path/to/certificate.pem و پورت امن، میتوانیم یک اتصال رمزگذاری شده و ایمن برقرار کنیم تا دادهها در مسیر انتقال محافظت شوند. در ویدئو، مراحل اتصال امن، ارسال و دریافت پیامها با استفاده از TLS به صورت عملی و با مثالهای واقعی نشان داده میشود تا کاربرد پروتکل MQTT در فضای ابری با امنیت بالا برای شما ملموس شود.
معرفی و نصب اپلیکیشن ارتباط با بروکر MQTT جهت مدیریت اینترنت اشیا توسط تلفن همراه
در این ویدئو با یک اپلیکیشن موبایل کاربردی برای ارتباط با بروکرهای MQTT و مدیریت دستگاههای IoT آشنا میشویم. این اپلیکیشنها به شما امکان میدهند بدون نیاز به کامپیوتر، پیامها را منتشر (Publish) و دریافت (Subscribe) کنید، تاپیکها را مدیریت کنید و جریان دادهها را در شبکههای IoT بهصورت لحظهای مشاهده نمایید. برخی از اپلیکیشنهای محبوب وجود دارند که برای سیستمهای اندروید و iOS در دسترس میباشند. در ویدئو، نحوه دانلود، نصب و پیکربندی اپلیکیشن برای اتصال به یک بروکر محلی یا ابری آموزش داده میشود.
ساخت داشبورد و انجام تنظیمات آن جهت اتصال به بروکر cloud
در این بخش یاد میگیریم چگونه با استفاده از یک اپلیکیشن موبایل مخصوصIoT، یک داشبورد مدیریتی بسازیم و آن را به بروکر ابری (Cloud Broker) متصل کنیم. داشبوردها امکان مشاهده وضعیت لحظهای سنسورها، ارسال و دریافت پیامها و مدیریت تاپیکها را فراهم میکنند و به توسعهدهندگان اجازه میدهند بدون نیاز به محیط پیچیده، جریان دادهها را کنترل کنند. در ویدئو، مراحل ایجاد داشبورد، تعریف ویجتها، اتصال به بروکر با مشخصات Host، Port، Username و Password و انجام تنظیمات پایه به صورت عملی نشان داده میشود. این تمرین عملی کمک میکند تا بتوانید پروژههای IoT خود را از طریق موبایل کنترل کرده و دادهها را به صورت سازمانیافته و بلادرنگ مشاهده کنید.
ساخت پنل جهت شبیهسازی و مدیریت اینترنت اشیا با استفاده از بروکر cloud
در این بخش یاد میگیریم چگونه با استفاده از یک اپلیکیشن موبایل مخصوصIoT، یک محیط کامل برای شبیهسازی و مدیریت دستگاههای اینترنت اشیا ایجاد کنیم و آن را به بروکر ابری (Cloud Broker) متصل نماییم. این پنل موبایل امکان ارسال و دریافت پیامها، مشاهده وضعیت لحظهای سنسورها و کنترل دستگاهها از راه دور را فراهم میکند. علاوه بر این، میتوان دکمهها، ورودیها (Input) و لاگها را تعریف کرد تا نحوه تعامل با دستگاهها و جریان دادهها به صورت شبیهسازی شده قابل مشاهده باشد. در ویدئو، مراحل ایجاد پنل در اپلیکیشن، تعریف تاپیکها، قرار دادن دکمهها و ورودیها، مشاهده لاگها و کنترل LEDها با دکمههای رادیویی به صورت عملی نشان داده میشود تا کاربرد واقعی مدیریت IoT و جریان دادهها در فضای ابری برای شما ملموس و قابل اجرا باشد.
نظرات کاربران در رابطه با این دوره