اموزش راه اندازی وب سرور ESP8266 و ESP32 با میکروپایتون

اموزش راه اندازی وب سرور ESP8266 و ESP32 با میکروپایتون ، در دنیای امروز که اینترنت اشیا (IoT) به بخشی جداییناپذیر از زندگی ما تبدیل شده، توانایی برقراری ارتباط میان دستگاهها و انسانها اهمیتی بیسابقه یافته است. تصور کنید بتوانید تنها با باز کردن یک صفحهی وب روی گوشی یا کامپیوترتان، چراغ اتاق را روشن کنید یا وضعیت یک سنسور را بررسی نمایید. جذاب نیست؟ این همان جادوییست که میکروپایتون و بردهای ESP8266 یا ESP32 برای ما به ارمغان میآورند. در این مقاله قصد داریم با زبانی ساده، دقیق و ساختارمند، گامبهگام آموزش دهیم که چگونه با استفاده از میکروپایتون یک وبسرور کاربردی بسازید و از طریق آن دستگاههای خود را بهصورت بیسیم کنترل نمایید.
میکروپایتون چیست و چرا باید از آن استفاده کنیم؟
میکروپایتون یک نسخه سبک و سریع از زبان برنامهنویسی پایتون است که برای اجرا روی میکروکنترلرهایی با منابع محدود طراحی شده. بهلطف آن، میتوان با کدنویسی ساده و کمهزینه، پروژههایی قدرتمند و قابلاعتماد ایجاد کرد. برخلاف زبانهای سنتی در دنیای الکترونیک مانند C یا Arduino C++، کار با میکروپایتون برای کسانی که با پایتون آشنایی دارند بسیار ساده و دلپذیر است.
مزایای میکروپایتون:
- سادگی در توسعه
- جامعه کاربری بزرگ
- اشغال منابع کمتر نسبت به سایر زبانها
- قابلیت اجرای سریع روی بردهای ESP
آشنایی با بردهای ESP8266 و ESP32: قلب تپنده پروژههای IoT
این دو برد از محبوبترین و مقرونبهصرفهترین انتخابها برای پروژههای اینترنت اشیا هستند. هر دو دارای Wi-Fi داخلیاند و از طریق میکروپایتون بهراحتی قابل برنامهریزی هستند. ESP32 قابلیتهای بیشتری نسبت به ESP8266 دارد:
ویژگی | ESP8266 | ESP32 |
---|---|---|
Wi-Fi | دارد | دارد |
Bluetooth | ندارد | دارد (BLE) |
GPIO | محدود | بیشتر |
قدرت پردازش | کمتر | بیشتر |
اگر پروژه شما ساده است، ESP8266 کفایت میکند؛ ولی برای پروژههای پیچیدهتر، ESP32 انتخاب بهتریست.
ابزارهای لازم برای شروع
- برد ESP8266 یا ESP32
- کابل micro USB
- نرمافزار Thonny IDE یا uPyCraft
- درایور CH340 یا CP2102 (برای شناسایی پورت سریال)
- فایل firmware میکروپایتون (از micropython.org)
- نرمافزار esptool برای نصب فریمور
- آشنایی مقدماتی با پایتون
مرحلهبهمرحله: ساخت یک وبسرور کامل با میکروپایتون
1. نصب فریمور میکروپایتون
ابتدا با استفاده از esptool فریمور رسمی را روی برد فلش میکنیم:
pip install esptool
esptool.py --port COMx erase_flash
esptool.py --port COMx --baud 460800 write_flash --flash_size=detect 0 firmware.bin
⚠️ فایل
firmware.bin
را از micropython.org مخصوص مدل برد خود دانلود کنید.
2. اتصال و تست ارتباط با برد
از IDE مانند Thonny استفاده کنید:
- پورت سریال را از منوی Tools > Options > Interpreter انتخاب کنید.
- در تب Shell باید بتوانید به برد دستور بدهید (مثلاً
print("Hello")
).
3. سورس کد میکروپایتون
import network # برای مدیریت اتصال به شبکه Wi-Fi
import socket # برای ایجاد سوکت و راهاندازی وبسرور
from machine import Pin # برای کنترل پایههای GPIO
import time # برای تاخیر زمانی در صورت نیاز
# ====== تنظیمات Wi-Fi ======
ssid = 'YOUR_WIFI_SSID' # نام شبکه وایفای خود را اینجا وارد کنید
password = 'YOUR_WIFI_PASSWORD' # رمز عبور وایفای
# ====== اتصال به وایفای ======
station = network.WLAN(network.STA_IF) # تعریف برد در حالت Station (اتصال به مودم)
station.active(True) # فعالسازی ماژول Wi-Fi
station.connect(ssid, password) # تلاش برای اتصال به مودم
# منتظر بمان تا اتصال برقرار شود
while not station.isconnected():
print("Connecting to Wi-Fi...")
time.sleep(1)
print('Wi-Fi connected. IP address:', station.ifconfig()[0]) # چاپ IP اختصاص یافته
# ====== تنظیم پایه GPIO برای LED ======
led = Pin(2, Pin.OUT) # تعریف پایه ۲ (پایه داخلی LED برای ESP8266/ESP32) در حالت خروجی
# ====== تابع HTML برای نمایش در مرورگر ======
def web_page():
html = """<!DOCTYPE html>
<html>
<head>
<title>LED Control</title>
<meta charset="UTF-8">
</head>
<body style="text-align:center;">
<h1>MicroPython Web Server</h1>
<h2>LED Status: %s</h2>
<a href="/?led=on"><button style="font-size:20px;">Turn ON</button></a>
<a href="/?led=off"><button style="font-size:20px;">Turn OFF</button></a>
</body>
</html>""" % ("ON" if led.value() else "OFF") # نمایش وضعیت فعلی LED
return html
# ====== راهاندازی سوکت و شروع گوش دادن ======
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # ایجاد سوکت TCP
s.bind(('', 80)) # بایند به پورت ۸۰ (پورت استاندارد HTTP)
s.listen(5) # شروع به گوش دادن برای ۵ اتصال همزمان
print("Web server is up and running. Waiting for browser connection...")
# ====== حلقه بینهایت برای پاسخ به درخواستها ======
while True:
conn, addr = s.accept() # پذیرش اتصال از کلاینت (مرورگر)
print('Connection from:', addr) # چاپ آدرس کلاینت
request = conn.recv(1024) # دریافت درخواست مرورگر
request = request.decode() # تبدیل از بایت به رشته
print("Request:\n", request)
# بررسی اینکه کاربر چه دکمهای را زده است
if '/?led=on' in request:
print("Turning LED ON")
led.value(1) # روشن کردن LED
elif '/?led=off' in request:
print("Turning LED OFF")
led.value(0) # خاموش کردن LED
# تولید صفحه HTML و ارسال آن به مرورگر
response = web_page() # گرفتن HTML
conn.send('HTTP/1.1 200 OK\n') # هدر وضعیت HTTP
conn.send('Content-Type: text/html\n') # مشخص کردن نوع محتوا
conn.send('Connection: close\n\n') # بستن اتصال بعد از ارسال
conn.sendall(response) # ارسال کل HTML
conn.close() # بستن اتصال با کلاینت
پیشرفتهتر شویم: قابلیتهایی که میتوان اضافه کرد
- کنترل چند وسیله با استفاده از چند دکمه و چند پایه GPIO
- طراحی رابط کاربری پیشرفتهتر با CSS
- استفاده از WebSocket برای ارتباط بیدرنگ
- راهاندازی REST API برای دریافت داده از سنسورها
- ذخیرهسازی وضعیتها در فایل یا EEPROM
پرسشهای متداول (FAQ)
۱. برد در اجرای کد هنگ میکند، مشکل از کجاست؟
ممکن است حافظه پر باشد یا کد دچار حلقه بیپایان شده باشد. با دکمه ریست یا فلش مشکل حل میشود.
۲. آیا میتوان از موبایل به وبسرور وصل شد؟
بله. کافی است موبایل به همان شبکه Wi-Fi متصل باشد.
۳. چطور پروژه را قابل حمل کنیم؟
میتوانید برد را به یک باتری متصل کرده و یک نقطه دسترسی (Access Point) راهاندازی کنید.
۴. آیا امکان تعریف رمز عبور برای دسترسی به صفحه وجود دارد؟
بله. با بررسی Authorization
در هدرهای HTTP میتوان یک احراز هویت ساده طراحی کرد.
جمعبندی
با استفاده از میکروپایتون و برد ESP، ساخت وبسرور و کنترل از طریق مرورگر به کاری آسان و لذتبخش تبدیل میشود. این مهارت، دروازهای است به سمت پروژههای پیشرفتهتر در حوزه اینترنت اشیا. حالا نوبت شماست که خلاق باشید و دستگاههای اطرافتان را هوشمند کنید.
اگر این مقاله اموزش راه اندازی وب سرور ESP8266 و ESP32 با میکروپایتون برای شما مفید بود، آن را با دوستان خود به اشتراک بگذارید و برای مشاهده آموزشهای بیشتر به سایت ما سر بزنید.
مطلب پیشنهادی
پروژه نمایش دما و رطوبت با استفاده از سنسور DHT11 با میکروپایتون
دیدگاههای محترمانه: لطفاً نظرات خود را با رعایت احترام به دیگران و به صورت محترمانه ارسال کنید. از بهکار بردن زبان توهینآمیز، تهدیدآمیز یا نژادپرستانه خودداری کنید.
حفظ حریم خصوصی: از درج اطلاعات شخصی خود یا دیگران مانند شماره تماس، آدرس و هرگونه اطلاعات حساس خودداری کنید.
محتوای تبلیغاتی: ارسال دیدگاههای تبلیغاتی، لینکهای خارجی یا هر نوع محتوای تجاری که مرتبط با موضوع نباشد، ممنوع است.
موافقت با قوانین: با ارسال دیدگاه خود، شما تأیید میکنید که قوانین فوق را خوانده و با آنها موافقید. تیم ما حق دارد نظرات غیرمجاز را حذف کند.
پروژه های پیشنهادی
پروژه ریموت کنترل کدلرن حرفه ای
مشاهده پروژهپروژه ساعت کنترل زمان بندی رله با اردوینو
مشاهده پروژهپروژه قفل دیجیتال با ماژول RFID RC522
مشاهده پروژه