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

1402/06/11 | 2260 |
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)

 

 

 


avatar
علی بیگدلی

نویسنده

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

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

آخرین پست ها

نحوه نصب و پیاده سازی Caprover بر روی لینوکس
نحوه نصب و پیاده سازی Caprover بر روی لینوکس
  • django 1402/11/29
استفاده از محیط docker-compose و dev container در مدیریت پروژه
استفاده از محیط docker-compose و dev container در مدیریت پروژه
  • django 1402/11/22
پایشگر آب و هوا و کنترل از طریق MQTT با نرم افزار IOT Dashboard
پایشگر آب و هوا و کنترل از طریق MQTT با نرم افزار IOT Dashboard
  • micro python 1402/06/11

آخرین دوره ها

آموزش arduino
آموزش Arduino
  • رایگان 74 دانشجو
آموزش رابط گرافیکی Tkinter
آموزش Tkinter
  • رایگان 388 دانشجو