راه اندازی ماژول وای فای و بلوتوث ESP32 و نصب آن بر IDE آردوینو

مقدمه

در این آموزش با ماژول وای فای و بلوتوث ESP32 آشنا می شوید و نحوه ی راه اندازی آن را یاد می گیرید.

آنچه در این آموزش یاد می گیرید

  • آشنایی با ESP32 و کاربردهای آن
  • نصب ESP32 روی Arduino IDE

ESP32 چیست؟

یکی از ماژول های پرکاربرد و محبوب چند سال اخیر، ماژول وای فای ESP8266 است. نسخه ها و بردهای مختلفی از این ماژول در بازار موجود است.

ماژول ESP32 نسخه ی ارتقا یافته ی ESP8266 است. این ماژول علاوه بر ماژول وای فای، دارای یک ماژول بلوتوث نسخه ی 4 نیز هست. دارا بودن پردازنده ی دو هسته ای و قدرتمند این ماژول با فرکانس کاری 80 تا 240 مگاهرتز به همراه دو ماژول وای فای و بلوتوث و پایه های ورودی و خروجی با قابلیت های متنوع، ESP32 را گزینه ای مناسب برای استفاده در پروژه های هوشمند سازی وسایل (IOT) کرده است.

قابلیت ها

Working Voltage 2.2 to 3.6 volts
Average CurrentAround 80 mA
Maximum Current 500 mA
Input/Output Pins32(The ESP32 chip has 48 I/O pin,s. But the module has only 28 accessible pins.)
ADC(Analog to Digital Converter) 18 channels of 12 bits
DAC(Digital to Analog Converter)2 channels of 8 bits
UART(Serial Communication)3
PWM32
SPI Interface4
I2C Interface2
I2S Interface (to connect audio devices) 2
Capacitance TouchPads Pins 10
Memory Card Interface 1
CAN Interface1
Temperature Sensor1

نکته

در ماژول های مختلف، ممکن است به برخی از پایه های تراشه ی ESP32 دسترسی نداشته باشید.

.

معرفی پایه های ماژول ESP32

با اینکه ESP32 نسبت به پردازنده های متداول تعداد پایه های کمتری دارد، ولی با مالتی پلکس کردن چند عملکرد روی یک پایه، کمبودی در تعداد پایه های ارتباطی احساس نمی شود.

اخطار

ولتاژ منطقی پایه های ESP32، 3.3 ولت است. اگر می خواهید ESP32 را به وسایل دیگری که با ولتاژ منطقی 5 ولت کار می کنند، متصل کنید، حتما باید از یک مدار تبدیل سطح ولتاژ (level shifter) استفاده کنید.

پایه های تغذیه:

در این ماژول دو پایه ی 5 ولت و 3.3 ولت برای تغذیه در نظر گرفته شده است. می توانید این دو پایه را برای تغذیه ی دستگاه ها و ماژول های دیگر استفاده کنید.

زمین (GND):

در این ماژول 3 پایه ی GND وجود دارد.

فعال ساز (EN):

این پایه برای فعال و غیر فعال کردن ماژول استفاده می شود. برای فعال کردن ماژول، این پایه باید HIGH و برای غیر فعال کردن آن، باید LOW باشد.

پایه های ورودی-خروجی (GPIO):

از 32 پایه ی GPIO این ماژول می توانید برای ارتباط با ال ای دی، سوئیچ و دیگر وسایل ورودی-خروجی استفاده کنید.

به صورت داخلی می توانید این پایه ها را Pull-up یا Pull-down کنید.

توجه

پایه های GPIO6 تا GPIO11 که پایه های SCK/CLK، SDO/SD0، SDI/SD1، SHD/SD2، SWP/SD3 و SCS/CMD هستند برای ارتباط SPI حافظه ی فلش داخلی ماژول استفاده شده است و استفاده از آن ها پیشنهاد نمی شود.

ADC: 

از 16 پایه ی ADC این ماژول می توانید برای تبدیل ولتاژ های آنالوگ (خروجی برخی سنسور ها) به دیجیتال استفاده کنید.  تعدادی از این مبدل ها به تقویت کننده ی داخلی متصل بوده و قادر به اندازه گیری ولتاژ های کوچک با دقت بالا هستند.

DAC: 

ماژول ESP32 دارای دو مبدل دیجیتال به آنالوگ با دقت 8 بیت است.

پدهای لمسی خازنی:

در ماژول ESP32، 10 پایه وجود دارد که حساس به تغییرات میزان خازن هستند. می توانید این پایه ها را به پد هایی (پد های روی PCB) متصل کنید و از آن ها به عنوان سوئیچ های لمسی استفاده کنید.

SPI: 

دو رابط SPI در این ماژول وجود دارد که می توانید از آن ها برای اتصال نمایشگر، ماژول کارت حافظه SD/microSD، حافظه ی فلش خارجی و … استفاده کنید.

I2C: 

پایه های SCL و SDA برای ارتباط دو سیمه ی I2C هستند.

ارتباط سریال:

دو رابط سریال UART در این ماژول وجود دارد. با این پایه ها می توانید اطلاعات را تا سرعت 5Mbps بین دو دستگاه جابجا کنید. UART0 دارای پایه های CTS و RTS نیز هست.

PWM:

تقریبا تمام پایه های ورودی- خروجی ESP32 قابلیت PWM (Pulse Width Modulation) را نیز دارند. از این پایه می توانید برای کنترل موتور ها،  نور و رنگ ال ای دی ها و… استفاده کنید.

The ESP32 Module Modes

تراشه ی ESP32 دارای 5 حالت کاری است:

Active mode:

در این حالت تمام بخش های فرستنده و گیرنده ی وای فای و بلوتوث و … فعال است. تراشه در این حالت جریانی بین 80 تا 260 میلی آمپر مصرف می کند.

Modem-sleep mode:

وای فای و بلوتوث غیر فعال می شود ولی پردازنده فعال است. جریان مصرفی در این حالت بین 3 تا 20 میلی آمپر است.

Light-sleep mode:

پردازنده ی اصلی متوقف می شود ولی واحد RTC و پردازنده ی کمکی ULP فعال هستند. جریان مصرفی در این حالت حدود 0.8 میلی آمپر است.

Deep-sleep mode:

تنها واحد RTC فعال است. در این حالت اطلاعات اتصال وای فای و بلوتوث درحافظه ی RTC ذخیره می شوند. جریان مصرفی در این حالت بین 10 تا 150 میکرو آمپر است.

Hibernation mode:

تمام واحد ها به غیر از یک تایمر RTC که برای محسابه ی ساعت است و چند پایه ی ورودی-خروجی متصل به RTC غیر فعال می شوند. تایمر RTC و یا پین های متصل به آن می تواند تراشه را از این حالت خواب بیدار کند. جریان مصرفی در این حالت حدود 2.5 میکرو آمپر است.

برای کسب اطلاعات بیشتر می توانید به دیتاشیت مراجعه کنید.

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

دیتاشیت ماژول ESP32 و تراشه آن را می توانید از لینک های زیر دانلود کنید.

https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf

https://espressif.com/sites/default/files/documentation/esp32-wroom-32_datasheet_en.pdf

مقایسه ی ESP32 و ESP8266

انواع مختلفی از ماژول های ESP32 و ESP8266 در بازار موجود است. در این بخش دو برد ESP8266 NodeMcu و ESP32 DEV Module با یکدیگر مقایسه شده اند:

ESP8266 NodeMcuESP32 DEV Module
Power 3.3V3.3V
CPUTensilica L106 32-bit Xtensa® Dual-Core 32-bit LX6
Bluetooth Do not have Compliant with Bluetooth v4.2 BR/EDR and BLE specification
GPIO1732
Flash sizeUp to 16MB Up to 16MB
ADC10 bit12 bit
DACDo not have 2 * 8bit
UART22

معمولا ماژول های ESP32 نسبت به ماژول های ESP8266 قیمت بیشتری دارند. پس اگر نیازی به پایه های ورودی-خروجی بیشتر و بلوتوث و  مبدل دیجیتال به آنالوگ و … ندارید می توانید با خرید ماژول های ESP8266 در هزینه های خود صرفه جویی کنید.

لوازمی که به آن احتیاج دارید

قطعات مورد نیاز

ماژول وای فای و بلوتوث ESp32 × 1

نرم افزار های مورد نیاز

Arduino IDE

نصب ESP32 روی IDE آردوینو

مراحل نصب ESP32 تقریبا مشابه نصب ESP8266 است. برای نصب ESP32 روی IDE آردوینو، مراحل زیر را دنبال کنید:

نکته

برای نصب ESP32 نیاز به Arduino IDE نسخه ی 1.8.5 یا بالاتر می باشد.

گام اول: دانلود فایل های مورد نیاز از گیت هاب

هسته ی آردوینو برای ESP32 (ESP32 Arduino Core) را از اکانت گیت هاب آن دانلود کنید. برای دانلود مستقیم آن ها می توانید از لینک زیر استفاده کنید.

https://github.com/espressif/arduino-esp32/archive/master.zip

گام دوم: فایل را به مسیر sketchbook آردوینو منتقل کنید

Sketchbook آردوینو به صورت پیش فرض در My Documents قرار دارد. برای یافتن مسیر دقیق sketchbook خود، از منوی File به بخش Preferences بروید.

به محل sketchbook بروید و در کنار  پوشه ی Arduino، یک پوشه ی جدید به نام hardware بسازید.

در داخل آن یک پوشه به نام espressif ایجاد کنید و  سپس داخل پوشه ی espressif، یک پوشه به نام esp32 بسازید.

در نهایت مسیری که ایجاد کرده اید باید به شکل زیر باشد:

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

گام سوم: get.exe را اجرا کنید

برای نصب ESP32 روی نرم افزار آردوینو، نیاز است که Xtensa GNU compiler collection را روی سیستم خود نصب کنید. برای نصب آن به مسیر esp32>tools بروید و فایل get.exe را اجرا کنید.

پس از اجرای get.exe، به صورت خودکار فایل های مورد نیاز دانلود می شوند و به پوشه ی tools منتقل می شوند. این مرحله ممکن است کمی زمانبر باشد.

پس از پایان نصب، باید فایل های جدیدی به پوشه ی tools اضافه شده باشد.

آپلود کردن کد روی ESP32 با IDE آردوینو

آپلود کردن کدها روی ماژول ESP32 نیز مشابه دیگر بردهای آردوینو می باشد. برای تست کردن این موضوع می توانید از مثال های آماده ی خود آردوینو مثل Blink استفاده کنید.

توجه

اگر تاکنون درایور مبدل USB به سریال CP2102 را روی کامپیوتر خود نصب نکردید، ابتدا باید آن را از این لینک دانلود و نصب کنید.

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

عیب یابی

اگر با خطای زیر مواجه شدید،  نگران نباشید. در هنگام پروگرام کردن ESP32 معمولا این مشکل پیش می آید. برای رفع آن کار های زیر را انجام دهید.

  1. مطمئن شوید که سرعت آپلود کد درست تنظیم شده باشد. معمولا این سرعت باید 115200 باشد.

2. کلید Boot را روی برد خود نگه دارید.

3. روی گزینه ی آپلود کلیک کنید.

4. بعد از نمایش پیام Writing at 0x00001000…(100%) انگشت خود را از روی کلید Boot بردارید.

5. در انتهای آپلود کد، باید پیام Done uploading را مشاهده کنید.

یک گام جلوتر

  • یک صفحه ی HTTP بسازید و ال ای دی را از طریق یک صفحه وب کنترل کنید.
  • ال ای دی را با استفاده از بلوتوث کنترل کنید. (برای این کار می توانید از ترمینال های بلوتوث استفاده کنید)

Share this post

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

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