پیشرفته⏱ 20 دقیقه مطالعه
حالا که ESP32 به شبکه متصل شد، میتوانیم یک وبسرور ساده روی آن اجرا کنیم تا از طریق مرورگر، LED را روشن یا خاموش کنیم — یکی از رایجترین پروژههای شروع در دنیای IoT.
وبسرور با سوکتهای خام
PYTHON
import network, socket
from machine import Pin
from time import sleep
led = Pin(2, Pin.OUT)
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("NAME_OF_YOUR_WIFI", "YOUR_PASSWORD")
while not wlan.isconnected():
sleep(1)
print("IP:", wlan.ifconfig()[0])
html = """<html><body>
<h1>کنترل LED با ESP32</h1>
<a href="/on"><button>روشن</button></a>
<a href="/off"><button>خاموش</button></a>
</body></html>"""
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
s = socket.socket()
s.bind(addr)
s.listen(1)
while True:
cl, addr = s.accept()
request = cl.recv(1024).decode()
if '/on' in request:
led.on()
elif '/off' in request:
led.off()
cl.send('HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n')
cl.send(html)
cl.close()
💡 نکته
پس از اجرای این کد، آدرس IP چاپشده را در مرورگر گوشی یا کامپیوتری که در همان شبکه است باز کنید تا صفحهٔ کنترل را ببینید.
بهبود کد با پردازش تمیزتر مسیر
برای پروژههای واقعی، بهتر است از کتابخانههای سبک مانند microdot یا tinyweb استفاده کنید که مدیریت مسیرها (routing) و پاسخ JSON را سادهتر میکنند؛ اما درک نسخهٔ خام با سوکت، پایه و اساس همان کتابخانههاست.
🛠️ کارگاه عملی
کارگاه عملی: یک مسیر جدید مثل /status اضافه کنید که وضعیت فعلی LED را بهصورت متن ساده برگرداند.
❓ در این پروژه، برای دریافت درخواستهای HTTP از کدام ماژول استفاده شده است؟
→ درس قبلی: درس ۱۱: اتصال ESP32 به شبکه Wi-Fi
درس بعدی: درس ۱۳: ارتباط MQTT و پروژه ایستگاه هواشناسی ←
طراحی و توسعه: امین شیخ نجدی — glcd.ir