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 آورده شده است:
DESCRIPTION | ESP-32 |
---|---|
2 | Core |
32 bits | Architecture |
Tensilica Xtensa LX106 160-240MHz | Clock |
IEEE802.11 b/g/n | WiFi |
Yes - classic & BLE | Bluetooth |
520KB | RAM |
External QSPI - 16MB | Flash |
22 | GPIO |
2 | DAC |
18 | ADC |
SPI-I2C-UART-I2S-CAN | Interfaces |
و در ادامه یک خلاصه دقیق تر رو با هم مرور میکنیم:
پردازنده ها – 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
تولید کنندگان ماژول ها و بردهای ESP32:
تراشه های ESP32
Espressif Systems سازنده تراشه ESP32 است. این تراشه در اندازههای مختلف از جمله 7 میلیمتر در 7 میلیمتر، 6×6، 5×5 و حتی بستههای QFN 4×4 موجود است. در اینجا مدل های فعلی موجود است:
Processor cores | Embedded flash memory (MB) | Package size | Model |
---|---|---|---|
2 | 0 | 6mm x 6mm | ESP32-D0WDQ6 |
2 | 0 | 5mm x 5mm | ESP32-D0WD |
2 | 2 | 5mm x 5mm | ESP32-D2WD |
1 | 4 | 5mm x 5mm | ESP32-U4WDH |
1 | 0 | 5mm x 5mm | ESP32-S0WD |
1 | NA | 7mm x 7 mm | ESP32-S2 |
1 | 2-4 | 7mm x 7 mm | ESP32-S2F |
2 | 0-8 | 7mm x 7 mm | ESP32-S3 |
1 | 8 | 7mm x 7 mm | ESP32-SE-PICO-1 |
1 | 2-4 | 4mm x 4mm | ESP8684 |
1 | 0-4 | 5mm x 5mm | ESP32-C3 |
1 | 2-4 | 4mm x 4mm | ESP8685 |
1 | 0-4 | 5mm x 5mm | ESP32-C6 |
1 | 2-4 | 4mm x 4mm | ESP32-H2 |
ماژول های ESP32:
Espressif:
ماژول های زیادی وجود دارد که نمی توان در اینجا به همه آنها اشاره کرد، اما در اینجا برخی از ماژول های برتر که از تراشه Espressif Systems ESP32 استفاده می کنند آورده شده است:
Flash | Antennae | PINS | Dimensions | Model |
---|---|---|---|---|
4MB | PCB trace | 38 | 18x25.5x2.8 | ESP-WROOM-32 |
4MB | PCB trace | 38 | 18x25.5x3.1 | ESP-WROOM-32D |
4MB | U.FL Socket | 38 | 18x19.2x3.2 | ESP-WROOM-32U |
4MB | PCB trace | 38 | 18x31.4x3.3 | ESP-WROVER |
4MB | U.FL Socket, PCB | 38 | 18x31.4x3.3 | ESP-WROVER-I |
4MB | U.FL Socket, PCB | 38 | 18x31.4x3.3 | ESP-WROVER-B |
4MB | U.FL Socket, PCB | 38 | 18x31.4x3.3 | ESP-WROVER-IB |
4MB | U.FL Socket, PCB | 37 | 18x31x3 | ESP32-S2-WROOM |
4-16MB | U.FL Socket, PCB | 41 | 18x25.5x3.1 | ESP32-S3-WROOM-1 |
Ai-Thinker:
ماژول های فعلی Ai-Thinker ESP32 به شرح زیر است:
Flash | Antennae | PINS | Dimensions | Model |
---|---|---|---|---|
4MB | PCB trace | 38 | 18x25.5x2 | ESP32-S |
4MB | U.FL Socket, PCB trace | 38 | 18x25.5x2 | ESP32-A1S |
کیت های توسعه ESP32/برد:
Espressif
بردهای توسعه Espressif ESP32 فعلی عبارتند از:
Flash | USB | Firmware | Onboard module | Model |
---|---|---|---|---|
4MB flash | USB to serial interface | Espressif Non-OS SDK, using Lua scripting language | ESP-WROOM-03 | ESP32-DevKitC |
4MB flash + 8MB PSRAM | USB to serial interface | Espressif Non-OS SDK, using Lua scripting language | ESP-WROOM-32 or ESP32-WROVER | ESP-WROVER-KIT |
4MB flash | USB to serial interface | Espressif Non-OS SDK, using Lua scripting language | ESP32-PICO-D4 | ESP32-PICO-KIT |
4MB flash | USB to serial interface | Espressif Non-OS SDK, using Lua scripting language | ESP32-S2-WROVER | ESP32-S2-Kaluga-1 |
Ai-Thinker
بردهای توسعه AI-Thinker عبارتند از:
Flash | USB | GPIO & ADC Pins | Firmware | Onboard module | Model |
---|---|---|---|---|---|
32MB | USB port for power input | 38 | Lua, AT commands, MicroPython, Arduino | ESP-WROOM-32 | NodeMCU-32S |
32MB | USB port for power input | 9 | Embedded Lwip and FreeRTOS | ESP32-CAM | ESP32-CAM |
Adafruit
بردهای توسعه Adafruit ESP32 عبارتند از:
Flash | USB | GPIO & ADC Pins | Firmware | Onboard module | Model |
---|---|---|---|---|---|
4MB | USB to serial interface | 24 | ESP-IDF and Arduino IDE software | ESP-WROOM-32 | HUZZAH32 |
Wemos
بردهای توسعه Wemos ESP32 عبارتند از:
Flash | USB | GPIO & ADC Pins | Firmware | Onboard module | Model |
---|---|---|---|---|---|
4MB | USB to serial interface | 19 | Compatible with Arduino, MicroPython | ESP-WROOM-32 | LOLIN D32 |
4MB/16MB flash 4MP PSRAM | USB to serial interface | 19 | Compatible with Arduino, MicroPython | ESP-WROOM-32 | LOLIN D32 PRO |
Arducam
برد توسعه فعلی Arducam ESP32 به شرح زیر است:
Flash | USB | GPIO & ADC Pins | Firmware | Onboard module | Model |
---|---|---|---|---|---|
32Mbit Flash, 8MByte PSRAM | Built in micro USB | 23 | Compatible with Arduino IDE | ESP-32S | ESP32 UNO |
چه SDK هایی برای ESP32 استفاده می شود؟
اکنون طیف گسترده ای از SDK ها در دسترس هستند. Espressif یک SDK رسمی برای استفاده با ESP32، ESP32-2 یا ESP8266 ارائه میکند. این SDK مبتنی بر FreeRTOS است. FreeRTOS سیستم عامل بلادرنگ ارائه شده توسط آمازون است، بنابراین SDK به طور خاص برای استفاده با آن سیستم طراحی شده است.
جدا از گزینه های Espressif، تعداد زیادی SDK تجاری و منبع باز در بازار وجود دارد، از جمله:
- ESP Arduino Core – C++ based firmware
- ESP-SDK-Tools – Open integrated SDK for ESP8266
- Espruino – Javascript SDK and firmware
- Micropython – Python for embedded devices
- Moddable SDK – Javascript SDK
- Mongoose OS – C or Javascript open-source OS
- NodeMCU – Open-source Lua based firmware, similar to Node.js
- uLisp – Lisp-based framework
- Zerynth – Python framework for IoT
بهترین ماژول یا برد توسعه 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 را برای پروژه های اینترنت اشیا خود پیدا کنید.