آموزش Esp32

ESP32 چیست و چرا بهترین گزینه برای IoT است؟

وقتی صحبت از اینترنت اشیا به میان می شود، ESP32 یکی از پردازنده های است که به ذهن ما می آید پردازنده ای با عملکرد بالا و امکانات مناسب اینترنت اشیا. ESP32 نسل جدید خانواده ESP8266 است. این سیستم ارزان قیمت روی تراشه (SoC) توسط شرکت Espressif Systems توسعه یافته و ساخته شده است. با توجه به قیمت کم ، امکانات زیاد، اندازه کوچک و مصرف انرژی نسبتا کم، ESP32 به خوبی برای بسیاری از کاربردهای مختلف اینترنت اشیا مناسب است.

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

ESP32 چیست؟

ESP32 تراشه ای است که اتصال Wi-Fi و (در برخی مدل‌ها) بلوتوث را برای دستگاه‌های امبدد و به عبارت دیگر، برای دستگاه‌های IoT فراهم می‌کند. در حالی که ESP32 از نظر فنی فقط یک تراشه است، ماژول ها و بردهای توسعه که این تراشه را بر روی خود دارند اغلب توسط سازنده به عنوان “ESP32” شناخته می شوند.

تراشه اصلی ESP32 دارای یک میکروکنترلر تک هسته ای Tensilica Xtensa LX6 میباشد. این پردازنده دارای نرخ کلاک 240 مگاهرتز بوده که سرعت پردازش داده نسبتاً بالایی را به همراه دارد.

در سالهای اخیر مدل‌های جدیدی از جمله سری ESP32-C و -S اضافه شده‌اند که شامل انواع تک هسته‌ای و دو هسته‌ای می‌شوند.همچنین چندسالی است که مدلهایی با پسوند H و P نیز به خانواده پردازنده های ESP32 اضافه شده اند. این دو سری نیز به جای Xtensa به یک مدل CPU Risc-V متکی هستند.

Risc-V مشابه معماری ARM است که به خوبی پشتیبانی می شود و شناخته شده است، اما Risc-V یک طراحی منبع باز و آسان برای استفاده است. به طور خاص، Risc-V و ARM از کامپایلرهای گنو پشتیبانی خوبی دارند، در حالی که Xtensa برای کار با کامپایلرها به پشتیبانی و توسعه بیشتری نیاز داشت.

مدل های جدیدتر با اتصال Wi-Fi ، بلوتوث و حتی زیگبی به صورت ترکیبی یا فقط اتصال Wi-Fi در دسترس هستند. چندین مدل تراشه مختلف موجود است، از جمله:

  • ESP32-D0WDQ6 (and ESP32D0WD)
  • ESP32-D2WD
  • ESP32-S0WD
  • System in package (SiP) – ESP32-PICO-D4
  • ESP32 S series
  • ESP32-C series
  • ESP32-H series
  • ESP32-P series

ویژگی ها و مشخصات ESP32:

در اینجا خلاصه ای از ویژگی ها و مشخصات  اصلی ESP32 آورده شده است:

DESCRIPTIONESP-32
2Core
32 bitsArchitecture
Tensilica Xtensa LX106 160-240MHzClock
IEEE802.11 b/g/nWiFi
Yes - classic & BLEBluetooth
520KBRAM
External QSPI - 16MBFlash
22GPIO
2DAC
18ADC
SPI-I2C-UART-I2S-CANInterfaces

و در ادامه یک خلاصه دقیق تر رو با هم مرور میکنیم:

پردازنده ها – ESP32 از پردازنده Tensilica Xtensa 32 بیتی LX6 استفاده می کند. ودر معماری های دوهسته ای از سری LX7 استفاده میشود، به استثنای یک ماژول، ESP32-S0WD، که از یک سیستم تک هسته ای استفاده می کند.

فرکانس کلاک به 240 مگاهرتز و بعضی مدلها تا 400 مگاهرتز هم  می رسد و تا 600 DMIPS پردازش را انجام می دهد. علاوه بر این، مصرف انرژی کم آن ، اجازه میدهد که مبدل تبدیل آنالوگ به دیجیتال و همچنین کارهای محاسباتی و آستانه های سطح ولتاژ کماکان در دسترس باشند، حتی زمانی که تراشه در حالت خواب عمیق است.

اتصال بی سیم – ESP32 اتصال به Wi-Fi یکپارچه را از طریق استاندارد 802.11 b/g/n/e/i/ فعال می کند. علاوه بر این، اتصال بلوتوث با v4.2 BR/EDR یا همان بلوتوث کلاسیک امکان پذیر شده است و این سری همچنین دارای بلوتوث کم مصرف (BLE) نیز میباشد.در بعضی از مدلهای این تراشه ارتباط ZigBee نیز در دسترس کاربران قرار داده شده است.

حافظه – حافظه داخلی ESP32 به شرح زیر است.

رام: 448 کیلوبایت (برای بوت کردن/توابع هسته)،

 SRAM: به مقدار 520 کیلوبایت (برای داده ها/دستورالعمل ها)،

 RTC SRAM سریع : به مقدار 8 کیلوبایت (برای ذخیره سازی داده ها/CPU اصلی در هنگام بوت شدن از حالت خواب)،

RTC SRAM آهسته: 8 کیلوبایت (برای دسترسی به کمک پردازنده در حالت خواب)،

و حافظه eFuse

( 1 کیلو بیت (256 بیت برای پیکربندی تراشه  (آدرس 6 بیتی MAC استفاده می شود)  و 768 بیت برای برنامه های مشتری رزرو شده است).

نوشته های مشابه

علاوه بر این، برخی از تراشه‌های ESP32،  دارای حافظه فلش داخلی هستند. فلش مموری داخلی مربوطه برای هر تراشه را میتوانید از طریق وبسایت Espressif بررسی نمایید.

فلاش خارجی و SRAM – ESP32: از حداکثر تا چهار فلش QSPI خارجی 16 مگابایتی و SRAM با رمزگذاری سخت افزاری مبتنی بر AES برای محافظت از برنامه ها و داده های توسعه دهندگان پشتیبانی می کند. پردازنده ESP32 از طریق کش های پرسرعت به فلش QSPI خارجی و SRAM دسترسی پیدا می کند.

امنیت – ESP32 از تمامی ویژگی های امنیتی استاندارد IEEE 802.11 از جمله WFA، WPA/WPA2 و WAPI پشتیبانی می کند. علاوه بر این، ESP32 دارای بوت امن و رمزگذاری فلش است.

کاربردهای ESP32 :

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

شبکه: آنتن Wi-Fi و ماژول دوهسته ای به دستگاه های امبدد امکان می دهد که به روترها متصل شوند و داده ها را انتقال دهند.شما به راحتی با استفاده از ESP32 و فریمورک قدرتمند آن یعنی ESP-IDF به راحتی میتوانید اکثر پروتکلهای کاربردی مبتنی بر شبکه را از HTTP گرفته تا پروتکلهای IOT مانند  MQTT, CoAP, SoAP و غیره را پیاده سازی نمایید.

پردازش داده ها: شامل پردازش ورودی های اولیه از حسگرهای آنالوگ و دیجیتال تا محاسبات بسیار پیچیده تر با کیت توسعه نرم افزار(SDK)  مبتنی بر RTOS یا غیر OS  است. SDK غیر OS به SDK اشاره دارد که برای اجرای مستقیم روی تراشه طراحی شده است بدون اینکه یک سیستم عامل کامل از آن پشتیبانی کند.

اتصال P2P: ارتباط مستقیم بین ESP های مختلف و سایر دستگاه ها با استفاده از اتصال IoT P2P ایجاد می کند.

وب سرور: دسترسی به صفحات نوشته شده با HTML یا زبان های توسعه تحت وب دیگر را فراهم می کند.

برنامه های کاربردی ESP32 :

ماژول‌های ESP32 معمولاً در دستگاه‌های IoT زیر یافت می‌شوند:

دیوایسهای صنایع هوشمند : مانند انواع PLC ها.

پزشکی هوشمند: از جمله دستگاههای مانیتورینگ سلامت پوشیدنی.

انرژی هوشمند: از جمله دستگاههای تهویه مطبوع و ترموستات.

امنیت هوشمند: از جمله دوربین های مدار بسته و قفل های هوشمند.

چیپ، ماژول، بردتوسعه:

تراشه ESP32: این تراشه ای است که بدون هیچ گونه مدار جانبی توسط Espressif ساخته شده است. بدون محافظ می آید، به این معنی که هیچ پوشش محافظی وجود ندارد، و نمی توان آن را بدون لحیم کاری به یک ماژول یا برد متصل کرد. بنابراین، اکثر سازندگان دستگاه تراشه را خریداری نمی‌کنند، زیرا این کار باعث میشود یک لایه پیچیدگی اضافی به فرآیند تولید افزوده شود.

ماژول های ESP32: ماژول های قابل نصب روی سطح می باشند که حاوی تراشه ESP32 هستند. ماژول ها اساسا اجزای الکترونیکی کوچکی هستند که می توانند به یک برد مدار متصل شوند. مزیت اصلی در اینجا این است که می توانید به راحتی این ماژول ها را روی برد MCU نصب کنید. این تراشه همچنین معمولاً توسط استاندارد FCC محافظت می شود و از قبل تأیید لازم را گرفته اند، به این معنی که سازندگان دستگاه نیازی به نگرانی در مورد افزودن مراحل اضافی به فرآیند تولید برای دستیابی به انطباق استاندارد  FCC در مورد محافظ Wi-Fi ندارند.

بردهای توسعه ESP32: اینها بردهای توسعه IoT MCU هستند که ماژول های حاوی تراشه ESP32 را از قبل نصب کرده اند. این بردها توسط علاقمندان، سازندگان دستگاه و توسعه دهندگان برای آزمایش و نمونه سازی اولیه دستگاه های IoT قبل از ورود به تولید انبوه استفاده می شوند. انواع مختلفی از برندها و مدل های برد توسعه ESP32 وجود دارد که توسط سازندگان مختلف تولید می شود. در اینجا چند ویژگی مهم برای انتخاب یک برد توسعه IoT ESP32 مناسب در نظر گرفته شده است:

  • GPIO pins
  • ADC pins
  • Wi-Fi antennas
  • LEDs
  • Shielding*
  • Flash memory

بسیاری از بازارهای بین‌المللی به دستگاه‌های Wi-Fi شیلد شده نیاز دارند، زیرا Wi-Fi تداخل فرکانس رادیویی (RFI) زیادی ایجاد می‌کند و شیلد این تداخل را به حداقل می‌رساند.

 

تولید کنندگان ماژول ها و بردهای ESP32:

تراشه های ESP32

Espressif Systems سازنده تراشه ESP32 است. این تراشه در اندازه‌های مختلف از جمله 7 میلی‌متر در 7 میلی‌متر، 6×6، 5×5 و حتی بسته‌های QFN 4×4 موجود است. در اینجا مدل های فعلی موجود است:

Processor coresEmbedded flash memory (MB)Package sizeModel
206mm x 6mmESP32-D0WDQ6
205mm x 5mmESP32-D0WD
225mm x 5mmESP32-D2WD
145mm x 5mmESP32-U4WDH
105mm x 5mmESP32-S0WD
1NA7mm x 7 mmESP32-S2
12-47mm x 7 mmESP32-S2F
20-87mm x 7 mmESP32-S3
187mm x 7 mmESP32-SE-PICO-1
12-44mm x 4mmESP8684
10-45mm x 5mmESP32-C3
12-44mm x 4mmESP8685
10-45mm x 5mmESP32-C6
12-44mm x 4mmESP32-H2

ماژول های ESP32:

Espressif:

ماژول های زیادی وجود دارد که نمی توان در اینجا به همه آنها اشاره کرد، اما در اینجا برخی از ماژول های برتر که از تراشه Espressif Systems ESP32 استفاده می کنند آورده شده است:

FlashAntennaePINSDimensionsModel
4MBPCB trace3818x25.5x2.8ESP-WROOM-32
4MBPCB trace3818x25.5x3.1ESP-WROOM-32D
4MBU.FL Socket

3818x19.2x3.2ESP-WROOM-32U
4MBPCB trace3818x31.4x3.3ESP-WROVER
4MBU.FL Socket, PCB3818x31.4x3.3ESP-WROVER-I
4MBU.FL Socket, PCB3818x31.4x3.3ESP-WROVER-B
4MBU.FL Socket, PCB3818x31.4x3.3ESP-WROVER-IB
4MBU.FL Socket, PCB3718x31x3ESP32-S2-WROOM
4-16MBU.FL Socket, PCB4118x25.5x3.1ESP32-S3-WROOM-1

Ai-Thinker:

ماژول های فعلی Ai-Thinker ESP32 به شرح زیر است:

FlashAntennaePINSDimensionsModel
4MBPCB trace3818x25.5x2ESP32-S
4MBU.FL Socket, PCB trace3818x25.5x2ESP32-A1S

کیت های توسعه ESP32/برد:

Espressif

بردهای توسعه Espressif ESP32 فعلی عبارتند از:

FlashUSBFirmwareOnboard moduleModel
4MB flashUSB to serial interfaceEspressif Non-OS SDK, using Lua scripting languageESP-WROOM-03ESP32-DevKitC
4MB flash + 8MB PSRAMUSB to serial interfaceEspressif Non-OS SDK, using Lua scripting languageESP-WROOM-32 or ESP32-WROVERESP-WROVER-KIT
4MB flashUSB to serial interfaceEspressif Non-OS SDK, using Lua scripting languageESP32-PICO-D4ESP32-PICO-KIT
4MB flashUSB to serial interfaceEspressif Non-OS SDK, using Lua scripting languageESP32-S2-WROVERESP32-S2-Kaluga-1

Ai-Thinker

بردهای توسعه AI-Thinker عبارتند از:

FlashUSBGPIO & ADC PinsFirmwareOnboard moduleModel
32MBUSB port for power input38Lua, AT commands, MicroPython, ArduinoESP-WROOM-32NodeMCU-32S
32MBUSB port for power input9Embedded Lwip and FreeRTOSESP32-CAMESP32-CAM

Adafruit

بردهای توسعه Adafruit ESP32 عبارتند از:

Flash

USBGPIO & ADC Pins

FirmwareOnboard moduleModel
4MBUSB to serial interface24ESP-IDF and Arduino IDE softwareESP-WROOM-32HUZZAH32

Wemos

بردهای توسعه Wemos ESP32 عبارتند از:

FlashUSBGPIO & ADC PinsFirmwareOnboard moduleModel
4MBUSB to serial interface19Compatible with Arduino, MicroPythonESP-WROOM-32LOLIN D32
4MB/16MB flash
4MP PSRAM
USB to serial interface19Compatible with Arduino, MicroPythonESP-WROOM-32LOLIN D32 PRO

Arducam

برد توسعه فعلی Arducam ESP32 به شرح زیر است:

FlashUSBGPIO & ADC PinsFirmwareOnboard moduleModel
32Mbit Flash, 8MByte PSRAMBuilt in micro USB23Compatible with Arduino IDEESP-32SESP32 UNO

چه SDK هایی برای ESP32 استفاده می شود؟

اکنون طیف گسترده ای از SDK ها در دسترس هستند. Espressif یک SDK رسمی برای استفاده با ESP32، ESP32-2 یا ESP8266 ارائه می‌کند. این SDK مبتنی بر FreeRTOS است. FreeRTOS سیستم عامل بلادرنگ ارائه شده توسط آمازون است، بنابراین SDK به طور خاص برای استفاده با آن سیستم طراحی شده است.

در حال حاضر شرکت Espressif فریم ورکی تحت عنوان IDF را به عنوان فریمورک اصلی و رسمی کار با پردازنده های ESP توصیه میکند.

جدا از گزینه های Espressif، تعداد زیادی SDK تجاری و منبع باز در بازار وجود دارد، از جمله:

بهترین ماژول یا برد توسعه ESP32 برای اینترنت اشیا کدام است؟

همانطور که مقایسه‌های بالا نشان می‌دهد، گزینه‌های زیادی برای بردها و ماژول‌های ESP32 IoT وجود دارد. جهت کمک به شما در تصمیم گیری، برخی از محبوب ترین ها را در زیر خلاصه کرده ام.

در زمینه اینترنت اشیاء (IoT)، انتخاب بهترین ماژول ESP32 بستگی به نیازهای پروژه‌ دارد (مثل توان مصرفی، پشتیبانی از BLE یا Wi-Fi، امکانات امنیتی، تعداد پین‌های I/O، پشتیبانی از دوربین یا نمایشگر و…). اما اینجا لیستی از بهترین و پرکاربردترین ماژول‌های ESP32 مناسب برای IoT رو خلاصه کرده ام، با توضیح کاربردها:

ESP32-WROOM-32

  • ویژگی‌ها: وای‌فای + بلوتوث کلاسیک + BLE، محبوب‌ترین و پایدارترین ماژول

  • مناسب برای: پروژه‌های عمومی IoT، اتوماسیون خانگی، سنسورها، کنترل صنعتی

  • مزیت: در دسترس، ارزان، پشتیبانی خوب

ESP32-WROVER

  • ویژگی‌ها: مثل WROOM ولی با PSRAM داخلی (تا 8MB)

  • مناسب برای: پروژه‌هایی با نیاز به رم بیشتر (مثل پردازش تصویر، صوت، TCP heavy load)

  • نسخه‌های معروف: WROVER-B، WROVER-E

ESP32-CAM

  • ویژگی‌ها: ماژول دوربین + وای‌فای، بدون USB، رم PSRAM دارد

  • مناسب برای: پروژه‌های نظارتی، Smart Doorbell، پردازش تصویر ساده

  • نکته مهم: باید با مبدل USB to Serial پروگرام شود

ESP32-S2

  • ویژگی‌ها: فقط وای‌فای، بدون بلوتوث، امنیت بالا (crypto accelerator)، USB OTG

  • مناسب برای: تجهیزات IoT با نیاز امنیتی بالا یا ارتباط USB، مصرف پایین‌تر

  • نسخه‌های خوب: ESP32-S2-WROOM، ESP32-S2-WROVER

ESP32-S3

  • ویژگی‌ها: وای‌فای + BLE 5.0، پشتیبانی از TensorFlow Lite، USB، PSRAM

  • مناسب برای: بینایی ماشین، هوش مصنوعی در edge، پروژه‌های مدرن با BLE + دوربین

  • نسخه‌های معروف: ESP32-S3-WROOM، ESP32-S3-WROOM-1-N8R8

ESP32-C3

  • ویژگی‌ها: وای‌فای + BLE 5.0، مبتنی بر RISC-V، قیمت بسیار پایین، امنیت بالا

  • مناسب برای: دستگاه‌های کم‌مصرف، IoT با باتری، تجهیزات لبه‌ای کوچک

  • ویژگی خاص: جایگزین بالقوه ESP8266 با قابلیت‌های مدرن

ESP32-H2 (نسبتاً جدید)

  • ویژگی‌ها: فقط BLE + Zigbee/Thread (بدون وای‌فای)

  • مناسب برای: پروژه‌های Mesh، Matter، خانه هوشمند (بدون نیاز به اینترنت مستقیم)

ESP32-PICO-D4

  • ویژگی‌ها: چیپ کوچک All-in-One (MCU + Flash + Crystal + Caps)

  • مناسب برای: طراحی مدارهای بسیار کوچک، پوشیدنی‌ها، بردهای جمع‌وجور

بردهای توسعه محبوب ESP32:

ESP32 CAM

ESP32 CAM کمی با سایر بردهای توسعه موجود در این لیست متفاوت است. این میکروکنترلر کاملاً توسعه یافته همچنین دارای یک دوربین یکپارچه و سوکت کارت میکرو SD است.

ESP32-CAM بر اساس ماژول ESP32-S است، بنابراین مشخصات یکسانی دارد. این شامل رابط های UART، SPI، I2C و PWM، آپلود تصویر Wi-Fi، سرعت ساعت تا 160 مگاهرتز و 9 پورت GPIO است.

همچنین شامل یک ماژول OV2640 – که دارای سنسور 2 مگاپیکسلی است – و همچنین از دوربین های OV7670 نیز پشتیبانی می کند.

از آنجایی که اجزای زیادی در قسمت زیرین  ماژول وجود دارد، هنگام انجام پروژه های آموزشی با ESP32-CAM، استفاده از برد برد به جای برد مدار چاپی آسان تر میباشد. علاوه بر این، استفاده از جامپرهای مادگی توصیه می شود.

ESP32-DevKitC

ESP-DevKitC یک برد توسعه نسبتا کوچک از Espressif است. پین های ورودی/خروجی به هدر پین ها در هر دو طرف برای اتصال آسان تقسیم بندی می شوند. توسعه دهندگان می توانند ماژولهای جانبی را با سیم های جامپر متصل کنند یا ESP32-DevKitC V4 را روی برد برد نصب کنند.

یک مزیت کلیدی این برد توسعه نه تنها اندازه کوچک آن، بلکه مصرف کم انرژی آن است.

Node-MCU-32S

برد توسعه NodeMCU دارای اتصال Wi-Fi+Bluetooth، CP2102 داخلی و کلیدها است.

یکی از ویژگی های کلیدی این برد توسعه AI Thinker این است که پین ​​های I/O ماژول ESP-WROOM-32 از طریق هدرهای افزونه قابل دسترسی هستند. علاوه بر این، منبع باز است و از چندین کد منبع مختلف پشتیبانی می کند.

حرف آخر

هیچ مقاله ای نمی تواند تمام ویژگی های سری ESP32 را پوشش دهد. با این حال، این اطلاعات باید نقطه شروع خوبی را برای شما فراهم کند تا بهترین تراشه ها، ماژول ها و بردهای توسعه ESP32 را برای پروژه های اینترنت اشیا خود پیدا کنید.

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

دکمه بازگشت به بالا