پایشگر آب و هوا و کنترل از طریق MQTT با نرم افزار IOT Dashboard
در این پست به بررسی نحوه ساخت یک پایشگر آب و هوا با استفاده از میکروپایتون بر ESP32 با استفاده از پروتکل ارتباطی MQTT می نماییم و داده های نمایشی را از طریق اپلیکیشن مربوطه با استفاده از ویجت های مخصوص به نمایش در می آوریم و سپس با استفاده از کلید و سویچ بورد را کنترل می نماییم.
برای درک بهتر می توانید به رپو مربوطه مراجعه نمایید:
پروتکل 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)
دوره های من در مکتبخونه
مسترکلاس پایتون 2026: پیادهسازی 30+ پروژه کاربردی با پایتون
- سطح: مقدماتی 5
آموزش طراحی سرویس با FastAPI
- سطح: مقدماتی 4.5
آموزش جنگو Django
- سطح: مقدماتی 4.6
آموزش جنگو پیشرفته
- سطح: پیشرفته 4.7
آموزش طراحی فروشگاه با جنگو
- سطح: پیشرفته 4.4
آموزش شیءگرایی در پایتون
- سطح: متوسط 4.2
آموزش میکروپایتون در اینترنت اشیا
- سطح: متوسط 4.4
آموزش ساخت ربات تلگرام با پایتون
- سطح: متوسط 4.3
آخرین پست ها
آفلاین سازی swagger در django و ماژول drf-spectacular
- به صورت پیشفرض برای drf-yasg تمام asset ها بصورت آفلاین بارگزاری می شوند ولی برای drf-spectacular هنوز هم به cdn های خارجی برای این کار احتیاج است. ستاپ اولیه پروژهخوشبختانه…
- django 1404/11/04
ابزار های توسعه در زمان قطعی اینترنت
- در زمانی که در داخل کشور اینترنت به دلایلی قطع میشه می تونین از ابزار های زیر برای رفع نیاز های برنامه نویسی فعلی استفاده کنین: نصب پکیج ها با…
- tech 1404/11/02
آفلاین سازی Swagger در FastAPI به جای CDN
- در زمانی که دسترسی به اینترنت میسر نیست (اینترانت) اگر بخواهید که به صفحه Swagger در fastapi دسترسی پیدا کنین قطعا این راه به راحتی اتفاق نمی افته و به…
- fastapi 1404/10/25
آخرین دوره ها
The Twelve-Factor App
- 0 28 دانشجو
آموزش Pydantic پایتون
- 0 60 دانشجو
آموزش SQLAlchemy پایتون
- 0 87 دانشجو