مانیتور آب و هوا با میکروپایتون و نمایش بر روی وب سرور ESP32

1402/06/10 | 1223 |
micro python

در این پست به بررسی نحوه ساخت یک وب سرور با میکروپایتون بر روی esp32 با استفاده از کتابخانه microdot خواهیم پرداخت.

 

 

قطعه کد کامل پروژه را می توانید از لینک زیر به دست آورید:

AliBigdeli/MicroPython-WeatherMonitoring-WebApp: a simple and brief web applicaiton to monitor the temp and humidity and also control a relay in micropython (github.com)

قبل از هر چیزی می بایست  نحوه استفاده از micropython را بر روی بورد مد نظر که برای ما esp32 است بیاموزید و سپس بقیه آموزش را دنبال کنید.

برای راحتی استفاده از ماژول ها و تسریغ توسعه از بورد های ProMake که برای شرکت EasyIOT است استفاده می کنیم.

برای کار کتابخانه های مبتنی بر وب ابتدا می بایست اتصال بورد با شبکه های محلی صورت بگیرد که این ارتباط می تواند از طریق شبکه AP و یا STA باشد. که شبکه AP نوعی از هاتسپات می باشد که شما یک ارتباط WIFI را بر روی بورد خود میسر میسازید و کلاینت ها برای ارتباط با بورد کافیست که مستقیما به آن متصل شوند. نوع دیگری از این ارتباط نیز وجود دارد که STA است و بورد به WIFI ایی که شما برای آن مشخص می کنید متصل می شود و شما می توانید با بودن در شبکه ای مشترک و ارتباط با بورد از طریق IP آن ارتباط لازم را بر قرار نمایید.

قطعه کد زیر نحوه راه اندازی یک ارتباط AP را به شما نمایش می دهد:

import network

ssid = 'MicroPython-AP'
password = '123456789'

ap_wlan = network.WLAN(network.AP_IF)
ap_wlan.active(True)
ap_wlan.config(essid=ssid, password=password)

while ap_wlan.active() == False:
  pass

print('Connection successful')
print(ap_wlan.ifconfig())

در ادامه برای راه اندازی وب سرور از کتابخانه MicroDot استفاده خواهیم کرد. که یک کتابخانه کاملا مشابه به fastapi/flask است و می توانید ساختار های متعددی را با آن پیاده سازی نمایید. برای استفاده از این کتابخانه کافیست کد مربوط به آن را در کنار کد اصلی خود قرار داده و آن را مانند یک ماژول مورد استفاده قرار دهید. قطعه کد زیر نحوه راه اندازی یک سرور ساده را با توجه به داکیومنت های خود ماژول به شما نمایش می دهد:

Installation — Microdot documentation

from microdot import Microdot

app = Microdot()

@app.route('/')
def index(request):
    return 'Hello, world!'

app.run(port=5000,debug=True)

در نهایت نیاز به خواندن و گرفتن اطلاعات از ماژول های مربوطه که DHT و Photocel است می شود و پس از آن در صورتی که ساختار به خوبی شکل گرفته باشد با تصال به وایفای مربوطه و باز کردن آدرس 192.168.4.1 می توانید صفحه زیر را مشاهده کنید که اطلاعات کافی را به شما نمایش می دهد و هر 5 ثانیه یک بار آپدیت می شود.

 


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
  • رایگان 75 دانشجو
آموزش رابط گرافیکی Tkinter
آموزش Tkinter
  • رایگان 391 دانشجو