همان 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 با منطق ۳٫۳ ولت کار میکند، نه ۵ ولت. اتصال مستقیم یک قطعهٔ ۵ ولتی به GPIO میتواند بهطور دائمی برد را آسیب بزند.
هرگز پایههای GPIO را مستقیماً به ۵ ولت وصل نکنید؛ از مبدل سطح ولتاژ (Level Shifter) در صورت نیاز استفاده کنید.
ابزار Wokwi برای Arduino
در این نسخه از دوره هم از شبیهساز آنلاین Wokwi استفاده میکنیم، اما اینبار با انتخاب یک پروژهٔ خالی «ESP32 (Arduino)» بهجای «MicroPython»؛ میتوانید کد C++ زیر را مستقیماً در فایل sketch.ino جایگذاری و اجرا کنید.
برای شروع، یک پروژهٔ خالی Arduino/ESP32 در Wokwi بسازید — همان محیطی که در ادامهٔ این فصل هم استفاده خواهیم کرد.
ساخت پروژهٔ خالی Arduino/ESP32 در Wokwi ↗