پروژه و ساخت

آموزش کامل نصب میکرو پایتون روی ESP32-S3

مقدمه

اگر یک برد 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

شناسه: 60150340

ناموجود

13,750,000 ریال
تعداد در بسته

,

انتخاب گزینه‌ها این محصول دارای انواع مختلفی می باشد. گزینه ها ممکن است در صفحه محصول انتخاب شوند

مشخصات برد مورد استفاده

مشخصات دقیق برد توسعه ESP32-S3-WROOM-1 N8R2

ویژگیمقدار
MCUESP32-S3
ماژولESP32-S3-WROOM-1
Flash8 MB
PSRAM2 MB
Wi-Fi2.4 GHz 802.11 b/g/n
BluetoothBluetooth 5 LE
CPUDual-Core Xtensa LX7 تا 240MHz
USBدو عدد USB Type-C
LED RGBGPIO48
دکمه Bootدارد
دکمه Resetدارد
تصاویر معرفی پین های برد ESP32-S3
https://images.openai.com/static-rsc-4/U9HKW3N5nKXImYLCFnHqpY2jJOh3kYu2Wlib8BwAZavcElN--PDzoYRj6b7PJr4vGg1BoVuTor1VcBPHA5o8AvwN4GSgdBf0cfD1T0yZ72nauiqllRz9g4fZtqsbnWlBH0EQ_c40nRntKGn5PUXbSuTfNphKIAP2_mWtY2vwjwTVuKYgirrUvNVWKMn0Ehui?purpose=fullsize
 
https://images.openai.com/static-rsc-4/4wRLvQB44267_S_GgZV6o9jIkI0BsSeJSVMZ872i-ohjk8mrYiguuD2TNPU7qiNStwWsqwIJMO-wKLxaD9u2TQUJS0KjqDDClOwuX_FIYMUXFI_QpmV0OL81PQ_By7LuT4mXF3tdyrzA9KrFXUq32hvyIp819S2pYlzG7mPknCKNQEcmW_yL0xF-Vxq9msQk?purpose=fullsize
 

در مدل 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-N8R2
مشخصات حافظه FLASH , PSRAM به این شکل است:
Flash = 8MB
PSRAM = 2MB

MicroPython در 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:

روش دستی

  1. کابل USB را وصل کنید.
  2. دکمه BOOT را نگه دارید.
  3. یک بار دکمه RESET را فشار دهید.
  4. حدود یک ثانیه صبر کنید.
  5. دکمه 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 IDE

نسخه مناسب سیستم‌عامل خودتان را نصب کنید.

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.py

boot.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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *