🛠️ نصب ESP32 در آردوینو IDE: از آدرس Board Manager تا درایور CP2102 و CH340 و اولین آپلود
برد ESP32 را خریدهای، به کامپیوتر وصلش کردهای و آردوینو IDE را باز کردهای، ولی در لیست بردها اثری از ESP32 نیست. طبیعی است: آردوینو IDE بهصورت پیشفرض فقط بردهای خود آردوینو را میشناسد و ESP32 را باید جداگانه اضافه کنی. در این راهنما نصب ESP32 در آردوینو IDE را قدمبهقدم انجام میدهیم: اضافه کردن آدرس Board Manager، نصب پکیج، نصب درایور USB (CP2102 یا CH340)، انتخاب برد و پورت، و در آخر آپلود اولین برنامه برای اطمینان از اینکه همهچیز درست است.
اگر فعلاً برد نداری یا نصب طول میکشد، نگران نباش: همین کدها را میتوانی همین حالا در شبیهساز آنلاین اجرا کنی؛ همان تجربهای که در ووکوی (Wokwi) داری. آخر مقاله توضیح دادهایم چطور.
چه چیزهایی لازم است؟
- یک برد ESP32 (معمولاً ESP32 DevKit V1 سیپایه یا ۳۸ پایه)
- یک کابل USB داده. خیلی از کابلهای میکرو USB که همراه پاوربانک و هندزفری میآیند فقط دو سیم برق دارند و کامپیوتر برد را نمیبیند. این رایجترین دلیل شکست در همین مرحله است.
- آردوینو IDE نسخهی ۲ (نسخهی ۱٫۸ هم کار میکند ولی منوها کمی فرق دارند)
- اینترنت پایدار برای دانلود پکیج ESP32. حجم این پکیج چند صد مگابایت است و دانلودش ممکن است زمان ببرد.
قدم ۱: اضافه کردن آدرس Board Manager
آردوینو IDE را باز کن و از منوی File گزینهی Preferences را بزن (در مک: Arduino IDE و بعد Settings). پایین پنجره کادری هست به اسم Additional boards manager URLs. این آدرس را داخلش بگذار:
https://espressif.github.io/arduino-esp32/package_esp32_index.json
این آدرس رسمی شرکت Espressif، سازندهی ESP32، است. اگر قبلاً آدرس دیگری (مثلاً برای ESP8266) در این کادر داری، آن را پاک نکن؛ آدرسها را با ویرگول از هم جدا کن یا روی آیکون کنار کادر بزن و هر آدرس را در یک خط بنویس. آدرس قدیمیتری که با raw.githubusercontent.com شروع میشود هم هنوز در بعضی آموزشها دیده میشود و کار میکند، ولی آدرس بالا بهروزتر است.
قدم ۲: نصب پکیج esp32 از Boards Manager
از منوی Tools به Board و بعد Boards Manager برو (در IDE 2 آیکون بردها در نوار سمت چپ هم همین را باز میکند). در کادر جستوجو بنویس esp32. دو نتیجه ممکن است ببینی؛ مورد درست esp32 by Espressif Systems است، نه «Arduino ESP32 Boards» که فقط برای بردهای ESP32 خود شرکت آردوینو است. روی Install بزن و صبر کن تا دانلود و نصب تمام شود.
ledcAttach(pin, freq, bits) نوشته میشود و در نسخهی ۲ با ledcSetup و ledcAttachPin. اگر کد یک آموزش قدیمی خطای «was not declared» داد، اول نسخهی هسته را چک کن. توضیح کامل در آموزش PWM با ledc است.قدم ۳: نصب درایور USB (CP2102 یا CH340)
خود ESP32 مستقیم USB نمیفهمد؛ روی برد یک تراشهی کوچک کنار سوکت USB هست که USB را به سریال تبدیل میکند. برای اینکه ویندوز آن را بشناسد، گاهی باید درایورش را نصب کنی. با یک ذرهبین یا دوربین گوشی، نوشتهی روی این تراشه را بخوان:
| نوشتهی روی تراشه | درایور | اسم در Device Manager |
|---|---|---|
| CP2102 یا CP2104 (مربعی کوچک) | CP210x USB to UART Bridge VCP از سایت Silicon Labs | Silicon Labs CP210x USB to UART Bridge |
| CH340C، CH340G یا CH9102 | درایور CH340/CH341 (یا CH9102) از سایت WCH | USB-SERIAL CH340 |
بعد از نصب، برد را وصل کن و در ویندوز Device Manager را باز کن. زیر بخش Ports (COM & LPT) باید یک خط جدید مثل COM5 ببینی. اگر بهجایش زیر Other devices یک دستگاه با علامت زرد تعجب هست، درایور درست نصب نشده است. اگر هیچ چیز تازهای ظاهر نمیشود، تقریباً همیشه مشکل از کابل است.
- ویندوز ۱۰ و ۱۱: اغلب درایور CP210x و CH340 را خودش از Windows Update نصب میکند. اول بدون نصب دستی امتحان کن.
- مک: روی نسخههای جدید معمولاً درایور لازم نیست؛ پورت با اسمی مثل
/dev/cu.usbserial-0001یا/dev/cu.SLAB_USBtoUARTظاهر میشود. - لینوکس: درایورها داخل کرنل هستند و پورت به شکل
/dev/ttyUSB0میآید. اگر خطای دسترسی گرفتی، کاربرت را به گروهdialoutاضافه کن (sudo usermod -a -G dialoutو بعد نام کاربری) و یک بار خارج و وارد شو.
قدم ۴: انتخاب برد و پورت
از Tools و Board و esp32، گزینهی ESP32 Dev Module را انتخاب کن. این گزینه برای تقریباً همهی بردهای DevKit با ماژول WROOM-32 درست است. اگر دقیقاً برد DOIT سیپایه داری، DOIT ESP32 DEVKIT V1 هم مناسب است. بعد از Tools و Port همان پورتی را که در Device Manager دیدی انتخاب کن. چند تنظیم دیگر هم در منوی Tools ظاهر میشود که مقدار پیشفرضشان برای شروع درست است:
| تنظیم | مقدار پیشنهادی | توضیح |
|---|---|---|
| Upload Speed | 921600 | اگر آپلود وسط کار خطا داد، 115200 کن |
| CPU Frequency | 240MHz (WiFi/BT) | بیشترین سرعت |
| Flash Size | 4MB | اندازهی حافظهی بیشتر بردها |
| Partition Scheme | Default 4MB with spiffs | اگر برنامهات خیلی بزرگ شد، Huge APP را انتخاب کن |
| Erase All Flash Before Sketch Upload | Disabled | فعالش کنی، فایلهای SPIFFS و تنظیمات ذخیرهشده هم پاک میشوند |
قدم ۵: آپلود اولین برنامه
این برنامهی کوچک هم چراغ آبی روی برد را چشمک میزند و هم در سریال مانیتور مدل تراشه و حافظهی آزاد را چاپ میکند. اگر هر دو را دیدی، نصب کامل و درست است.
// ESP32 install test: blink the on-board LED and print chip info.
const int LED = 2; // the blue LED on most ESP32 DevKit boards
void setup() {
Serial.begin(115200);
delay(500); // give the USB serial a moment
pinMode(LED, OUTPUT);
Serial.println("ESP32 is alive!");
Serial.print("Chip model: ");
Serial.println(ESP.getChipModel());
Serial.print("Free heap (bytes): ");
Serial.println(ESP.getFreeHeap());
}
void loop() {
digitalWrite(LED, HIGH);
delay(300);
digitalWrite(LED, LOW);
delay(700);
Serial.print("Uptime: ");
Serial.print(millis() / 1000);
Serial.println(" s");
}
Serial.begin(115200)سرعت رایج برای ESP32. در سریال مانیتور هم عدد پایین پنجره را روی 115200 بگذار، وگرنه حروف درهم میبینی.ESP.getChipModel()اسم تراشه را برمیگرداند؛ مثلاً ESP32-D0WDQ6. اگر این خط را میبینی، یعنی کامپایلر ESP32 درست نصب شده است.ESP.getFreeHeap()حافظهی RAM آزاد را میگوید. ESP32 بعد از روشن شدن معمولاً حدود ۳۰۰ کیلوبایت RAM آزاد دارد؛ خیلی بیشتر از دو کیلوبایت آردوینو اونو.- در
loopزمان روشن بودن برد را هر ثانیه چاپ میکنیم تا مطمئن شوی برنامه گیر نکرده است.
روی دکمهی Upload (فلش رو به راست) بزن. اولین کامپایل ESP32 چند دقیقه طول میکشد؛ دفعههای بعد خیلی سریعتر است. در پایین پنجره متنی مثل Connecting........ میبینی. اگر نقطهها زیاد شد و خطا داد، در همین لحظه دکمهی BOOT روی برد را نگه دار تا درصد آپلود شروع شود و بعد رها کن. وقتی پیام Hard resetting via RTS pin آمد، برنامه روی برد است.
خطاهای رایج نصب و راهحلشان
| پیام یا علامت | علت | راهحل |
|---|---|---|
| ESP32 در لیست بردها نیست | آدرس Board Manager اشتباه یا پکیج نصب نشده | آدرس را دوباره کپی کن و در Boards Manager پکیج Espressif را نصب کن |
| منوی Port خاکستری است | کابل شارژی یا درایور نصبنشده | کابل دادهی دیگری امتحان کن، بعد درایور را نصب کن |
| Failed to connect to ESP32: Timed out waiting for packet header | برد خودکار به حالت آپلود نرفته | هنگام Connecting دکمهی BOOT را نگه دار |
| دانلود پکیج وسط کار قطع میشود | اینترنت ناپایدار | دوباره Install بزن؛ فایلهای دانلودشده نگه داشته میشوند |
| A fatal error occurred: MD5 of file does not match | سرعت آپلود برای کابل زیاد است | Upload Speed را 115200 کن |
| Servo.h: This library only supports boards with an AVR... | کتابخانهی مخصوص آردوینو | از ESP32Servo استفاده کن |
برای همهی حالتهای خطای آپلود، یک مقالهی جدا داریم: رفع خطای آپلود ESP32. اگر کتابخانهای لازم داشتی (مثل ESP32Servo یا PubSubClient)، از Tools و Manage Libraries نصبش کن؛ راهنمای کتابخانههای آردوینو این بخش را کامل توضیح داده است.
بدون نصب: اجرا در شبیهساز
نصب پکیج ESP32 و درایور گاهی یک عصر کامل وقت میگیرد، مخصوصاً با اینترنت کند. اگر میخواهی همین امروز کد بنویسی، برد ESP32 تینکرکد فارسی در مرورگر اجرا میشود و چیزی نصب نمیکند. برنامهی تست بالا را میتوانی همانجا اجرا کنی و چشمک زدن LED و پیامهای سریال را ببینی. باز کردن و خواندن مثالها رایگان است و اجرای برد ESP32 به اشتراک Plus نیاز دارد. پروژهی آمادهی «سلام ESP32» نقطهی شروع خوبی است و اگر میخواهی کد را واقعاً با کامپایلر ++C بسازی، دربارهی اجرای واقعی و کامپایل آنلاین بخوان. این شبیهساز روی اینترنت ملی هم کار میکند، پس اگر wokwi.com برایت کند است، جایگزین خوبی است. بعد که نصب روی کامپیوتر تمام شد، همان کد را بدون تغییر روی برد واقعی آپلود کن.
اشتباههای رایج
- پکیج «Arduino ESP32 Boards» را نصب کردهای: آن برای بردهای Nano ESP32 خود آردوینو است. پکیج Espressif را نصب کن.
- بعد از آپلود سریال مانیتور چیزی نشان نمیدهد: سرعت را روی 115200 بگذار و یک بار دکمهی EN را بزن تا برنامه از اول اجرا شود.
- آپلود هر بار با BOOT کار میکند ولی بدون آن نه: روی بعضی بردهای ارزان مدار ریست خودکار ضعیف است. یک خازن ۱۰ میکروفاراد بین EN و GND این مشکل را حل میکند.
- چیزی به GPIO0، GPIO2 یا GPIO12 وصل است: اینها strapping pin هستند و میتوانند جلوی آپلود یا بوت را بگیرند؛ جزئیاتش را در پین اوت ESP32 ببین.
نصب تمام شد؟ اولین پروژهی واقعی را بساز: چشمکزن دو LED با ESP32 و بعد وصل شدن به وایفای. همهی آموزشهای این برد در صفحهی ESP32 هستند.
بدون نصب، ESP32 را در مرورگر امتحان کن 🛠️سؤالهای رایج
آدرس Board Manager برای ESP32 چیست؟
آدرس رسمی Espressif این است: https://espressif.github.io/arduino-esp32/package_esp32_index.json که باید در File و Preferences در کادر Additional boards manager URLs قرار بگیرد.
چرا پورت ESP32 در آردوینو IDE دیده نمیشود؟
یا درایور تراشهی USB (CP2102 یا CH340) نصب نیست، یا کابل فقط شارژی است و سیم داده ندارد. اول کابل دیگری امتحان کن و بعد در Device Manager ببین برد با چه اسمی شناخته میشود.
در لیست بردها کدام را برای ESP32 DevKit انتخاب کنم؟
گزینهی ESP32 Dev Module برای تقریباً همهی بردهای DevKit با ماژول WROOM-32 کار میکند. گزینهی DOIT ESP32 DEVKIT V1 هم برای همان برد سیپایه درست است.
بدون نصب هیچ چیزی میشود کد ESP32 را امتحان کرد؟
بله، در یک شبیهساز آنلاین مثل ووکوی یا شبیهساز فارسی تینکرکد میتوانی کد ESP32 را در مرورگر اجرا کنی و بعد که برد و نصب آماده شد، همان کد را روی برد واقعی بریزی.