

شروع کار با ESP32


مقدمه
سلام، برای وارد شدن به دنیای میکروکنترلرها و سیستم های هوشمند آردوینو واقعا گزینه خوبیه، با آردوینو به راحتی میتونید خیلی از سنسورها، نمایشگرها و انواع موتور هارو راه بندازید و سیستم های پیشرفته طراحی کنید، اما با پیشرفت تکنولوژی حوزه جدیدی بنام IoT یا اینترنت اشیا که البته بهتره بگیم اینترنت چیزها، مطرح شده که روز به روز داره استفاده ازش بیشتر میشه، برای اینکه ماهم ازین داستان عقب نمونیم باید از پلتفورمایی استفاده کنیم که قابلیت پیاده سازی پروژه های IoT رو داشته باشن، این آموزش به معرفی یکی از بهترین این پلتفروم ها یعنی ESP32 میپردازه، پس بریم باهم داشته باشیم: شروع کار با ESP32 .
آنچه در این آموزش یاد می گیرید
- ESP32 چیست؟
- مشخصات ESP32
- روش های مختف برنامه نویسی
- بوردهای توسعه ESP32
- نصب پلتفورم ESP روی آردوینو
- پروژه نمونه
ESP32 چیست؟
برای شروع کار با ESP32 لازمه یکم راجع بهش بدونیم. خب، ESP32 یک میکروکنترلر یا SoC تولید شرکت Espressif Systems هست که نوع پیشرفته تر از مدل ESP8266 همین شرکته. این میکروکنترلر از پردازنده مرکزی Tensilica’s 32-bit Xtensa LX6 بهمراه سیستم WiFi و بوتوث داخلی، RAM، ADC، I2C و … بهره میبره.


مورد دیگه ای که باید در مورد ESP32 بدونید اینه که این میکروکنترلر با تکنولوژی TSMC 40 نانو متر ساخته شده و از نظر مصرف انرژی خیلی خیلی بهینس و برای پروژه های پورتابل مثل ساعت های هوشمند، گجت های پوشیدنی و … گزینه فوق العاده ایه.
مشخصات و ویژگی های ESP32
ESP32 نسبت به ESP8266 امکانات خیلی بیشتری داره که میتونید مهم ترین این امکانات و ویژگی ها رو مشاهده کنید:
- پردازنده 2 هسته ای ( به استثنا مدل ESP32-SOWD که پردازنده تک هسته ای داره)
- فرکانس پردازش تا 240 مگاهرتز
- 448 کیلوبایت حافظه ROM(همون حافظه ای که کدهای برنامه نویسی داخلش میشنه، مقایسه کنید با 32 کیلوبایت حافظه ATMEGA328!)
- 520 کیلوبایت حافظه SRAM
- 16 کیلوبایت حافظه SRAM برای واحد RTC(دو قسمت 8 کیلوبایتی)
- پشتیبانی از اتصال وایفای 802.11 b/g/n با سرعت بیشنیه 150 Mbps
- پشتیبانی از بلوتوث نسخه 2
- پشتبانی از بلوتوث کم انرژی BLE
- 34 پایه قابل برنامه ریزی GPIO
- تا 18 کانال ADC 12 بیتی
- تا 2 کانال DAC 8 بیتی
- تا 4 واحد SPI، 2 واحد I2C، 2 واحد I2S و 3 واحد UART
- پشتیبانی از اترنت برای اتصال LAN
- پشیبانی از SDIO
- 1 کانال اختصاصی PWM برای موتور و تا 16 کانال PWM دیگر
واقعا این همه امکانات و ویژگی های حیرت آور در مقایسه با قیمت این میکرو نشون میده یکی از بهترین گزینه های برای پروژه های مختلفه.
روش های مختلف برنامه نویسی ESP32
یک سخت افزار حرفه ای و خوب مثل ESP32 خودشو محدود به یک روش برنامه نویسی یا یک کامپایلر نمیکنه. محیط های رایج برنامه نویسی ESP32 شامل موارد زیر میشه:
- Arduino IDE(اگه با Arduino IDE آشنا نیستید پیشنهاد میکنم این مطلب رو بخونید)
- Platform IO
- MicroPython
- Espressif IDF
- JavaScript
- LUA
برای شروع کار با ESP32 ازونجایی که پلتفورم Arduino IDE و زبان برنامه نویسی C++ یار قدیمی ماست بیشتر آموزش های حول ESP32 با این پلتفورم دنبال میشه البته مطمئن باشید از میکروپایتون هم غافل نمیشیم.
بوردهای توسعه ESP32
ماژول های مختلفی با هسته ESP32 وجود داره که از رایج ترین اونها ESP-WROOM-32 هست که داخل ایران هم به راحتی پیدا میشه برای این ماژول بورد های توسعه متفاوتی با امکانات مختلفی (مثل OLED، دوربین، شارژر باتری و …) زده شده که این امکانات با توجه به بوردی که دارید مشخص میشه، اما معمول ترین این بوردها بورد شکل زیره که راحت تر پیدا میشه و قیمتش هم مناسب تره.


دقت کنید ممکنه بوردی که شما توی دست دارید با این بورد متفاوت باشه، پس بهتره از نحوه پایه بندی بورد خودتون مطمئن بشید.
بورد های ESP منطق 3.3 ولتی دارن پس اگه جایی لازمه با دستگاهی که منطق 5 ولت داره کار کنید حواستون به تبدیل سطح منطقی باشه


بورد ESP32 رگولاتر داخلی 3.3 ولت داره این یعنی VIN هرچی باشه خود بورد اونو به 3.3 ولت تبدیل میکنه اما بهتره VIN رو بیشتر از 5 ولت ندید تا تلفات انرژی بالا نره و مشکل ایجاد نشه، می تونید هم برای تغذیه ماژول مستقیم به پایه 3.3 ولت ولتاژ 3.3 اعمال کنید.
اگر پایه EN را LOW کنید ماژول غیرفعال میشه.
این بورد دو کانال اصلی ADC داره، ADCهای با شماره قبل از 10 مربوط به کانال 1 و بعد از اون برای کانال 2 هست.
این بورد 10 پایه تاچ خازنی(T0 – T9) داره.
پایه های SPI با پیشوند H مربوط به SPI2 هستن و و اونایی که پیشوند V دارن برای SPI1.
برای شروع کار با ESP32 این اطلاعات کافیه ولی خب اگه اطلاعات مفصل تری می خواید می تونید از دیتاشیتش مطالعه کنید.
نصب پلتفورم ESP32 روی Arduino IDE
حالا که با بورد ESP32 آشنا شدید بهتره بریم سراغ طریقه نصب پکیج ESP32 روی Arduino IDE.
برای این کار مراحل ویدئو رو تماشا کنید یا مراحل زیر گام به گام دنبال کنید.
گام اول) به منوی File و بخش Preferences برید.


گام دوم) قسمت Addintional Boards Manager URLs رو باز کنید و URL پکیج ESP32 برای آردوینو رو در یک خط جدید کپی کنید.




گام سوم) از منوی Tools قسمت Boards بخش Boards Manger رو باز کنید.


گام چهارم) در پنجره بازه شده کلمه esp32 رو سرچ کنید و گزینه نمایش داده شده را در آخرین نسخه شروع به نصب کنید.


اگه دیدید هنگام نصب با خطا مواجه شدید فیلترشکن روشن کنید و مجددا نصب رو شروع کنید.
گام پنجم) کار تمومه، حالا اگه از منوی Tools بخش Board رو باز کنید میبنید که بوردهای زیادی به بخش ESP32 Arduino اضافه شده.


فرآیند نصب بورد ESP روی Arduino IDE من با توجه به سرعت نتم حدود 20 دقیقه زمان برد پس اگه دیدید داره طول میکشه نگران نشید.
اولین پروژه با ESP32
حالا که بوردهای ESP32 رو با موفقیت روی نرم افزار آردوینو نصب کردیم، آماده شروع کار با ESP32 هستید و حالا میخوایم یک پروژه خیلی خیلی ساده انجام بدیم.
روی بورد ESP32 یک LED وجود داره که به پایه GPIO2 وصله، توی این پروژه می خوایم این LED رو روشن و خاموش کنیم.
برای این کار ابتدا از منوی Tools و بخش Board، از بوردای ESP32 مدل ESP32 Dev Module رو انتخاب می کنیم.
اگه بورد متفاوتی دارید همونو انتخاب کنید.
همونطور که میبینید بورد شما در قسمت Board تغییر کرد و کلی تنظیمات جدید اضافه شد، به هیچکدوم از این تظیمات کاری نداریم(البته فعلا!)، فقط پورتی که برای بورد درنظر گرفته شده رو انتخاب می کنیم.


اگر دیدید سیستمتون بورد رو نمیشناسه لابد درایور CPL2101 رو قبلا نصب نکردید، اگه اینطوره این درایور رو از اینجا دانلود کنید و نصب کنید و دوباره امتحان کنید.
حالا کد زیر رو کپی کنید.
1 2 3 4 5 6 7 8 9 10 11 |
const int LED_PIN = 2; void setup() { pinMode(LED_PIN,OUTPUT); } void loop() { digitalWrite(LED_PIN,HIGH); delay(1500); digitalWrite(LED_PIN,LOW); delay(1500); } |
حالا وقتشه گزینه Upload رو بزنید و تمام.
ممکنه فرآیند حین آپلود دچار خطا بشه، اصلا جای نگرانی نیست، اگر این اتفاق براتون افتاد حین زدن دکمه Upload دکمه BOOT رو که روی بورد هست فشار بدید و بعد از نمایش پیام Writing at 0x00001000…(100%) کلید رو رها کنید.
نتیجه گیری
این تازه شروع کار با ESP32 بود ولی امیدواریم همین آموزش اولیه راه شما رو به دنیای اینترنت اشیا باز کنه و پروژه های باحالی انجام بدید.
سلام
ببخشید این روش برای همه بورد های ESP32 جواب می ده؟
برای بوردهای ESP8266 چی؟ مثل nodemcu
سلام
بله برای همه بوردهای ESP32 همین روش جواب میده اما برای بردهای ESP8266 و ESP12 نیست، برای اونا بزودی آموزش جداگونه میذاریم