مبتدی⏱ 12 دقیقه مطالعه

همان ESP32 قدرتمند و ارزان‌قیمت ساخت Espressif، این‌بار با فریم‌ورک Arduino برنامه‌نویسی می‌شود — یعنی به‌جای دستورات پایتون، کد آن را با C/C++‎ می‌نویسید و با Arduino IDE کامپایل و روی برد آپلود می‌کنید. سخت‌افزار هیچ فرقی نمی‌کند؛ فقط زبان و ابزار برنامه‌نویسی عوض می‌شود.

چرا C/C++‎ با فریم‌ورک Arduino؟

فریم‌ورک Arduino یک لایهٔ ساده روی SDK رسمی Espressif (به‌نام ESP-IDF) قرار می‌دهد که کار با سخت‌افزار را بسیار خواناتر می‌کند. کد در قالب دو تابع اصلی نوشته می‌شود: setup() که فقط یک‌بار در ابتدا اجرا می‌شود، و loop() که تا ابد پشت سر هم تکرار می‌شود.

  • کدی که کامپایل می‌شود، معمولاً سریع‌تر و با تأخیر (Latency) پایین‌تر از میکروپایتون اجرا می‌شود
  • دسترسی مستقیم‌تر به قابلیت‌های سخت‌افزاری و FreeRTOS (سیستم‌عامل بلادرنگی که ESP32-Arduino روی آن ساخته شده)
  • هزاران کتابخانهٔ آماده در Library Manager آردوینو برای انواع سنسور و ماژول
  • جامعهٔ بسیار بزرگ و مستندات فراوان
ℹ️ اطلاعات

در مقابل، چرخهٔ کامپایل و آپلود کد C++‎ کمی کندتر از اجرای آنی پایتون است و پیام‌های خطای کامپایلر C++‎ در ابتدا برای مبتدیان کمی گیج‌کننده‌ترند. اما سرعت اجرا و کنترل دقیق‌تر روی سخت‌افزار، این هزینه را برای بسیاری از پروژه‌های صنعتی و بلادرنگ می‌ارزد.

نگاهی به سخت‌افزار ESP32

سخت‌افزار زیر پا دقیقاً همان چیزی است که در نسخهٔ میکروپایتون دیدید: تراشهٔ ESP32-WROOM، رگولاتور ولتاژ، پورت USB، دکمه‌های EN و BOOT، و ردیف‌هایی از پایه‌های GPIO.

نقشه پایه‌های ساده‌شده ESP32

نکات مهم دربارهٔ ولتاژ

این نکته مستقل از زبان برنامه‌نویسی است: ESP32 با منطق ۳٫۳ ولت کار می‌کند، نه ۵ ولت. اتصال مستقیم یک قطعهٔ ۵ ولتی به GPIO می‌تواند به‌طور دائمی برد را آسیب بزند.

⚠️ هشدار

هرگز پایه‌های GPIO را مستقیماً به ۵ ولت وصل نکنید؛ از مبدل سطح ولتاژ (Level Shifter) در صورت نیاز استفاده کنید.

ابزار Wokwi برای Arduino

در این نسخه از دوره هم از شبیه‌ساز آنلاین Wokwi استفاده می‌کنیم، اما این‌بار با انتخاب یک پروژهٔ خالی «ESP32 (Arduino)» به‌جای «MicroPython»؛ می‌توانید کد C++‎ زیر را مستقیماً در فایل sketch.ino جایگذاری و اجرا کنید.

🧩

برای شروع، یک پروژهٔ خالی Arduino/ESP32 در Wokwi بسازید — همان محیطی که در ادامهٔ این فصل هم استفاده خواهیم کرد.

ساخت پروژهٔ خالی Arduino/ESP32 در Wokwi ↗
❓ در فریم‌ورک Arduino، کدام تابع فقط یک‌بار در ابتدای برنامه اجرا می‌شود؟
طراحی و توسعه: امین شیخ نجدیglcd.ir | نسخهٔ افزونه: 1.21.0