مقدمه
اگر یک برد ESP32-S3-WROOM-1 N8R2 مشابه تصویر بالا دارید، خبر خوب این است که این برد یکی از گزینههای بسیار مناسب برای اجرای MicroPython است. ماژول روی این برد، یعنی ESP32-S3-WROOM-1-N8R2، دارای ۸ مگابایت Flash و ۲ مگابایت PSRAM است و خود ESP32-S3 نیز پردازنده دو هستهای LX7 با فرکانس تا 240MHz، Wi-Fi و Bluetooth LE دارد. نکته مهم این است که برای این برد نباید Firmware مربوط به ESP32 معمولی یا ESP32-C3 را دانلود کنید؛ باید نسخه مخصوص ESP32-S3 را بگیرید. برای انجام مراحل به صورت قدم به قدم تا نصب و راه اندازی کامل میکرو پایتون با ما همراه باشید.
برد توسعه ESP32-S3-WROOM-1 با هسته وای فای ESP32-S3-N8R2
ناموجود
13,750,000 ریال| تعداد در بسته | , |
|---|
مشخصات برد مورد استفاده
مشخصات دقیق برد توسعه ESP32-S3-WROOM-1 N8R2
| ویژگی | مقدار |
|---|---|
| MCU | ESP32-S3 |
| ماژول | ESP32-S3-WROOM-1 |
| Flash | 8 MB |
| PSRAM | 2 MB |
| Wi-Fi | 2.4 GHz 802.11 b/g/n |
| Bluetooth | Bluetooth 5 LE |
| CPU | Dual-Core Xtensa LX7 تا 240MHz |
| USB | دو عدد USB Type-C |
| LED RGB | GPIO48 |
| دکمه Boot | دارد |
| دکمه Reset | دارد |
در مدل N8R2، حرف N8 به 8MB Flash و R2 به 2MB PSRAM اشاره میکند که این مسئله یعنی این برد از قدرت بالایی در بین برد های دیگر ESP برخوردار است و برای اجرای میکرو پایتون بهینه شده است.
MicroPython چیست؟
میکرو پایتون یک پیادهسازی سبک از زبان Python برای میکروکنترلرهاست. به جای اینکه برای هر تغییر کوچک در برنامه، Firmware کامل C/C++ را کامپایل و روی ESP32 فلش کنید، میتوانید مستقیماً Python بنویسید مثلا:
from machine import Pin
led = Pin(48, Pin.OUT)
led.on()و آن را روی ESP32 اجرا کنید.
این موضوع برای پروژههای: IoT ،Wi-Fi سنسورها، MQTT ،Web Server، اتوماسیون، کنترل LED، رباتیک، مانیتورینگ، ارتباط سریال، پروژههای آموزشی
بسیار بسیار کاربردی است و خوشبختانه میکرو پایتون بهصورت کاملا رسمی برای ESP32-S3 پشتیبانی میشود.
قبل از شروع چه چیزهایی لازم داریم؟
برای نصب MicroPython روی این برد به این موارد نیاز دارید:
سختافزار
برد ESP32-S3-WROOM-1 N8R2 و کابل USB Type-C سالم و کامپیوتر یا لپ تاپ
نرمافزار
دو چیز اصلی لازم داریم: MicroPython Firmware و esptool ، برای کار راحتتر بعد از نصب میتوانید به طور اختیاری Thonny IDE را هم نصب کنید.
یک نکته بسیار مهم درباره دو پورت USB برد
این برد 2 عدد USB Type-C دارد و این دو پورت دقیقاً یک کار انجام نمیدهند.
- یک پورت به USB-to-UART متصل است.
- پورت دیگر مستقیماً به USB داخلی ESP32-S3 متصل است.
در نسخههای رایج این برد، USB-to-UART با تراشهای مانند CH343P انجام میشود.
برای نصب اولیه چه کار کنیم؟
پیشنهاد من این است که برای اولین نصب MicroPython، از پورت USB-to-UART استفاده کنید. این روش معمولاً دردسر کمتری دارد.
دانلود Firmware مناسب ESP32-S3
این مهمترین مرحله است. به صفحه رسمی MicroPython بروید:
صفحه رسمی دانلود MicroPython برای ESP32-S3
در صفحه دانلود قسمت ESP32-S3 را پیدا کنید
در حال حاضر نسخه Stable موجود در صفحه رسمی MicroPython v1.29.0 است.
کدام فایل را دانلود کنیم؟
برای این برد، Firmware عمومی ESP32_GENERIC_S3 مناسب است.
MicroPython اعلام کرده که این Firmware روی اکثر بردهای ESP32-S3 با حداقل 4MB Flash، از جمله ماژولهای WROOM، کار میکند و پشتیبانی از PSRAM را نیز دارد.
نکته مهم درباره N8R2 و PSRAM
برای برد
ESP32-S3-WROOM-1-N8R2Flash = 8MB
PSRAM = 2MBMicroPython در Firmware عمومی ESP32-S3 میتواند PSRAM متصل را تشخیص دهد و Heap مناسب را اختصاص دهد.
بنابراین برای N8R2 معمولی لازم نیست Firmware مربوط به Octal PSRAM را انتخاب کنید.
در صفحه MicroPython یک بخش جداگانه برای Octal-SPIRAM وجود دارد، اما N8R2 استاندارد از PSRAM نوع Quad استفاده میکند؛ جدول رسمی Espressif نیز N8R2 را با 8MB QD Flash + 2MB QD PSRAM معرفی میکند.
پس انتخاب ما:
ESP32_GENERIC_S3 → Stable Release → فایل .bin
است.
نصب esptool
حالا باید ابزاری به نام esptool نصب کنیم.
اگر Python روی کامپیوتر شما نصب است، CMD یا PowerShell را باز کنید و بنویسید:
pip install esptoolبعد بررسی کنید:
esptool versionاگر نسخه نمایش داده شد، نصب موفق بوده است.
در نسخههای جدید esptool معمولاً دستور
esptoolاستفاده میشود؛ در برخی نصبهای قدیمی ممکن استesptool.pyباشد. خود MicroPython نیز به این تفاوت اشاره کرده است.
اتصال ESP32-S3 به کامپیوتر
حالا کابل USB-C را وصل کنید.
توصیه: برای اولین بار، پورت USB-to-UART را امتحان کنید.
در Windows وارد:
Device Manager
شوید.
قسمت:
Ports (COM & LPT)
را باز کنید.
ممکن است چیزی شبیه این ببینید:
USB-Enhanced-SERIAL CH343 (COM7)یا:
USB-SERIAL CH340 (COM7)شماره COM برای هر کامپیوتر متفاوت است.
مثلاً فرض میکنیم پورت شما:
COM7است.
تست ارتباط با ESP32-S3
قبل از پاک کردن Flash، بهتر است ارتباط را آزمایش کنیم.
در CMD بنویسید:
esptool --port COM7 chip_idاگر همه چیز درست باشد، اطلاعاتی از تراشه ESP32-S3 نمایش داده میشود.
اگر بهجای COM7 پورت دیگری دارید، همان را وارد کنید.
مثلاً:
esptool --port COM5 chip_idاگر ESP32-S3 شناسایی نشد چه کنیم؟
اینجا یکی از مهمترین نکات این برد است.
روی برد دو دکمه وجود دارد:
BOOT
و
RESET
برای وارد کردن ESP32-S3 به حالت Bootloader:
روش دستی
- کابل USB را وصل کنید.
- دکمه BOOT را نگه دارید.
- یک بار دکمه RESET را فشار دهید.
- حدود یک ثانیه صبر کنید.
- دکمه BOOT را رها کنید.
اکنون ESP32-S3 باید در حالت Download/Bootloader Mode باشد.
این روش با نحوه ورود ESP32-S3 به Firmware Download Mode مطابقت دارد؛ در مستندات Espressif نیز نگهداشتن Boot و سپس Reset برای ورود به حالت دانلود توضیح داده شده است.
پاک کردن Flash
حالا که ارتباط برقرار شده، بهتر است Flash را کاملاً پاک کنیم.
دستور:
esptool --port COM7 erase_flashاگر پورت شما COM7 نیست، آن را تغییر دهید.
مثلاً:
esptool --port COM5 erase_flashاگر عملیات موفق باشد، در انتها پیامی مشابه:
Chip erase completed successfullyخواهید دید.
چرا Flash را پاک میکنیم؟
چون ممکن است قبلاً روی برد:
- Arduino
- ESP-IDF
- Firmware کارخانه
- برنامه دیگری
فلش شده باشد.
پاک کردن Flash باعث میشود نصب MicroPython از یک وضعیت تمیز شروع شود.
MicroPython نیز برای نصب اولیه همین روش را توصیه میکند.
فلش کردن MicroPython
فرض کنیم فایل Firmware را در Downloads قرار دادهایم و اسم آن مثلاً:
ESP32_GENERIC_S3-20260824-v1.29.0.binاست.
دستور کلی:
esptool --port COM7 --baud 460800 write_flash 0x0 firmware.binمثلاً:
esptool --port COM7 --baud 460800 write_flash 0x0 ESP32_GENERIC_S3-20260824-v1.29.0.binنکته بسیار مهم: در Firmware مربوط به ESP32-S3، آدرس شروع فلش طبق دستورالعمل رسمی MicroPython 0x0 است.
اگر خطای Flash دریافت کردید
اگر در حین فلش کردن خطایی شبیه:
Failed to writeیا:
No serial data receivedدیدید، اول سرعت را پایین بیاورید:
esptool --port COM7 write_flash 0x0 firmware.binیعنی گزینه:
--baud 460800را حذف کنید.
MicroPython نیز برای خطاهای حین فلش همین کاهش سرعت به سرعت پیشفرض را پیشنهاد میکند.
پایان نصب 🎉
اگر عملیات با موفقیت انجام شود، MicroPython روی ESP32-S3 شما نصب شده است.
حالا دیگر برد شما بهجای Firmware قبلی، MicroPython را اجرا میکند.
اما هنوز باید بتوانیم با آن ارتباط برقرار کنیم.
برای این کار Thonny گزینه بسیار خوبی است.
نصب Thonny
به سایت رسمی Thonny بروید:
نسخه مناسب سیستمعامل خودتان را نصب کنید.
Thonny برای شروع کار با MicroPython بسیار مناسب است، چون هم:
- Editor
- REPL
- Serial connection
- Upload
- اجرای مستقیم کد
را در یک محیط ارائه میدهد.
تنظیم Thonny برای ESP32-S3
Thonny را باز کنید.
از منوی:
Tools → Options
و سپس:
Interpreter
را انتخاب کنید.
Interpreter را روی:
MicroPython (ESP32)قرار دهید.
سپس پورت مربوط به ESP32-S3 را انتخاب کنید.
مثلاً:
COM7و OK را بزنید.
اگر همه چیز درست باشد، در پایین Thonny باید پنجره Shell را ببینید.
چیزی شبیه:
MicroPython v1.29.0 on ESP32S3
>>>مشاهده خواهید کرد.
این یعنی:
موفقیت نصب بر روی ESP32-S3 و تست اولیه
حالا در Shell بنویسید:
print("Hello ESP32-S3")و Enter بزنید.
باید ببینید:
Hello ESP32-S3تست مشخصات ESP32-S3
برای اینکه مطمئن شویم واقعاً روی ESP32-S3 هستیم:
import sys
print(sys.implementation)و برای اطلاعات سیستم:
import os
print(os.uname())تست Wi-Fi
حالا یکی از جذابترین قسمتها را امتحان کنیم.
import network
import time
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect("YOUR_WIFI_NAME", "YOUR_WIFI_PASSWORD")
while not wifi.isconnected():
print("Connecting...")
time.sleep(1)
print("Connected!")
print(wifi.ifconfig())بهجای:
YOUR_WIFI_NAMEنام Wi-Fi و بهجای:
YOUR_WIFI_PASSWORDرمز Wi-Fi خودتان را قرار دهید.
اگر اتصال موفق باشد، چیزی شبیه این دریافت میکنید:
Connected!
('192.168.1.120', '255.255.255.0', '192.168.1.1', '8.8.8.8')🎉 حالا ESP32-S3 شما به اینترنت متصل شده است.
تست LED RGB داخلی برد
در بردی که تصویرش را فرستادید، LED RGB داخلی معمولاً به:
GPIO48متصل است. این موضوع برای این خانواده از بردهای دو USB-C نیز مستند شده است.
اما این LED یک LED معمولی نیست؛ از نوع WS2812 / Addressable RGB است.
بنابراین نمیتوانیم صرفاً بنویسیم:
Pin(48).value(1)و انتظار روشن شدن LED RGB را داشته باشیم.
برای کنترل آن میتوانیم از neopixel استفاده کنیم.
مثلاً:
from machine import Pin
import neopixel
rgb = neopixel.NeoPixel(Pin(48), 1)
rgb[0] = (255, 0, 0)
rgb.write()اگر LED داخلی برد به GPIO48 متصل باشد، باید قرمز شود.
برای سبز:
rgb[0] = (0, 255, 0)
rgb.write()برای آبی:
rgb[0] = (0, 0, 255)
rgb.write()و خاموش کردن:
rgb[0] = (0, 0, 0)
rgb.write()ساخت اولین برنامه واقعی
حالا میتوانیم یک برنامه ساده بسازیم که ESP32-S3 را به Wi-Fi وصل کند و LED RGB را روشن کند.
import network
import time
from machine import Pin
import neopixel
# RGB LED
rgb = neopixel.NeoPixel(Pin(48), 1)
# زرد = در حال اتصال
rgb[0] = (255, 255, 0)
rgb.write()
# Wi-Fi
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect("YOUR_WIFI_NAME", "YOUR_WIFI_PASSWORD")
while not wifi.isconnected():
time.sleep(0.5)
# سبز = اتصال موفق
rgb[0] = (0, 255, 0)
rgb.write()
print("Wi-Fi connected!")
print(wifi.ifconfig())در این مثال:
🟡 زرد → در حال اتصال به Wi-Fi
🟢 سبز → اتصال موفق
فایل boot.py و main.py چیست؟
بعد از اینکه با MicroPython کار کردید، با دو فایل مهم مواجه میشوید:
boot.py
main.pyboot.py
کدی که در boot.py قرار میدهید هنگام بوت شدن MicroPython اجرا میشود.
main.py
برنامه اصلی شماست.
مثلاً:
main.pyشامل:
print("ESP32-S3 started")باشد.
وقتی ESP32-S3 را Reset کنید، این کد دوباره اجرا خواهد شد.
آیا هر بار باید Firmware را فلش کنیم؟
خیر.
این یکی از مزایای MicroPython است.
Firmware را یک بار نصب میکنید.
بعد از آن برنامههای Python را داخل فایلهایی مانند:
main.py
boot.py
wifi.py
sensor.pyذخیره میکنید.
پس دیگر برای هر تغییر برنامه نیازی به esptool ندارید.
آیا 2MB PSRAM در MicroPython قابل استفاده است؟
بله.
این یکی از مزیتهای نسخه N8R2 است.
برد شما:
8MB Flash
+
2MB PSRAMدارد.
Firmware عمومی ESP32-S3 MicroPython میتواند PSRAM را تشخیص دهد و از آن برای افزایش Heap استفاده کند.
برای پروژههای سنگینتر مثل:
- Web Server
- JSONهای بزرگ
- Bufferهای شبکه
- پردازش داده
- تصاویر کوچک
- بعضی پروژههای AI/ML
- رابط کاربری
این حافظه اضافی میتواند مفید باشد.
یک اشتباه رایج: انتخاب Firmware اشتباه
اگر روی اینترنت جستجو کنید، Firmwareهای زیادی پیدا خواهید کرد:
ESP32
ESP32-C3
ESP32-C6
ESP32-S2
ESP32-S3
ESP32-H2برای برد شما باید:
ESP32_GENERIC_S3
را انتخاب کنید.
نه:
ESP32_GENERICو نه:
ESP32_GENERIC_C3و نه:
ESP32_GENERIC_S2صفحه رسمی MicroPython نیز برای ESP32-S3 Firmware جداگانه ارائه میکند.
تفاوت ESP32-WROOM و ESP32-S3-WROOM
این نکته برای جستجوی اینترنتی بسیار مهم است.
اسم این ماژول:
ESP32-S3-WROOM-1است.
این با:
ESP32-WROOM-32یکی نیست.
بنابراین اگر جایی آموزشی دیدید که نوشته:
ESP32_GENERICالزاماً برای برد شما مناسب نیست.
برای برد شما:
ESP32-S3
↓
ESP32_GENERIC_S3را انتخاب کنید.
اگر برد توسط کامپیوتر شناسایی نشد
این چکلیست را بهترتیب انجام دهید:
① کابل USB را عوض کنید
بعضی کابلهای USB-C فقط برای شارژ هستند.
از کابل Data استفاده کنید.
② USB دیگر را امتحان کنید
این برد دو USB-C دارد.
اول USB-to-UART را امتحان کنید.
③ BOOT + RESET
دکمه:
BOOT
را نگه دارید.
سپس:
RESET
را یک بار فشار دهید.
بعد BOOT را رها کنید.
④ دوباره COM Port را بررسی کنید
در Windows:
Device Manager
↓
Ports (COM & LPT)⑤ دوباره chip_id را اجرا کنید
esptool --port COM7 chip_idاگر خطای No serial data received گرفتیم
یکی از رایجترین خطاها:
No serial data receivedاست.
در این حالت اول برد را دستی وارد Bootloader کنید:
نگه داشتن BOOT
↓
فشار RESET
↓
رها کردن BOOTسپس دوباره:
esptool --port COM7 chip_idرا اجرا کنید.
این روش برای بردهای ESP32-S3 که از USB داخلی استفاده میکنند نیز اهمیت ویژهای دارد.
جمعبندی نصب در یک نگاه
کل فرآیند شما در نهایت این است:
ESP32-S3-WROOM-1 N8R2
│
▼
اتصال USB-C
│
▼
پیدا کردن COM Port
│
▼
دانلود ESP32_GENERIC_S3
│
▼
نصب esptool
│
▼
ورود به Bootloader
│
▼
erase_flash
│
▼
Flash کردن فایل .bin
│
▼
اتصال به Thonny
│
▼
MicroPython REPL
│
▼
اجرای اولین برنامه Python
│
▼
Wi-Fi + GPIO + Sensor + Web Serverدستورات نهایی برای Windows
اگر پورت شما COM7 باشد، مهمترین دستورات اینها هستند:
نصب esptool
pip install esptoolتست ESP32
esptool --port COM7 chip_idپاک کردن Flash
esptool --port COM7 erase_flashفلش MicroPython
esptool --port COM7 --baud 460800 write_flash 0x0 firmware.binو بعد:
Thonny
↓
MicroPython (ESP32)
↓
COM7نتیجه و جمع بندی نهایی
برای برد ESP32-S3-WROOM-1 N8R2 موجود در تصویر، انتخاب مناسب این است:
MicroPython → ESP32_GENERIC_S3 → Stable
.bin
این برد به دلیل داشتن 8MB Flash + 2MB PSRAM برای MicroPython بسیار مناسب است و دو USB-C آن نیز امکان استفاده از USB-to-UART و USB داخلی ESP32-S3 را فراهم میکند.
منبع اصلی Firmware:
MicroPython ESP32-S3 Downloads
مستندات رسمی نصب MicroPython روی ESP32:
MicroPython ESP32 Getting Started
