پایشگر آب و هوا و کنترل از طریق MQTT با نرم افزار IOT Dashboard

1402/06/11 | 3012 |
micro python

در این پست به بررسی نحوه ساخت یک پایشگر آب و هوا با استفاده از میکروپایتون بر ESP32 با استفاده از پروتکل ارتباطی MQTT می نماییم و داده های نمایشی را از طریق اپلیکیشن مربوطه با استفاده از ویجت های مخصوص به نمایش در می آوریم و سپس با استفاده از کلید و سویچ بورد را کنترل می نماییم.

برای درک بهتر می توانید به رپو مربوطه مراجعه نمایید:

AliBigdeli/MicroPython-WeatherStation-MQTT-App: a sample code for interacting with mqtt to read sensor data and also control relay (github.com)

 

پروتکل MQTT چیست؟

پروتکل MQTT یک پروتکل پیام‌ رسانی ساده است که برای دستگاه‌های با پهنای باند کم طراحی شده است.بنابراین راه حلی مناسب برای تبادل داده بین چندین دستگاه IoT است.ارتباطات MQTT به عنوان یک سیستم انتشار و دریافت (Publish و Subscribe) کار می کند. دستگاه‌ها پیام‌هایی را درباره یک موضوع خاص(Topic) منتشر می‌کنند.و تمامی دستگاه ها و نرم افزار هایی که بر روی تاپیک مد نظر subscribe کرده باشند توانایی دیدن پیام مربوطه را پیدا خواهند کرد. البته این تعداد از دستگاه ها می تواند 1 عدد و یا بیشتر باشد بسته به تنظیمات در نظر گرفته شده در شاخص رفتاری ACL یا Access Control List در broker مربوطه.

مفاهیم اولیه MQTT

در MQTT چند مفهوم اساسی وجود دارد که باید آنها را درک کنید:

  • Publish/Subscribe
  • Messages
  • Topics
  • Broker

بروکر (MQTT – Broker)

یک Broker عامل میانی بین ارتباطات کلاینت ها است، به طوری که هر پیام ورودی را به گیرنده های خود مرتبط می کند و کار مدیریت کاربران و پیام ها را در سطوح مختلف بر عهده دارد. بروکر ها مدل های مختلفی دارند اعم از AMQP که خاصیت های مدیریتی و کنترل ترافیک بیشتری را می تواند داشته باشد.

برو کر های متعدد برای توسعه نرم افزار های اینترنت اشیا وجود دارد که موارد زیر جزو آن ها هستند.

  • Mosquitto
  • Mosca
  • emqttd
  • EMQ X
  • Emitter

 

ارسال و دریافت (MQTT – Publish/Subscribe)

هر عاملی که می خواهد پیامی را ارسال کند عمل publish را انجام می دهد و هر عاملی که می خواهد دریافت داده را انجام دهد می بایتس قبل از آن خود را در بروکر اضافه کرده و بر روی یک تاپیک خاص گوش فرا دهد که به آن subscribe می گویند.

پیام (MQTT – Messages)

پیام ها اطلاعاتی هستند که می خواهید بین دستگاه های خود مبادله کنید. برای مثال می‌تواند پیامی مانند فرمان یا داده‌هایی مانند قرائت سنسور باشد.

تاپیک (MQTT – Topics)

تاپیک ها مانند تانل های ارتباطی هستند که زمانی که شما در هر تاپیک ثبت می شوید اجزا دریافت پیام و یا حتی ارسال بدون ثبت نام در آن را پیدا خواهید کرد.

 

استفاده در MicroPython

برای اینکه بتوانید از mqtt در میکروپایتون ساتفاده نمایید کتابخانه های متعدد وجود دارد اما برای راحتی عملکرد می خواهیم از umqtt استفاده کنیم. این کتابخانه می تواند به سرعت عملکرد لازم را جهت استفاده از mqtt برای شما فراهم نماید که می توانید در لینک زیر اطلاعات مربوط به این ماژول را بیابید:

micropython-lib/micropython/umqtt.simple at master · micropython/micropython-lib (github.com)

 

 

 


ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است می توانید اولین نفر باشید
avatar
علی بیگدلی

نویسنده

دوره های من در مکتبخونه

آموزش جنگو پیشرفته
  • سطح: پیشرفته 4.7
آموزش جنگو Django
  • سطح: مقدماتی 4.6

آخرین پست ها

انتقال پروژه Django از پلتفرم Liara به پلتفرم Hamravesh
انتقال پروژه Django از پلتفرم Liara به پلتفرم Hamravesh
  • django 1403/05/28
پیاده سازی پروژه Django Channels (ASGI/Websocket) بر روی پلتفرم Hamravesh
پیاده سازی پروژه Django Channels (ASGI/Websocket) بر روی پلتفرم Hamravesh
  • django 1403/05/19
پیاده سازی پروژه django بر روی پلتفرم Caprover به همراه Media
پیاده سازی پروژه django بر روی پلتفرم Caprover به همراه Media
  • django 1403/05/15