مانیتورینگ تجهیزات اتوماسیون صنعتی دلتا بوسیله پروتکل MQTT
آموزش اینترنت اشیاء در اتوماسیون صنعتی
با توجه به پیشرفت روز افزون تکنولوژی در دنیای امروز و گسترهی استفاده از اینترنت در سراسر جهان و امکان اتصال تمامی دستگاهها اعم از صنعتی و خانگی به اینترنت، IoT (Internet of Thing)، اینترنت اشیاء نقش بسزایی در اتوماسیون صنعتی و زندگی ما ایفا میکند.
IoT در حقیقت به معنای صحبت کردن اشیاء متصل به اینترنت با یکدیگر بدون نیاز به حضور انسان میباشد، که این امر سبب کارایی بیشتر و بهبود خدمات در زمینههای مختلف شده است. این تکنولوژی، در پروتکلها و اشکال مختلفی از جمله CoAP، AMQP،LoRaWAN وMQTT مورد استفاده قرار میگیرد.
MQTT چیست ؟
پروتکل MQTT ( Message Queuing Telemetry Transport) یک روش پیامرسانی بر مبنای انتشار و اشتراک (Publish/ Subscribe) پیامها در بستر اینترنت بین دو دستگاه میباشد، که در این روش از حداقل پهنای باند استفاده میشود. MQTT با سرعت چشمگیری در حال رشد و پیشرفت در همهی صنایع از جمله اتوماسیون صنعتی میباشد. اما دلیل این محبوبیت چیست؟
دارا بودن ویژگی های منحصر بفردی که متناسب با نیازهای خاص سیستمهای اینترنت اشیا است، سبب شده تا از پروتکل MQTT به عنوان یکی از بهترین پروتکلهای اینترنت اشیا در صنعت نام برده شود. برخی از ویژگی های کلیدی این پروتکل عبارتند از:
- پهنای باند کم:
دستگاههای IoT اغلب از نظر قدرت پردازش، حافظه و مصرف انرژی دارای محدودیت هستند. پهنای باند و حجم کم مورد نیاز برای انتقال اطلاعات از طریق MQTT، این پروتکل را برای دستگاهها ایدهآل میکند.
- تضمین تحویل پیام :
از آنجاییکه امکان اختلال در اینترنت خصوصا در جغرافیای ما امری غیر قابل اجنتاب است، شبکههای اینترنت اشیا میتوانند با تأخیر بالا یا اتصالات ناپایدار مواجه شوند. پشتیبانی MQTT از سطوح مختلف QoS (Quality of Service) به معنای “کیفیت خدمات” که به استانداردهایی که فرستنده پیام برای رسیدن پیام به مقصد در نظر دارد اشاره میکند، تحویل پیام را حتی در شرایط چالش برانگیز تضمین میکند و آن را برای IoT مناسب میسازد.
- ارتباط ایمن:
با توجه به اینکه دادههای منتقل شده از طریق شبکههایIoT اغلب از اهمیت بالایی برخوردارند، ایجاد امنیت در این شبکهها بسیار حائز اهمیت میباشد. در پروتکل MQTT اطلاعات از طریق تونلSSH انتقال پیدا میکنند، این تونل مانند S حرف آخر در https موجود در درگاههای بانکی میباشد، که امنیت تراکنشها را در بستر اینترنت فراهم میکند، علاوه بر این MQTT از رمزگذاری لایه حمل و نقل (TLS) و لایه سوکتهای امن (SSL) نیز پشتیبانی میکند و محرمانه بودن دادهها را در طول انتقال اطمینان میدهد. همچنین به دلیل امکان ایجاد مکانیسمهای احراز هویت و سطح دسترسی به اطلاعات از طریق نام کاربری و رمز عبور دسترسی به شبکه و منابع آن به شدت محافظت میشود، بعلاوه عدم استفاده از IP Static نیز امکان هک سیستم را به حداقل میرساند.
- ارتباط متقابل :
MQTT امکان ارتباط دو طرفه یکپارچه بین دستگاهها را فراهم میکند. در این پروتکل هر مشترک میتواند پیامهایی را در موضوعات مختلف منتشر کند و هم پیامهای منتشر شده را دریافت کند، بدین صورت امکان تبادل موثر داده در اکوسیستمهای مختلف اینترنت اشیا بدون اتصال مستقیم بین دستگاهها فراهم میباشد.
- انتقال پیام به صورت مستمر:
MQTT به مشتریان اجازه میدهد تا ارتباط خود را با بروکر (Broker) به صورت مستمر حفظ کنند و سیستم را قادر میسازد تا پیامهای تحویل نشده را حتی پس از قطع ارتباط به خاطر بسپارد. مشتریان همچنین میتوانند با مشخص کردن یک بازه زمانی، از بروکر بخواهند وضعیت اتصال را به صورت دورهای بررسی کند.
- پشتیبانی از دستگاههای اینترنت اشیا در مقیاس بزرگ:
سیستمهای اینترنت اشیا اغلب شامل تعداد زیادی دستگاه میباشند که به پروتکلی نیاز دارند تا بتواند استقرار در مقیاس وسیع را مدیریت کند. ماهیت MQTT، مصرف پهنای باند کم و استفاده کارآمد از منابع، آن را برای کاربردهای IoT در مقیاس بزرگ مناسب میسازد. الگوی انتشار-اشتراک به MQTT اجازه میدهد تا به طور موثر عمل کند، زیرا فرستنده و گیرنده را جدا میکند و ترافیک شبکه و استفاده از منابع را کاهش میدهد.
- پشتیبانی از زبانهای مختلف برنامه نویسی:
پشتیبانی گسترده MQTT از انواع زبانهای برنامه نویسی، امکان ارتباط با انواع پلتفرم ها و فناوریها را امکان پذیر میسازد و ارتباطات یکپارچه و قابلیت همکاری را در اکوسیستمهای مختلف اینترنت اشیا تقویت میکند.
نحوه عملکرد پروتکل MQTT
پروتکل MQTT براساس الگوی انتشار-اشتراک مابین فرستنده پیام (Publisher) و گیرنده پیام (Subscriber) کار میکند، در این نوع ارتباط برخلاف سایر شبکههای ارتباطی پیام به صورت مستقیم مابین فرستنده و گیرنده در جریان نمیباشد، پیام از فرستنده به بروکر MQTTارسال میشود و پس از پردازش توسط این بروکر به گیرنده ارسال میشود.
اجزای MQTT
اجزای اصلی پروتکلMQTT، کلاینتها (Clients) و بروکر هستند. در اینترنت اشیا، کلاینت معمولاً به فرستنده و گیرنده پیام اشاره دارد. به صورت ساده، یک کلاینت هم میتواند یک فرستنده و هم یک گیرنده باشد. اساساً، هر دستگاهی را که از پروتکل شبکه TCP/IPاستفاده میکند و امکان پیاده سازی نرم افزاری MQTT را بر روی خود داراست، از یک میکروکنترلر کوچک گرفته تا یک سرور غول پیکر، میتوان به عنوان کلاینت پروتکل MQTT در نظر گرفت.
این مدل ارتباطی باعث میشود تا گیرنده و فرستنده از موقعیت شبکه یکدیگر آگاهی نداشته باشند و به اطلاعاتی مانند شماره پورت و یا آدرس IP نیاز نداشته باشند. همچنین احتیاج به آنلاین بودن و حضور همزمان فرستنده و گیرنده در شبکه نیز وجود ندارد، علاوه بر موارد فوق در این نوع ارتباط فرستنده و گیرنده میتوانند بدون ایجاد وقفه در روند کار دیگری، پیام را ارسال و دریافت کنند.
در ابتدا یک کلاینت با بروکر MQTT ارتباط برقرار میکند و پس از برقراری ارتباط میتواند در نقش فرستنده، پیامها را به بروکر ارسال کند و یا میتواند پیامهای خاصی را در نقش گیرنده دریافت کند و یا در هر دو عمل ارسال و دریافت پیام، ایفای نقش کند. هنگامی که بروکر MQTT پیامی را دریافت میکند، آن را برای گیرندههایی که در موضوع (Topic) آن پیام مشترک هستند ارسال میکند و با توجه به نوع کیفیت خدمات تعریف شده در پیام ارسالی از سمت فرستنده به پردازش پیام میپردازد و سپس پیام را برای همیشه از حافظه خود پاک خواهد کرد. بروکر MQTT در حقیقت سیستمی تحت فضای ابری (Cloud) است، که پیامها را بین کلاینتهای مختلف هماهنگ میکند. مسئولیتهای این بروکر شامل دریافت و فیلتر کردن پیامها، شناسایی کلاینتها در هر پیام و ارسال پیامها برای آنها میباشد. مجوز و احراز هویت کلاینتهای MQTT، ارسال پیام به سیستمهای دیگر برای تجزیه و تحلیل بیشتر، مدیریت پیامهای از دست رفته از دیگر وظایف این بروکر میباشد.
امروزه اینترنت اشیاء یک کلمه کلیدی است، همه چیز در مورد هوشمندتر کردن دستگاه های الکترونیکی مصرفی مختلف از طریق اتصال آنها به اینترنت و خدمات ابری می باشد.
MQTT (اختراع شده در سال 1999) برای اتصالات با مکان های دور که در آن پهنای باند شبکه محدود بود، طراحی شده است. هدف آن ارائه پروتکلی است که از نظر پهنای باند کارآمد باشد و از مصرف باتری کمی استفاده کند.
اتصال اینترنت اشیا (IoT) با MQTT
برای درک مفهوم MQTT باید اصطلاحات زیر را درک کنیم:
1) انتشار/اشتراک: پروتکلی که در آن یک دستگاه میتواند پیامی را منتشر کند، دستگاه دیگری میتواند در موضوعاتی برای دریافت پیامها مشترک شود.
2) پیام ها: پیام ها تبادل اطلاعات بین دستگاه ها هستند که می تواند فرمان یا داده باشد.
3) موضوع: عنوانی که در مکان دستگاه می خواهد پیامی را به/از آن قرار دهد یا بازیابی کند.
4) بروکر :بروکر (کارگزار) مسئول دریافت کلیه پیام ها، فیلتر کردن پیام ها و انتشار پیام ها برای کلیه مشتریان مشترک است.
MQTT چگونه کار می کند؟
همانطور که در بالا ذکر شد، MQTT به عنوان یک پروتکل پیام رسانی سبک طراحی شده است که از عملیات انتشار/اشتراک برای تبادل داده بین مشتری و سرور استفاده می کند.
این مناسب ترین پروتکل برای اتوماسیون خانگی و پروژه های اینترنت اشیا است. اگر می خواهید با استفاده از MQTT پروژه های خود را شروع کنید. در اینجا نحوه اجرای آن در چهار مرحله آمده است:
● اتصال
● احراز هویت
● ارتباطات
● فسخ.
اتصال: یک مشتری با ایجاد یک اتصال پروتکل کنترل انتقال/پروتکل اینترنت (TCP/IP) به بروکر با استفاده از یک پورت استاندارد یا یک پورت سفارشی که توسط اپراتورهای کارگزار تعریف شده است، شروع میشود.
احراز هویت: احراز هویت بخشی از حمل و نقل است و امنیت در سطح برنامه را فراهم می کند. با امنیت لایه حمل و نقل (TLS)، اعتبارسنجی موفقیت آمیز یک گواهی مشتری برای احراز هویت مشتری به سرور استفاده می شود. در سطح برنامه، پروتکل MQTT یک نام کاربری و رمز عبور را برای احراز هویت فعال می کند.
ارتباط: در طول مرحله ارتباط، مشتری می تواند عملیات انتشار، اشتراک، لغو اشتراک و پینگ را انجام دهد. معمولاً پیام ها دارای محموله هستند. این به توسعه دهندگان بستگی دارد که بارهایی را که می تواند داده های باینری، متن ساده، JSON، XML یا چیز دیگری باشد، تعریف کنند. چند ویژگی دیگر برای پیام های MQTT وجود دارد: کیفیت خدمات و حفظ پرچم.
خاتمه: هنگامی که یک ناشر یا مشترک می خواهد یک جلسه MQTT را خاتمه دهد، یک پیام DISCONNECT به بروکر ارسال می کند و سپس اتصال را می بندد. این به عنوان یک خاموشی برازنده نامیده می شود زیرا به مشتری این امکان را می دهد که با ارائه هویت مشتری خود و از سرگیری از جایی که متوقف شده است، به راحتی مجدداً متصل شود.
فواید MQTT
● دستگاه ها فقط به چند خط کد نیاز دارند تا بتوانند با پروتکل MQTT راه اندازی شوند.
● MQTT از نظر انرژی بسیار کارآمد می باشد. این باعث می شود که برای اتصال با دستگاه هایی که با باتری کار می کنند یا قدرت CPU کمی دارند عالی باشد.
● MQTT در زمان واقعی و بدون تاخیر خارج از QoS عمل می کند.
● MQTT در حال حاضر دارای کتابخانه هایی در زبان های برنامه نویسی مانند Elixir و Python است. که سبب سهولت در اجرا می شود.
● اگر مشتری به طور غیرمنتظره ارتباط خود را قطع کرد، میتوانید دستورالعملهای پیام را تنظیم کنید تا به همه مشترکین ارسال شود تا وضعیت برطرف شود.
● هر موضوع میتواند یک پیام حفظشده داشته باشد که مشتری بهطور خودکار هنگام اشتراک دریافت میکند (مانند یک پست پینشده در رسانههای اجتماعی).
MQTT QoS
در پروتکل MQTT اصطلاح QoS(Quality of Service) به معنای “کیفیت خدمات” است ،که به استانداردهایی که فرستنده پیام برای رسیدن پیام به مقصد در نظر دارد اشاره میکند.
همانطور که قبلا گفته شده در این فرآیند برای آنکه یک پیام از فرستنده به مقصد برسد باید مسیری را از فرستنده پیام به بروکر و سپس از بروکر به گیرنده پیام طی کند ، به عبارت دیگر ما حداقل دو مرحله انتقال پیام را داریم که ممکن است در این مراحل پیام دچار مشکل شود و به مقصد نرسد و از دست دادن پیام به طور مستقیم بر قابلیت اطمینان پروژه های اینترنت اشیا ما تأثیر می گذارد برای جلوگیری از این امر استفاده از QoS یک امر ضروری در ارسال پیام تلقی می شود .
به بیان ساده تر QoS سطحی از خدمات در مورد تضمین برای ارسال موفقیت آمیز پیام است که به عنوان یک توافق بین فرستنده و بروکر از یک سو، و بروکر و گیرنده از سوی دیگرعمل می کند.
قابلیت ذاتی MQTT برای مدیریت ارسال مجدد پیام و اطمینان از تحویل پیام به گیرنده، حتی در شرایطی که شبکه اینترنت ناپایدار و غیرقابل اعتماد است ، لزوم استفاده ازQoS را مشخص میکند.
در حقیقت این پروتکل با ارائه سطوح مختلف QoS، مشتریان را قادر می سازد تا استفاده از شبکه خود را بهینه کنند و به تعادل مطلوب بین قابلیت اطمینان و کارایی دست یابند.
اکنون که اهمیت کیفیت خدمات (QoS) در MQTT را درک کردیم، بیایید به عملکرد داخلی QoS بپردازیم و چگونگی عملکرد آن را برای اطمینان از تحویل پیام قابل اعتماد در شرایط مختلف شبکه بررسی کنیم.
MQTT از سه سطح QOS پشتیبانی می کند که برای اطمینان از تحویل پیام طراحی شده اند.
- :QOS 0
این سطح بیانگر آن است که پیام تنها یک بار از طرف فرستنده به گیرنده ارسال می شود و فرستنده پس از ارسال پیام آن را کنار میگذارد و منتظر تایید گیرنده برای دریافت پیام یا تضمین رسیدن به مقصد نمی ماند. - :QOS 1
این سطح بیانگر آن است که پیام حداقل یک بار از طرف فرستنده به گیرنده ارسال می شود و گیرنده آن پیام را دریافت کرده است .
فرستنده پس از ارسال پیام منتظر تایید دریافت پیام از گیرنده باقی می ماند و تا زمانی که تاییده را دریافت نکند در فواصل زمانی معین به ارسال مجدد پیام ادامه می دهد و هرگاه تایید را از گیرنده دریافت کرد پیام را کنار میگذارد و این روند متوقف می شود.
در این روش اگر به هر دلیل در ارسال پیام تاییده از گیرنده به فرستنده خللی ایجاد شود، فرستنده تا زمان دریافت تاییده به ارسال مجدد پیام به گیرنده ادامه می دهد و این روند ممکن است باعث ایجاد تکرار یک پیام شود.
- :QOS 2
این سطح بیانگر بالاترین و قابل اطمینان ترین سطح خدمات است اما از سرعت کمتری نیز برخوردار است. در این روش تضمین می شود که پیام در پروسه انتقال از بین نمیرود و به صورت تکراری ارسال نمی شود.
در این روش فرستنده ابتدا یک پیام به گیرنده می فرستند و منتظر تاییده ی گیرنده می ماند ، اگر گیرنده تاییده را در زمان معین ارسال نکند ، فرستنده دوباره پیام را ارسال می کند ، اما پیام در قالبی ارسال می شود که گیرنده متوجه تکراری بودن پیام می شود و در صورت دریافت تاییده ایی در همین قالب برای فرستنده ارسال می کند و پیام های قبل را پاک می کند به این صورت از دریافت پیام های تکراری جلوگیری می کند .
به این ترتیب با توجه به اهمیت محتوای پیام ها می توانید نوع QoS مد نظر خود را مشخص کنید.
MQTT در HMI دلتا
در صنعت روشهای مختلفی برای ارسال و دریافت اطلاعات نمایشگرهای صنعتی HMI از طریق اینترنت مانند VNC ،MQTT و… وجود دارد. برند دلتا در دستهی اچ ام آی های سری جدید خود با نام تجاری DOP-100که مجهز به پورت اترنت هستند، همانند مدل اقتصادی دلتا DOP-107DVو DOP-110IS.. ، قابلیت MQTTرا فراهم آورده است و کاربران با خرید HMI دلتا و یک خط اینترنت، و با کمک اتصال به بروکر تعبیه شده در داخل ایران میتوانند بدون داشتن IP staticانتقال دیتا را به هر نقطهای داشته باشند و میتوانند از همهی امکانات این پروتکل برای اجرای پروژههای خود استفاده کرده و پشت فیلترینگ اینترنت برای بهرهمندی از بروکرهای خارجی متوقف نشوند. و در نهایت از طریق تلفن همراه فرآیند خود را مانیتور و کنترل کنند. گروه فنی مهندسی یوزتکنو نمایندگی دلتا در تهران در عرصه اینترنت اشیا در صنعت پیشتاز میدان است.
سامانه مانیتورینگ تجهیزات صنعتی بوسیله پروتکل MQTT
سامانه deltaiot.ir به منظور ایجاد ارتباط و مانیتورینگ تجهیزات اتوماسیون صنعتی بوسیله پروتکل MQTT راهاندازی شده است و سرور های این سایت، خدمات MQTT Broker را به مشتریان ایرانی عرضه میکنند.
“تمامی سرور های این سامانه، داخل کشور ایران قرار دارند لذا محدودیت هایی مثل تحریم یا فیلترینگ اینترنت بر آن بی اثر است.”
استفاده از خدمات این درگاه بواسطه سرمایه گذاری گروه فنی مهندسی کامیاب مرام و با همکاری فنی گروه یوزتکنو برای محصولات دلتا، رایگان است.
لازم به ذکر است تمامی مدل های HMI دلتا که مجهز به سوکت اترنت هستند، پروتکل MQTT را پشتیبانی میکنند همانند مدل اقتصادی DOP-107DV و …
جهت فعالسازی اکانت کاربری خود و بهرمندی از خدمات سرور MQTT برای محصولات دلتا، لطفا شماره سریال محصول مورد نظر را به شماره 09120149019 پیامک نمایید.
پس از بررسی شماره سریال دستگاه، Username ، Password و سایر مشخصات اکانت برای شما ارسال میگردد.
برای دریافت اطلاعات بیشتر و یا فعالسازی اکانت MQTT برای دیگر برندها، مثل Fatek، Weintek،
جهت دریافت اطلاعات بیشتر و دانلود نرم افزار های مرتبط با تجهیزات دلتا، لطفا به مرکز دانلود سایت UseTechno مراجعه کنید.
سوالات متداول
MQTT چگونه در اینترنت اشیا استفاده می شود؟
اگر مراحل ذکر شده در بالا را دنبال کنید، استفاده در اینترنت اشیا ساده است. جای تعجب نیست که چرا MQTT یکی از رایج ترین پروتکل های مورد استفاده در پروژه های اینترنت اشیا است. از عملیات انتشار/اشتراک برای تبادل داده بین مشتریان MQTT و سرور MQTT استفاده می کند.
چگونه اینترنت خود را به اینترنت اشیا وصل کنم؟
راه های مختلفی برای اتصال اینترنت به اینترنت اشیا وجود دارد. این بیشتر به نقش دستگاه بستگی دارد که در گزینه های زیر ذکر شده است:
شما باید فقط در شبکه خانگی / تجاری به این دستگاه دسترسی داشته باشید.
دستگاه فقط به یک سرور راه دور متصل می شود.
شما باید با استفاده از یک آدرس IP عمومی ثابت از اینترنت به دستگاه دسترسی داشته باشید
شما باید با استفاده از یک آدرس IP عمومی پویا از اینترنت به دستگاه دسترسی داشته باشید
آیا MQTT می تواند بدون اینترنت کار کند؟
بله، MQTT ممکن است بدون اینترنت کار کند. ببینید، فقط به یک شبکه IP نیاز دارد زیرا از TCP/IP برای ارتباط بین مشترک یا ناشر و کارگزار استفاده می کند. یک شبکه IP به این معنی نیست که شما نیاز به دسترسی به اینترنت دارید. دو دستگاه و یک کابل اترنت یک شبکه را می سازند. خودشه!!!
تفاوت بین MQTT و HTTP چیست؟
MQTT با HTTP متفاوت است. MQTT یک پروتکل داده محور می باشد در حالی که HTTP پروتکل سند محور است. HTTP یک پروتکل درخواست-پاسخ برای محاسبات مشتری-سرور است و همیشه برای دستگاه های تلفن همراه بهینه سازی نشده است، در حالی که مدل انتشار/اشتراک MQTT قابلیت اطمینان کل سیستم را فراهم می کند. MQTT سریعتر از HTTP است.
مطالب مرتبط:
مدیریت بروکر MQTT و شناسایی الگوی JSON
اگر علاقه مند به فیلم های آموزشی و بحث های فنی در زمینه اتوماسیون صنعتی هستید به ما در اینستاگرام یوزتکنو به آدرس USE.TECHNO بپیوندید.
🌼 لطفا سوالات و نظرات خود را در بخش دیدگاه ها با ما به اشتراک بگذارید.
آخرین ورژن نرمافزار DOPSoft یا DIAScreen را میتوانید از قسمت مرکز دانلود سایت دانلود کنید.
بمنظور خدمات بهتر و دسترسی آسانتر، مراحل ثبت نام و ورود با نام کاربری غیر فعال شده است.
واقعا جامع ومفید بود یک دنیا ممنونم از وقتی که گذاشتید فقط سوالی که داشتم استفاده از بروکر شما رایگانه یا برای کسانی که اچ ام ای از شما خریداریمی کنند رایگانه یا کلا احتیاجبخ شارژ دوره ای داره؟
خیلی ممنون از وقتتون
باتشکر از نظر شما
استفاده از خدمات بروکر deltaiot.ir برای تمامی مشتریان دلتا رایگان است، مسلما خرید از نمایندگی ما سبب دلگرمی و به موجب آن خدمات ویژه تری برای مشتریان به همراه خواهد داشت. می توانید از خدمات بروکر MQTT بصورت کاملا رایگان استفاده کنید.
برای فعال سازی بروکر صرفا لازم است شماره سریال محصول را به 09120149019 پیامک کنید. همین :))
سلام
پروژه اتوماسیون برای کشور عراق انجام دادم با HMI Delta مدل DOP-110ws.
آیا پروتوکل MQTT با توجه به اینکه سرور شما داخل ایران هست , برای برای خارج از ایران محدودیت ندارد؟
ممنون
سلام
لطفا سایت deltaiot.ir را با سیم کارت عراقی باز کنید اگر سایت بالا اومد یعنی مشکلی نیست و میتوانید استفاده کنید.
در شرایط عادی مشکلی برای ارتباط از خارج ایران وجود ندارد