آموزش Espآموزش ESP32آموزش آردوینوآموزش اینترنت اشیا

آموزش جامع برنامه نویسی برد ESP32 با آردوینو

سلام. آموزش جامع و مرحله به مرحله برنامه نویسی برای برد ESP32 با کامپایلر آردوینو (تنظیم Arduino IDE) را آماده کردیم.

آموزش نوشتن برنامه با Arduino برای برد وایفای ESP32

آموزش نوشتن برنامه با Arduino برای برد وایفای ESP32

شرکت Espressif Systems برد ESP8266-01 را ساخت که در ها را برای بسیاری از علاقه مندان برای ورود به دنیای IoT باز کرد. از آن زمان زمینه IoT یا همان اینترنت اشیا به شدت در حال توسعه است و بسیاری از محصولات بازار را به خود اختصاص داده اند. این ماژول کوچک 8 دلاری ارزان قیمت ، یک پردازنده 32 بیتی دو هسته ای دارد. همچنین دارای ماژول Wi-Fi و بلوتوث دو حالته داخلی است که بسیار مناسب برای کلیه پروژه های اساسی الکترونیک است.

ما در این آموزش آردوینو نحوه برنامه نویسی برای برد های esp32 در محیط کامپایلر Arduino را آموزش میدهیم. توجه داشته باشید آردوینو قبلا از برد های ESP32 پشتیانی نمیکرد اما اکنون به صورت رسمی از برنامه نویسی برای این برد ها پشتیبانی میکند.

همچنین آموزش برنامه نویسی ESP8266 را مشاهده کنید.

موارد مورد نیاز برای این آموزش

  1. ماژول ESP32
  2. آردوینو IDE –
  3. کابل برنامه نویسی (کابل میکرو USB)
قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

دیتاشیت ماژول ESP32

بیایید نگاهی به ماژول ESP32 بیندازیم. این ماژول کمی بزرگتر از ماژول ESP8266-01 است. بیایید این برد را به قسمتهای کوچک تقسیم کنیم.

دیتاشیت ماژول ESP32
دیتاشیت ماژول ESP32

همانطور که می بینید قلب این ماژول ESP-WROOM-32 است که یک ریزپردازنده 32 بیتی است. همچنین دارای دو دکمه و LED است که در زیر توضیح داده شده اند.

جک میکرو USB: جک micro USB برای اتصال ESP32 به کامپیوتر از طریق کابل USB استفاده می شود. این برای برنامه نویسی ماژول ESP استفاده می شود و می تواند برای اشکال زدایی سریالی نیز مورد استفاده قرار گیرد زیرا از ارتباط سریال پشتیبانی می کند.

دکمه EN: دکمه EN دکمه تنظیم مجدد ماژول ESP است. با فشار دادن این دکمه ، کد در حال اجرا در ماژول ESP بازنشانی می شود.

دکمه Boot : این دکمه برای آپلود برنامه از Arduino به ماژول ESP استفاده می شود. این دکمه پس از کلیک روی نماد بارگذاری روی Arduino IDE باید فشرده شود. وقتی دکمه Boot به همراه دکمه EN فشرده می شود ، ESP وارد حالت بارگذاری سیستم عامل می شود. (با این قضیه سیستم عامل بازی نکنید مگر اینکه بدانید چه کاری انجام می دهید !)

چراغ قرمز: از چراغ قرمز موجود در برد برای نشان دادن وضعیت تغذیه استفاده می شود. در هنگام روشن شدن برد ، قرمز می شود.

چراخ آبی: چراغ آبی موجود در صفحه به پین ​​GPIO متصل است. می توان آن را از طریق برنامه نویسی روشن یا خاموش کرد. در برخی از تخته های کلون شده چینی این ال ای دی به رنگ قرمز نیز میباشد.

پین های I/O: این قسمت است که پیشرفت اساسی در آن اتفاق افتاده است. بر خلاف ESP8266 ، در ESP32 می توانیم از طریق پین های بازشو به تمام پین های I/O ماژول دسترسی پیدا کنیم. این پین ها قادر به خواندن / نوشتن دیجیتال ، خواندن / نوشتن آنالوگ ، PWM ، IIC ، SPI ، DAC و موارد دیگر هستند. بعداً بیشتر راجع به اینها توضیح میدهیم.

ESP-WROOM-32: این قلب ماژول ESP32 است. این ریزپردازنده 32 بیتی است که توسط سیستم های اسپرسیف تولید شده است.

این ماژول دارای وای فای و بلوتوث داخلی است. همچنین دارای یک رم 512 کیلوبایتی و فلاش 16 مگابایتی است. این ماژول دارای 36 پین GPIO است. و از پروتکل های ارتباطی SPI ، IIC ، I2S ، UART ، CAN پشتیبانی میکند. همچنین دارای 16 کانال آنالوگ به دیجیتال ADC است. این کانال ها 12 بیتی هستند. همچنین دارای 2 کانال DAC هشت بیتی است.

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

آماده سازی نرم افزار آردوینو برای برنامه نویسی برد ESP32

مرحله 1: ابتدا آخرین نسخه نرم افزاز Arduino را از این لینک دانلود کنید : دانلود آردوینو آخرین نسخه

مرحله 2: اگر قبلا تا بحال از ESP32 با آردوینو استفاده نکردید این مرحله را نادیده بگیرید. در صورتی که قبلا استفاده کرده اید ابتدا باید در Documents/Arduino/hardware پوشه Espriff را حذف کنید.

مرحله 3: پس از نصب ، کامپایلر Arduino را باز کنید و به Files -> Preferences بروید.

نصب تنظیمات برد ESP روی کامپایلر Arduino

سپس در قسمتی که در تصویر بالا مشخص شده همه متن زیر را کپی کنید و در آن جا قرار بدهید.

https://dl.espressif.com/dl/package_esp32_index.json, 
http://arduino.esp8266.com/stable/package_esp8266com_index.json

سپس روی Ok کلیک کنید.

مرحله 4: اکنون به Tools -> Boards -> Board Managers بروید. سپس ESP32 را جستجو کنید. اگر URL به درستی جایگذاری شد پنجره شما باید صفحه زیر را با دکمه Install پیدا کند ، فقط بر روی دکمه Install کلیک کنید تا برد نصب شود.

راه اندازی ماژول وایفای ESP در Arduino

از اتصال اینترنت مطمئن باشید و صبر کنید تا نصب کامل شود. پس از نصب نرم افزار آردوینو آماده برنامه نویسی برای برد ESP32 است.

برنامه نویسی برد ESP32 با آردوینو

مرحله 1: برد ESP32 خود را از طریق کابل میکرو USB به رایانه متصل کنید. مطمئن شوید که چراغ قرمز روی ماژول روشن میشود.

مرحله 2: Arduino IDE را باز کنید و به Tools -> Board بروید و مطابق عکس زیر برد ESP32Dev را انتخاب کنید.

انتخاب برد ESP32 در Arduino

مرحله 3: Device Manager را باز کنید و بررسی کنید که ESP32 شما به کدام پورت وصل شده است.

Device Manager برای پیدا کردن پورت COM

همانطور که در تصویر بالا نشان داده شده است ، ماژول من به COM 8 متصل شده است.

مرحله 4: به Arduino IDE و در و قسمت Tools -> Port بروید و پورتی را انتخاب کنید که ESP شما به آن متصل است. پس از انتخاب ، باید چیزی شبیه به این را در گوشه سمت چپ پایین IDE مشاهده کنید.

اطمینان از متصل شدن برد ESP32 به کامپیوتر
مرحله 5: حالا برای تست ما کد پروژه چشمک زن ال ای دی را در برد خود بارگذاری میکنیم. طبق این برنامه LED ما باید در هر 1 ثانیه چشمک بزند.

int LED_BUILTIN = 2; // تنظیم پین ال ای دی
void setup() {
pinMode (LED_BUILTIN, OUTPUT); // تنظیم پین به عنوان خروجی
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // ال ای دی روشن
delay(1000); // به مدت 1 ثانیه
digitalWrite(LED_BUILTIN, LOW); // ال ای دی خاموش
delay(1000); // به مدت 1 ثانیه
}

مرحله 6: برای کامپایل کد ، روی کامپایل کلیک کنید.

توجه داشته باشید برای برخی از ماژول ها ، لازم است که هنگام بارگذاری ، دکمه Boot را نگه دارید تا از خطا جلوگیری شود.

می توانید پیش بروید و سایر برنامه هایی که به صورت نمونه در آردوینو موجود است را در File -> Example  -> ESP32 امتحان کنید تا با سایر ویژگی های ESP32 آشنا شوید. اگر مشکلی داشتید ، سؤال خود را در بخش نظرات پایین صفحه ارسال کنید.

4.3 (18 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

61 نظر

  1. با سلام
    من کامپیوتر ندارم با گوشی برنامه نویسی میکنم
    الان میخوام یه اسپیکر بلوتوثی بسازم
    همش با ارور برمیخورم می نویسه دیاکتور sound Data.h وجود ندارد
    چه کتابخانه ای و از کجا باید باید روی آرداینو گوشیم نصب کنم؟
    لطفا منو راهنمایی کنید
    ممنون

  2. سلام خسته نباشید
    یه چیزی شنیدم میخواستم بدونم واقعا میشه از هر جای جهان از گوگل و صفحه وب این برد رو کنترل کرد؟
    و اگر درسته کجا باید این کار رو یاد بگیرم؟

  3. این برد قابلیت رو داره که بتونم از طریق بلوتوث سرعت موتوری رو زیاد و کم کنم؟
    راستش میخواستم یه کوادکوپتر فیلم بردار بسازم

  4. سلام
    .‌تشکر از توضیحات مفید شما
    برای اینکه بتونم با برد ESP32 و ESP32 camیه مینی کوادکوپتر بسازم کدوم دوره آردینو رو باید ببینم

    1. سلام عزیز
      در دوره های ما تابحال کوادکوپتر اموزش داده نشده است اما برای یادگیری برنامه نویسی esp32-cam و esp32 دوره esp32 را باید مشاهده کنید

  5. با سلام و عرض ادب

    من به پروژه های الکترونیک علاقه دارم مخصوصا پروژه هایی که با برنامه نویسی همراه باشه
    توضیحات شما در این باره بسیار مفید بودند
    سوالم اینه که برد ESP32 مهارت کنترل کوادکوپتر و رباط مسیر یاب رو داره؟

  6. ببخشید برای استفاده از حداکثر کارایی این برد برنامه نویسی به زبان میکرو پایتون بهتره یا زبان سی اردوینو و در این دوره آموزشی با کدام یک از اینها اموزش داده‌اید من قبلا دوره اردوینو شما را گرفتم و خیلی راضی هستم میخواستم ببینم برای کار با esp 32 دوره میکروپایتون تهیه کنم یا دوره مخصوص esp32

    1. سلام عزیز
      خوشحالیم که از دوره آردوینو رضایت داشتید
      منابع برای برنامه نویسی ESP32 با آردوینو بهتر هست و بیشتر آردوینو پیشنهاد میشود.
      دوره میکروپایتون برای برد رزبری پای پیکو مناسب هست

  7. با سلام و ممنون از آموزش خوب شما لطفا نحوه استفاده از بلوتوث و وای‌فای داخلی این برد رو هم اموزش بدهید

    1. سلام عزیز
      در دوره ESP32 به صورت کامل آموزش داده شده

  8. با سلام خسته نباشید
    من برنامه نویسی esp32 را تموم کردم می خواستم بدونم چگونه باید کلید نرم افزاری براش طراحی کنم و چگونه از گوگل بهش متصل بشم

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

  9. سلام
    آموزش هایی در مورد برنامه نویسی ESP32 با Arduino Droid هم به صورت رایگان بگزارید خیلی ها نیاز دارند

    1. سلام، آیا esp32 از توابع ریاضی پشتیبانی میکنند

  10. سلام و عرض ادب جناب مهندس رحیمی
    مثل همیشه با توضیحات و آموزش های بی نظیر شما مواجه شدیم.

    موفق و موید و برقرار باشید.

    1. سلام عزیز
      خوشحالم که رضایت داشتین

  11. سلام و تشکر از سایت خوبتون.
    من هر چی سعی میکنم برنامه رو روی برد آپلود کنم ارور ailed uploading: uploading error: exit status 2 رو میده.
    قبلا هم برای برد آردوینو باهاش مواجه شده بودم اما یادم نمیاد چجوری مشکل رو رفع کردم.
    من حتی در قسمت Device Manager هم برد رو پیدا کرده بودم اما باز هم ارور می ده.
    یعنی مشکل میتونه از برد من باشه؟

    1. سلام عزیز
      متن کامل ارور را ارسال کنید.

  12. سلام
    از اینکه نوشته اید قسمت partition scheme را تغییر بدهید یعنی چه؟ لطف کنید بیشتر توضیح دهید.
    ممنان

  13. سلام
    من یک esp32cam با شیلد پروگرامر مخصوص اون را خریداری کرده ام . پس از انجام مراحل مورد نیاز در هنگام آپلود برنامه Camerawebserver پیغام خطا میدهد که حجم برنامه از حافظه esp32cam بیشتر است یا در هنگام آپلود برنامه های دیگر با حجم خیلی کمتر در مرحله connecting پیغام خطا میدهد که قایل اتصال به esp32 نمی باشد. در ضمن از کجا باید نوع esp32cam را فهمید(wrover یا al thinker ) چون با انتخاب هرکدام همین خطا ها را میدهد.
    تشکر

    1. سلام عزیز
      قسمت partition scheme را تغییر بدهید

  14. سلام وقتی یه برنامه ای رو پروگرام میکنیم رو esp32 بعد اگه دوباره یه برنامه دیگه ای رو پروگرام کنیم رو esp جایگزین برنامه اول میشه یا خیر؟

    1. سلام عزیز
      برنامه قبلی خودکار پاک میشود و برنامه جدید قرار میگیرد.

  15. سلام وقت بخیر آقای رحیمی
    من باید یک نمونه بردار ADC با 12 بیت و سرعت نمونه برداری 12 کیلو سمپل بر ثانیه بسازم. میخواستم بدونم این ماژول این قابلیت رو داره؟
    با سپاس

  16. سلام .پیغام شماره پورت esp که در پایین پنجره ide ظاهر میشود به صورت خودکار توسط نرم افزار اردیونو تشخیص داده میشود؟ یا بستگی به انتخاب ما در بخش اضافه کردن بورد esp در نرم افزار آردیونو می باشد؟ یعنی اگر مثلا ما بورد esp8266 داشته باشیم ولی در نرم افزار بورد esp32 را اضافه کنیم پورت کدام ورژن esp در پایین IDE نمایش داده خواهد شدیا بالعکس؟

    1. سلام عزیز
      شما باید پورت و برد رو خودتون در منوی Tools تعیین کنید و به صورت خودکار نیست. برای یادگیری بهتر میتونید دوره آردوینو یا اینترنت اشیا رو مشاهده کنید

  17. سلام.وقت شما بخیر. مرسی از مطالب خوبتون. یه سوال داشتم. من ماژول esp32 رو به چهارتا رله بابت پنکه اتاق وصل کردم و وقتی که برق خونه می ره اول باید جامپر ۵ ولت رو بکشم و بعد دکمه بوت رو بزنم تا برنامه ران بشه. می خواستم بپرسم چه راهکاری برای حل این مسئله هست که بعد از قطعی برق بوت درست انجام بشه و نیازی به جدا کردن جامپر تباشه.

  18. مدلشCP2102 USB to UART Bridge Controller هست که کامپیوتر بالا میاره ممنون

    1. در گوگل سرچ کنید درایور CP2102 ، دانلود و نصب کنید

  19. سلام خسته‌ نباشید آقای رحیمی من ماژول esp wroom 32یا esp 32 s راخریدم ولی هرکاری می کنم کامپیوترم نصب نمی کنه وصل می کنم بالا میاره جستجو می کنه اما پیغام میده . درایور نیازه نصب کنم درایور و باید از کجا وچه طوری دانلود و نصب کنم ممنون میشم راهنماییم کنین

    1. سلام عزیز
      از جایی که تهیه کردید بررسی کنید تراشه مبدلش چی هست، درایو اون رو نصب کنید ممکنه CH340 یا CP2102 و یا … باشه

  20. سلام مدلش ESP-WROOM-32 هست درایورش باید از کجا تهيه کرد ممنون

    1. مدل تراشه مبدل رو بگید مثلا CH340 یا …

  21. سلام آقای رحیمی من ماژول را به کامپیوتر وصل میکنم وصل نمی شه بالا میاره جستجو میکنه ولی نصب نمی کنه پیغام خطا می ده چیکار باید بکنم .مرسی

    1. سلام عزیز
      کدوم مدل رو تهیه کردید؟
      درایورش رو نصب کنید

  22. سلام.
    اگه نخواهیم از esp32_cam استفاده کنیم چه جوری میشه ماژول دوربین رو با این برد راه اندازی کرد و تصاویر رو ارسال کرد؟
    کد نویسیش با esp32_cam فرق داره؟یا همونه؟
    مدار شماتیک اون به چه صورته؟

  23. سلام وقت بخیر
    مشکلی برام امده که وقتی esp32 بهش تغذیه رو میدم
    هیچ عملکردی انجام نمبده حتی نمیتوانم پروگرام کنم
    فقط در صورتی کار میکنه که دکمه en رو نگهدارم تا امکان فعالیت اون اغاز بشه
    با بررسی مشکلم متوجه شدم که وقتی پایه en رو به زمین وصل میکنم برد به راحتی کار خودش رو شروع میکنه
    وقتی اتصال رو قطع میکنم توی همین عملکرد خودش قفل میشه
    برای پروگرام کردم هم باید یکبار دکمه بوت بزنم و بعد دکمه en رو نگهدارم تا کامل بوت بشه

    توی سایت دیگه خوندم که یک خازن 10uf بین پایه en و gnd قرار بدم
    ولی بازم مشکل برطرف نشد
    اگر راه حلی دارید بفرمایید ممنون میشم

  24. برای من در هنگام اپلود روی برد ارور

    A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
    A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
    می دهد مشکل از چی میتونه باشه؟

  25. سلام. من چندتا سوال داشتم که ممنون میشم راهنمایی کنید
    1- تفاوت برنامه نویسی برای esp32 با اردوینو و میکروپایتون چیه و کدامیک بهتره؟
    2- ایا با استفاده از اردوینو و میکروپایتون به بخش تنظیمات و کانفیگ esp32 دسترسی داریم؟ منظورم همون بخش menuconfig است که از طریق esp_idf میتونیم دسترسی داشته باشیم.

  26. سلام من میخاستم از کدهای دستوری که قبلا روی برد esp32 هست یه کپی تهیه کنم و وارد یک برد خام جدید کنم این امکان وجود داره لطف کنین یه توضیح بدبد

  27. سلام خیلی خوب بود فقط اموزش وصل کردن رله 1 کانال 2 کانال 4 کانال 8 کانال بدید

  28. سلام جناب
    ممنون ازمطالبتون…
    من یه دیتا شیت جامع از esp32cam میخواستم که تو اینترنت پیدا نکردم…
    اگه بذارید ممنون میشم…
    ضمنا می‌خوام این ماژول رو بدون آردینو استفاده کنم، چه پروگرمری نیاز دارم؟
    باز هم تشکر

  29. سلام.
    ممنون از مطلب خوبتون.
    من روی ESP32 nodemcu برنامه ای رو با فشردن کلید بوت آپلود کردم و writing موفق انجام شد. اما برای دفعات بعدی دیگه موفق به آپلود برنامه روی همون برد نشدم. آیا بعد هر بار آپلود باید ماژول flash بشه؟

    متشکر

    1. سلام , هر بار آپلود رو بزنید برنامه جدید ریخته میشه. فقط باید tools —- boards—- esp8266 boards— NodeMcu 1.0( esp32 و پورت کام رو تنظیم کرده باشید

  30. با سلام خدمت شما اقای رحیمی
    من با esp32 ی کدی که نوشتم رو اجرا کردم و 4 کانال رله وصل کردم به پایه های 2 4 5 18 ولی وقتی ماژول روشن میشه به صورت پیشفرض همه رله ها روشن میشن و وقتی که قسمتی که برای خاموش کردن کل رله هارو اجرا میکنم فقط کل رله ها چشمک میزنن و روشن میمونن ولی وقتی به صورت تکی خاموش میکنم خاموش میشه.درضمن تمام قسمتهای کد برعکس اجرا میشه یعنی high وlow برعکس عمل میکنه علت چیه.ممنون از سایت خوبتون

    1. سلام جناب. به احتمال خیلی زیاد در اتصالات اشتباه کردید. اتصالات به ماژول رله 4 کانال رو بررسی کنید و تغییر بدید.

  31. سلام من یه میکروفون INMP4441 v رو میخواستم به esp 32 متصل کنم میخواستم ببینم نحوه اتصال پایه ها باید به چه صورت باشه میخواستم از پروتکل I2S استفاده کنم برای دریافت صدا از میکروفون ممنون میشم راهنماییم کتید

    1. هنوز پروژه های زیادی با برد ESP32 قرار ندادیم به زودی فعالیت در زمینه ESP32 شروع میشه سایت رو چک کنید. اینطور نمیتونم کمکتون کنم متاسفانه

  32. با سلام
    در مورد پاک کردن برنامه روی ماژول esp32 راهنمایی بفرمایید.
    ممنون

  33. سلام ببخشید من ماژول esp رو که به لب تاب وصل میکنم برد را تشخیص نمیدهد مشکل از چیه

    1. سلام یعنی اصلا در قسمت Device Manager وقتی که برد رو متصل و قطع میکنید تغییری حس نمیشه ؟

  34. سلام خدمت جناب استاد رحیمی

    بسیار روان و کامل توضیح دادین
    اجرتون با خدا.

    1. سلام عزیز. خوشحالم که راضی بودین نظر لطف شماست.

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

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