آموزش, توصیه شده, معرفی, مقاله های سیسوگ, میکروکنترلر ESP32

کدام سری های ESP32 برای پروژه من مناسب است؟

سری های esp32

از زمانی که اولین ورژن ESP32 تولید و راهی بازار شده، نزدیک 6 سال می گذرد. شاید شما با ESP8266 آشنایی داشته باشید. حدود سال 2014 وقتی که شرکت چینی Espressif ماژول های ESP8266 را تولید کرد، پس از مدتی برخی از توسعه دهنده ها با محدودیت هایی در ESP8266 مواجه شدند. یکی از این محدودیت ها، عدم رمزنگاری قوی در ESP8266 بود. اما در سال 2016 این شرکت SoC قدرتمند ESP32 به بازار فرستاد و تا امروز نسخه های متعددی از ESP32 تولید شده، آیا تفاوت آن‌ها را میدانید؟

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

 

سری های ESP32

  • سری ESP32:  تاریخ تولید 2016, September
  • سری ESP32-S2: تاریخ تولید 2019, September
  •  سری ESP32-C3: تاریخ تولید 2020, November
  •  سری ESP32-S3: تاریخ تولید 2020, December
  • سری ESP32-C6: تولید انبوه نشده – در این مقاله بررسی نمیشود. به مقاله لینک مراجعه کنید.
  • سری ESP32-H2: تولید انبوه نشده – در این مقاله بررسی نمیشود.
  • سریESP32-C2 : تولید انبوه نشده – در این مقاله بررسی نمیشود.
  •  سری ESP32-C5: تولید انبوه نشده – در این مقاله بررسی نمیشود. به مقاله لینک مراجعه کنید.

 

سری ESP32

سری  ESP32با پردازنده Xtensa® LX6 اولین نسخه و محبوب ترین بازار ایران هست. معمولا در طراحی ها از پکیج ماژول      ESP32 استفاده می شود. با این حال شما میتوانید پکیج چیپ  ESP32را برای طراحی های پیچیده تر تهیه کنید. همچنین برای طراحی های prototype و تست های اولیه برای یادگیری کار با  ESP32امکان استفاده از Development Board وجود دارد.

اگر با سری های ESP32 آشنایی ندارید، در نگاه اول، تفاوتی که این میکروکنترلر قدرتمند متمایز می کند، قابلیت بستر ارتباطی Wi-Fi و Bluetooth هست که درون Chip به صورت SoC یکپارچه شده. ویژگی دیگر این SoC توان مصرفی بسیار پایینه که برای دستگاه هایی با منبع باتری، اهمیت ویژه ای دارد. از این جهت هرچه توان مصرفی SoC پایین تر باشد مدت زمان lifetime باتری بالاتر خواهد بود. توان مصرفی SoC در لحظات کار با واحد WiFiجریان کشی بسیار بالاتری خواهد داشت.

از طرف دیگر اگر بخواهیم مقایسه ای نسبت به نسل قبلی یعنی SoC های ESP8266 داشته باشیم. اولین ویژگی، افزایش سرعت CPU به 240Mhz بود. CPU در دو هسته (Dual-Core) در دسترس هست. دومین ویژگی، افزایش حجم حافظه Memory هست. حافظه  SRAM به 520KB رسید، این میزان حافظه SRAM در مقایسه با MCU های دیگر واقعا زیاده! برای حافظه Flash باید یک حافظه خارجی با رابط QSPI به میزان فضای دلخواه تا 16MB به  ESP32 متصل کنید. شاید برای برخی از  پروژه های شما این حجم از حافظه SRAM کافی نباشد. شما می توانید یک حافظه اضافه SRAM خارجی از طریق رابط QSPI انتخاب کنید.

سومین ویژگی که مورد بحث قرار می دهیم، مسئله امنیت هست. رعایت امنیت و رمزنگاری پروتکل‌ها در دنیای اینترنت اشیا بسیار مهمه اما ESP8266 به عنوان یک SoC محبوب، واحد سخت افزاری قدرتمندی جهت رمزنگاری اطلاعات نداشت. ولی در ESP32 این مشکل حل شده و واحد سخت افزاری شتاب‌دهنده محاسبات ( Acceleration) جهت رمزنگاری در مدهای SHA, RSA, AES, ECC وجود دارد. همه این قابلیت ها در کنار هم باعث شده این SoC را به یکی از محبوب ترین ابزار ها برای ساخت دستگاه های IOT تبدیل کند. قابلیت های دیگر ESP32 درون بلوک دیاگرام Functional تصویر زیر قرار گرفته که نشان دهنده کامل بودن این میکروکنترلر هست.

Chips

  • ESP32-D0WDQ6 (and ESP32-D0WD)
  • ESP32-D2WD
  • ESP32-S0WD
  • System in package (SiP) ESP32-PICO-D4

Datasheet

Modules

  • ESP32-WROOM-32

Datasheet

Pinout

موجود در بازار ایران

  • ESP32-WROOVER

Datasheet

Pinout

موجود در بازار ایران

Development Boards

  • Node-MCU

Pinout

Schematic

موجود در بازار ایران

  • ESP32-DevKitC

Pinout

موجود در بازار ایران

  • ESP32CAM

Pintout

موجود در بازار ایران

 

برای برنامه نویسی اولین سری های ESP32 کدام محیط کد نویسی و SDK مناسب است؟

  • ESP Arduino Core – C++ based firmware
  • ESP-IDF-Tools – ESP-IDF
  • Espruino – Javascript SDK and firmware
  • Micropython – Python for embedded devices
  • Mongoose OS – C or Javascript open-source OS
  • NodeMCU – Open-source Lua based firmware, similar to Node.js

 

کدام قابلیت های  ESP32 در دنیای برنامه نویسی مورد توجه قرار گرفته؟

اولین و اصلی ترین کاربرد ESP32 پروژه هایی هست که مرتبط با شبکه (Networking) هستند. ESP32 یک SoC با بستر ارتباطی WiFi که میتواند به یک روتر متصل شود یا اینکه به صورت Access Point بستر شبکه WiFi را ایجاد کند. زیرساخت بستر شبکه در ESP32متنوع هست، در توپولوژی های مختلف مثل شبکه Mesh، امکان ساخت شبکه وجود دارد. حتی امکان اتصال به شبکه از طریق Ethernet وجود دارد. یکی از کاربرد های محبوب ESP32، ساخت Gateway های شبکه های Local برای اتصال به اینترنت مورد استفاده قرار گرفته.

دومین کاربرد  ESP32در ذخیره دیتا و ارسال به سرور است. همانطور که گفته شد ESP32 نیاز به یک حافظه Flash خارجی دارد که حداقل از 4MB تا 16MB باشد. با پارتیشن بندی این حافظه Flash برای کاربرد های مختلف نهایتا فضای زیادی آزاد خواهد ماند. شما میتوانید از این فضای Flash جهت ذخیره (Log) دیتاها استفاده کنید. برای مثال دستگاه شما باید مقادیر سنسور ها را برای سرور ارسال کند. ولی ارتباط شبکه با سرور پایدار نیست و ممکنه در مواقعی از روز به مدت زمان های مختلف ارتباط قطع شود. بهترین عملکرد در لحظات آفلاین بودن دستگاه ذخیره مقادیر سنسور ها به همراه ساعت و تاریخ ثبت آن در حافظه Flash خواهد بود که در لحظه اتصال مجدد (Online) به شبکه و سرور بتوان مقادیر ذخیره شده را ارسال کرد. به عبارتی دیگر، دیتا های ذخیره شده تخلیه شود و با سرور Sync شود.

سومین کاربرد که در ESP32 که بسیار مورد توجه قرار گرفته، راه اندازی Web Server برای داشتن یک محیط گرافیکی (GUI) تحت وب بهره برد. راه اندازی Web Server جهت مانیتورینگ، کنترل و تنظیم پارامتر های دستگاه مورد استفاده قرار میگیرد. با توجه به پیشرفت برنامه نویسی وب، امکان ساخت Web Server هایی با قابلیت ها بالا امکان پذیر شده است. این قابلیت ها شامل ساخت انواع نمودار، انواع ویجت های نمایش اطلاعات، ویجت های کنترلی مثل اسلایدر ها  و text Input ها که تمامی المان ها می توانند ظاهری زیبا و کاربر پسند داشته باشند. شما میتوانید برای دستگاه خود یک نرم افزار وب محلی تحت WiFi داشته باشید که یک داشبورد با امکانات کامل داشته باشد. حتی برای ورود به داشبورد از کاربران، نام کاربری و رمز عبور بخواهد. در ادامه تصویر داشبورد تحت وب پروژه اپن سورس ESP-Dash را مشاهده کنید.

چهارمین کاربرد ESP32 در رابطه با رمزنگاری و سازگاری با پروتکل های شبکه هست.  برای مثال اگر از  ESP32به عنوان Gateway استفاده می کنید. وظیفه  ESP32 جمع آوری دیتاهای Node های درون شبکه محلی و ارسال این اطلاعات به سرور  بر روی بستر اینترنت خواهد بود. رمزنگاری و رمزگشایی اطلاعات نیاز به محاسبات سنگین و حافظه SRAM زیاد دارد.

ما می توانیم میکروکنترلر Node های درون شبکه محلی را ارزان قیمت انتخاب کنیم و این Node ها دیتای خود را جهت رمزنگاری و ارسال به سرور به ESP32 بدهند. یک واحد های شتاب دهنده محاسبات رمزنگاری در مد های AES ,SHA, RSA, ECC در سخت افزار ESP32 وجود دارد. همچنین ESP32 سازگاری کامل با پروتکل های ارتباطی روی شبکه اینترنت را دارا هست. این پروتکل ها نظیر: HTTP، MQTT, Web Socket, Modbus TCP و سایر پروتکل ها در بستر WiFi و Ethernet امکان پیاده سازی دارند. در کنار این موارد می توانید از ماژول های مخابراتی Quectel برای اتصال به شبکه های GPRS/3G/4G استفاده کنید. راه اندازی پروتکل های ذکر شده در Quectel از طریق AT Command ارائه شده و جهت رمزنگاری قابلیت SSL درون این ماژول ها قرار داده شده است. اگر چه تا حالا با ماژول های Quectel آشنایی نداشتید به آموزش منتشر شده در سیسوگ مراجعه کنید.

 

سخت افزار Maixduino

توان عملیاتی سری ESP32 قابلیت سخت افزاری شتابنده محاسبات  هوش مصنوعی را ندارد. سخت افزار Maixduino ESP32 یک Development Board با قابلیت های AI هست. در این سخت افزار از ESP32 در کنار  ماژول K210 استفاده شده. K210 با معماری RISC V قابلیت AI تحت SDK میکرو پایتون فراهم کرده است. امکان خرید سخت افزار Maixduino  در بازار ایران فراهم هست. اگر با معماری RISC V اشنایی ندارید به مقاله لینک زیر مراجعه کنید:

RISC-V چیست؟

 تصویر زیر یک لیست دسته بندی شده از پروژه های پیشنهادی در دیتاشیت ESP32 هست.

یک سوال مهم، آیا استفاده از ESP32 در صنعت برای ما چالشی ایجاد می کند؟ چقدر قابل اعتماد است؟

همانطور که گفته شد ESP32 میکروکنترلر کاملی هست و می توانیم تجهیزات مختلفی با آن طراحی کنیم و این تجهیزات باید با ضریب اطمینان بالایی درون صنعت کار کنند. اولین نکته ای که باید به آن توجه کنید، این SoC به تازگی در چند سال اخیر وارد بازار شده. بنابراین، فیدبک ها  و تجربه های کمتری از آن وجود دارد. تجربه های عملی و بکارگیری این میکروکنترلر درون پروژه های مختلف نشان دهنده عملکرد عالی و بدون مشکل آن هست. طبق سیاست های صنایع حساس که معمولا از PLC ها برای اتوماسیون بهره می برند، در این صورت میتوانیم در کنار PLC از ESP32 استفاده کنیم.  برخی از افراد در مخالفت بکارگیری میکروکنترلر ها در صنعت هستند ولی ما تمام نکات لازم برای بهره مندی و بهینه سازی فرایند ها اشاره خواهیم داشت. اما چطور میتوان در کنار PLC از قابلیت های ESP32 کمک بگیریم؟!

یکی از راه های  اتصال ESP32 به PLC جهت انتقال دیتا استفاده از بستر ارتباطی RS485 تحت پروتکل Modbus هست. فرایند های اجرایی حساس بدون وابستگی به  ESP32از طریق PLC انجام میشوند. استفاده از  ESP32به عنوان Gateway در کنار PLC نقطه عطفی جهت محقق سازی اینترنت اشیا صنعتی (IIoT) در اتوماسیون صنعتی خواهد بود.  ESP32میتواند یک Gateway برای تبدیل پروتکل های Modbus RTU در بستر RS485 به پروتکل Modbus TCP در بستر شبکه باشد. کاربرد دیگر  ESP32در کنار PLC جهت ایجاد یک ارتباط بین سرور و PLC هست.  ESP32به عنوان یک پل ارتباطی پروتکل های اتوماسیون صنعتی نظیر Modbus را به پروتکل های تحت شبکه و اینترنت مثل MQTT و OPC UA تبدیل می کند. همچنین محاسبات سنگین، نظیر محاسبات یادگیری ماشین درون PLC قابل پیاده سازی نیست و در  ESP32این قابلیت وجود دارد بتوانید از کتابخانه Tiny ML برای الگوریتم های هوش مصنوعی خود در کنار PLC به صورت Edge AI در سمت دستگاه پیاده سازی کنید.

در پست های اینده محصولات تولید شده با  ESP32را بررسی خواهیم کرد. برای نمونه تصویر سخت افزاری های طراحی شده با هسته  ESP32در زیر مشاهده میکنید:

لینک های مفید منابع تکنیکال جهت انتخاب ESP32:

The Internet of Things with ESP32

ESP Product Selector (espressif.com)

 

لینک های مفید جهت آموزش ESP32:

ESP32- techtutorialsx

(328) G6EJD – David – YouTube

 

 

سری ESP32-S2

سری  ESP32-Sبا پردازنده نسل جدید  Xtensa® LX7 اما این بار متفاوت از نسل قبلی به صورت تک هسته ای ارائه شده. به طور کلی بعضی از قابلیت ها نسبت به  ESP32کمتر و حذف شده ولی امکانات جدید تری هم به آن اضافه شده است، بنابراین برای پاسخ به سوال کدام بهتر است؟! پاسخ مشخصی وجود ندارد. با توجه به نیازمندی پروژه، سری  ESP32مورد نیاز انتخاب کنید.

ابتدا مقایسه ای از سری  ESP32و ESP32-S2 داشته باشیم. حافظه SRAM از 512KB به 320KB کاهش پیدا کرده است. تعداد GPIO ها از 34 به 43 پایه افزایش یافته. برخلاف مدل قبلی  ESP32، مدل  S2 دارای قابلیت ارتباط USB هست که بدون نیاز به چیپ های مبدل یک ارتباط USB OTG داشته باشد.

ارتباط Bluetooth از S2 حذف شد و صرفا از طریق WiFi امکان ارتباط بی سیم میتوان داشت. همچنین قابلیت اندازه گیری Time of Flight  برای WiFi به ESP32-S2 اضافه شده. با این ویژگی، مکان یابی تحت بستر WiFi امکان پذیر شده. با قابلیت Wi-Fi Positioning میتوان حضور افراد در محیط های بسته را تشخیص داد. همچنین مکان یابی محیط بسته (Indoor positioning systems) قابل انجام است. یکی از تکنیک های مکان یابی Indoor اندازه گیری قدرت سیگنال دریافتی به روش (received signal strength indication or RSSI) هست. تکنیک دیگر که در GPS استفاده می شود، اندازه گیری زمان ارسال و دریافت پیام و سیگنال به روش Real-time locating systems (RTLS) می باشد. برای اطلاع بیشتر یک مقاله در IEEE با روش Fine Time Measurement (FTM) با هسته  ESP32جهت مکان یابی چاپ شده است (لینک مقاله).  راهکار دیگر جهت مکان یابی Indoor استفاده از BLE ها نظیر SoC های NRF51 & NRF52 از شرکت Nordic Semiconductor است، این SoC ها توان مصرفی پایین تری دارند و مکان یابی آن از طریق سیگنال Bluetooth انجام میشود. جهت آشنایی بیشتر در رابطه با مکان یابی با BLE ها عبارت BLE Beacon را جست و جو کنید.

سری  ESP32-S2در رمزنگاری و امنیت قدرتمند تر از نسل قبلی خود شده و اینبار امکان احراز هویت پیام ها با مکانیزم قدرتمند (Hashed Message Authentication Code (HMAC  فراهم  شده است. اطلاع بیشتر در لینک . HMAC

از نظر توان مصرفی در مد های مختلف CPU به طور تقریبی 50% توان مصرف کمتری  نسبت به سری  ESP32دارد. این  مد ها نظیر CPU-ON , Light-Sleep , Deep-Sleep و RF Working هستند.

با توجه به افزایش پایه های GPIO در مدل S2، از طرفی بعضی از Port ها نظیر UART در مدل S2 نسبت به نسل قبلی خود از 3 به 2 کاهش پیدا کرده است.  سری  ESP32دارای 2 پورت CAN بوده اما در مدل S2 هیچ پورت CAN وجود ندارد. همچنین  ESP32 دارای سنسور Hall داخلی بوده اما این سنسور در مدل S2 حذف شده است.

به طور کلی قابلیت زیادی نسبت به نسل قبلی به مدل S2 اضافه نشده است. جدول زیر فهرستی از تفاوت های مدل S2 با ESP32  و ESP8266 مشخص شده است. همچنین تصویری از یک Development Board مدل S2 در زیر نمایش داده شده، نکته ای که باید در طراحی PCB برای  ESP32در نظر داشته باشید، سعی کنید قسمت زیر آنتن PCB ماژول EPS32  فضای زیر آن خالی باشد تا بتوانید قدرت سیگنال دهی بهتری در فواصل دور تر داشته باشید.

 

 

 سری ESP32-C3 و 4- سری ESP32-S3

با معرفی ESP32-C3 و ESP32-S3 شرکت Espressif به یکی از شرکت های پیشتاز در تکنولوژی artificial intelligence of things (AIoT) تبدیل شد.  دو سری C3 و S3 سخت افزار های AIoT شرکت  Espressif هستند که کاربری هوش مصنوعی ارائه میدهند. در کنار سخت افزار های قدرتمند، شرکت Espressif  با در اختیار گذاشتن فریمورک های توسعه Open Source به برنامه نویسان کمک شایانی کرده است. مهم ترین محیط کدنویسی برای سری C3 و S3 استفاده از ESP-IDF می باشد. اگر عضو آن دسته برنامه نویسان آردوینو برای  ESP32هستید، نگران پشتیبانی آردوینو برای سری C3 و S3 نباشید. سری C3,S3,S2 به طور کامل در هسته Arduino پشتیبانی می شود. با ثبت بیش از 50 هزار پروژه Open Source در گیت هاب، ESP32 به یکی ترند های پر طرفدار بین برنامه نویسان ++C/C تبدیل شده است. در مقایسه ESP-IDF و پلتفرم Arduino جهت برنامه نویسی ESP32، اگر تجربه برنامه نویسی میکروکنترلر ندارید، بهترین انتخاب برنامه نویسی با Arduino خواهد بود. اما اگر قصد دارید به امکانات کامل و بروز شده قابلیت های  ESP32دست پیدا کنید، قابل انکار نیست که ESP-IDF بهترین گزینه برای حرفه ای ها خواهد بود. جهت برنامه نویسی با ESP-IDF می بایست به زبان برنامه نویسی C تسلط داشته باشید.

هر دو سری C3,S3 بستر ارتباطی WiFi 2.4 Ghz به همراه Bluetooth LE نسخه 5 (Long Range) در کارنامه خود دارند. راه اندازی شبکه Mesh تسهیل تر شده و می توانید از دو سرویس Espressif’s Wifi Mesh و Bluetooth SIG Mesh استفاده کنید. استفاده از شبکه Mesh در خانه هوشمند اهمیت بالایی برخوردار است.

بیشترین  کاربری استفاده از  ESP32به ویژه سری C3 و  S3در محصولات خانه هوشمند وارد بازار می شود. جهت جلوگیری از نفوذ و اقدام مخرب هکر و حفظ حریم شخصی افراد، از این جهت لازم نکات و تکنیک های برقراری امنیت در لایه های مختلف را در نظر داشته باشید. سری C3 و S3 در سه فیلد Secure Boot و Flash Encryption و Digital Signature & HMAC بهینه سازی های  موثری نسبت به نسل های قبلی خود انجام داده است. قابلیت Secure Boot(RSA-based) به شما این اطمینان را میدهد تا صرفا فقط یک برنامه مشخص روی  ESP32بتوانید اجرا کنید. در قابلیت Flash Encryption، اگر به یاد داشته باشید یک حافظه Flash در کنار  ESP32وجود دارد، اطلاعات و برنامه اجرایی در حافظه Flash ذخیره می شوند. قابلیت رمزنگاری Flash، به شما اطمینان میدهد تمام اطلاعات درون این حافظه رمزنگاری شده است. این رمزنگاری در مد AES-XTS انجام می شود.

سری C3 از پردازنده 32 بیتی با معماری RISC-V به صورت تک هسته ای برخوردار است. سرعت این پردازنده 160Mhz می باشد. سایز حافظه SRAM به میزان قابل قبول 400KB رسیده و امکان اتصال حافظه Flash تا 16MB وجود دارد. قیمت C3 پایین تر از S3 می باشد و سری C به ارزان قیمت بودن (cost-effective) یاد می شود. پایه های GPIO سری C3 به در پکیج SoC به تعداد پایین 22 تا ارائه شده. اما تعداد پایه ها در دو ماژول های طراحی شده برای  ESP32-C3 توسط شرکت Espressif در دو مدلESP32-C3-MINI-1  و ESP32-C3-WROOM-02  به تعداد 15 پایه  GPIO رسیده. این ماژول ها دارای حافظه Flash به سایز 4MB می باشند.

شرکت  Espressif با سرویس جدید ESP RainMaker راهکار های پلتفرم ابری برای SoC های  ESP32ارائه می دهد. این سرویس به صورت End-to-End قابلیت اتصال  ESP32به سرویس های نرم افزاری ESP Rainmaker APP و سرویس دستیار صوتی ابری متصل میکنه. با استفاده از سرویس های پلتفرم ioT شرایط تحقق بخشیدن به ایده های اجرایی خود با سرعت عمل بیشتر به طول می انجامد و زمان رسیدن به بازار (Time to Market) کمتر خواهد شد. پلتفرم ESP RainMaker به صورت Third party با محصولات Alexa و Googlehome و Apple Homekit سازگار هست و سرویس های دستیار صوتی این محصولات میتواند از طریق ESP RainMaker با دستگاه شما ارتباط برقرار کند. این پلتفرم از ساختار AWS Amazon به صورت Serverless استفاده می کند. همچین برای Update فریمور دستگاه های مبتنی بر ESP32 به صورت Over The Air (OTA) میتوانید از پلتفرم ESP RainMaker استفاده کنید. در مقالات بعدی به امکانات ESP RainMaker اشاره خواهیم داشت.

در نهایت به یکی از بهترین انتخاب ها رسیدیم،  ESP32-S3با قابلیت محاسبات AI یک محصول قدرتمند AIoT از شرکت Espressif هست. سری S3 از پردازنده دو هسته ای Xtensa LX7 با سرعت 240Mhz برخورداره. همچنین حجم فضای SRAM مجدد به مقدار بالای 512KB رسیده حتی می توانید یک حافظه Flash تا حجم 1GB به آن متصل کنید. دو ماژول برای سری ESP32-S3 توسط شرکت Espressif طراحی شده، مدل های ESP-S3-MINI-1  و ESP32-S3-WROOM.

واحد شتاب دهنده AI با پشتیبانی Vector Instructions جهت تسریع در محاسبات یادگیری ماشین بکار می رود. Vector Instructions، دستورالعمل هایی هستند که قابلیت پردازش موازی داده را امکان پذیر می کنند. این واحد شتابدهنده محاسبات میتواند برای محاسبات شبکه عصبی نیز استفاده شود. برنامه نویسان می توانند از طریق کدنویسی با ESP-IDF از کتابخانه های ESP-DL , ESP-NN, ESP-DSP استفاده کنند. اگر بخواهید از قابلیت های AI در  ESP32استفاده کنید بهترین پیشنهاد استفاده از ESP-IDF، بدلیل اینکه هنوز کتابخانه ها کامل نیستند و در حال بروز  رسانی هستند. اما دو کتابخانه ESP-WHO و ESP-Skainet که به ترتیب برای تشخیص چهره و دستیار صوتی کامل تر هستند و میتونید برای ESP-IDF از آنها استفاده کنید.

جهت بکارگیری دستیار صوتی عملکرد محصولات و سرویس بازار نظیر Alexa , Google Assistant تشخیص به صورت آنلاین و آفلاین عمل می کنند. عملکرد آفلاین معمولا جهت تشخیص کلمات مشخص شده برای Wake-up کردن سرویس آنلاین هست.

اما در ESP32-S3 به صورت افلاین و بدون نیاز به هیچ پردازنده جانبی می توان گفتار را تشخیص داد و پس از شناسایی شدن معنای گفتار عملکرد متناظر آن اجرا و نتیجه را تحت پاسخ صوتی، مجدد به کاربر داده می شود.  تست هایی جهت دقت عملکرد دستیار صوتی ESP32-S3 در اینترنت وجود دارد. ویدیو این تست ها در محیط های ارام و همراه با نویز در فاصله های مختلف 1متر و 3 متر و بیشتر در وبسایت YouTube وجود دارد.  همچنین با استفاده از سرویس هایی ابری میتوان به صورت آنلاین نیز تشخیص گفتار انجام شود.

اگر بخواهید یک LCD TFT راه اندازی کنید، پیشنهاد من استفاده از کتابخانه TFT_ESPI هست. اما در سری S3 شرایط طراحی یک HMI تا رزولوشن تصویر 480*800 به صورت لمسی وجود دارد. سری S3 دارای 14 پایه جهت اتصال کلید های لمسی Touchpad که کاربرد زیادی در ساخت کلید و پریز هوشمند دارد. جالب است بدانید که محصولات خانه هوشمند بر پایه سرویس Tuya از SoC های شرکت Espressif استفاده می کنند. در تصویر زیر نمونه محصول  ESP32-S3-BOX-AI مشاهده کنید.

جهت خرید ماژول های ESP32-S3 از شرکت Ai Tinker دو سری ماژول معروف به مدل های ESP32-S3-32S و مدل ESP32-S3-12K طراحی شده. همچین Development board هایی با این ماژول ها در بازار ایران جهت خرید وجود دارد.

یکی از جدید ترین استاندارد های پروتکل های بی سیم خانه هوشمند Matter نام دارد. این پروتکل با نام قبلی “Project CHIP”

شناخته می شد. شرکت های لیدر صنعت IoT با همراهی یکدیگر استاندارد Matter را توسعه دادند. شرکت Espressif با دستور کار قرار دادن پیاده سازی Matter در تمامی  ESP32توسعه های خود را شروع کرده. در حال حاضر Matter SDK به همراه مثال های کدنویسی برای  ESP32وجود دارد.

تصویر زیر مقایسه از SoC های شرکت Espressif: (جهت مقایسه کامل تر در جدول این لینک)

سری های esp32

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

14 دیدگاه در “کدام سری های ESP32 برای پروژه من مناسب است؟

  1. Avatar for سید مهدی سید مهدی گفت:

    سلام تشکر بابت مطلب مفیدی که در دسترس قرار دادید
    یک سوال شما نوشتید که esp32_s3 تا 1gb حافظه فلش ساپورت میکنه ولی توی داکیومنت اسپرسیف نوشته شده تا 32mg بیشتر ساپورت نمیکنه؟
    و یک سوال دیگه اینکه با توجه به اینکه esp32_s3 برای هوش مصنوعی بهینه شده آیا میشه روش vosk یا opencv رو اجرا کرد؟

    1. Avatar for Zeus ‌ Zeus ‌ گفت:

      ۱. من مقاله ننوشتم ولی احتمالا منظورشون قابلیت آدرس دهی هست
      ۲. بله الان میشه مدلهای هوش مصنوعی رو روشون اجرا کرد – چیزایی مثل تنسورفلو الان براش هست

  2. Avatar for وحید وحید گفت:

    سلام ممنون بخاطر زحمتی که برای تهیه این مطلب کشیدید.سایتتون بی نظیره.
    در مورد زبان های برنامه نویسی روی esp سوال داشتم. به نظرتون باید حتما تونست که با c برنامه esp ها رو نوشت؟ یا برنامه نویسی با پایتون یا کامپایلر آردوینو کفایت می کنه. مثلا شرکت هایی که حوزه اینترنت اشیا فعالیت دارن از کدوم زبان استفاده می کنن؟کلا میخوام بدونم ی حرفه ای توی این حوزه باید چه تخصص هایی داشته باشه.
    تشکر

    1. Avatar for Zeus ‌ Zeus ‌ گفت:

      ببین هر چیزی که کار کنه رو میشه استفاده کرد
      من پروژه هایی میشناسم که با بیس پایتون روی این ماژول الان داره فروخته میشه
      ولی خوب اگر همون کار رو با سی میکرد احتمالا سریعتر بود و به مراتب حافظه کمتری رو میگرفت و توی توسعه راحت تر بودن ولی الان هم پروژه داره با پایتون کار میکنه و مشکلی نداره
      پس نمیشه گفت نمیشه اون کار رو انجام داد
      باید دید محدودیت شما چی هست و بر همون اساس انتخاب کرد- گاهی توسعه با پایتون سخت تر از زبان سی هست اونم برای وجود محدودیت هایی هست که براتون پیش میآره

  3. Avatar for ایمان ایمان گفت:

    با سلام . من یک برد esp32camدارم و میخام از بلوتوث داخلیش استفاده کنم اما هیچ کتابخانه ای اعم از blouthoos serial.h ویا کتابخانه های مربوط به bleرو قبول نمیکنه . ایاواقعا این مازول دارای بلتوث داخلی هست؟

    1. Avatar for Zeus ‌ Zeus ‌ گفت:

      فکر میکنم باشه
      شما باید شماره چیپ رو ببرسی کند تا متوجه شوید چه امکاناتی در اختیار دارید

  4. Avatar for Ali Ali گفت:

    سلام، بسیار ممنون از مطالب مفیدتون.

    ورژنی از esp32 هست که فلش داخلی هم داشته باشه؟

    1. Avatar for مهدی براتی مهدی براتی گفت:

      ممنون از نظر شما
      ESP32 در سری های مختلف برای حافظه Flash به دو صورت Embedded یا External هست.
      اما به طور کلی ماژول ها همراه با حافظه Flash External ارائه میشوند که با رابط QSPI میتوانید تعدادی چیپ حافظه Flash/SRAM خارجی به ESP32 متصل کنید. ( درون ماژول ها یک ایسی Flash خارجی قرار گرفته)
      اینکه دنبال حافظه داخلی هستید، در سری های ESP32 باید پارت نامبر چیپ را بررسی کنید.
      به عنوان مثال ESP32-D0WD عدد 0 نمایانگر 0 بودن ظرفیت Flash ایسی هست که یعنی این ESP32 هیچ حافظه فلش داخلی ندارد. و در سری ESP32 صرفا مدل ESP32-U4WDH دارای حافظه Flash داخلی یا embedded هست.
      در سری S2 به بعد تنوع بیشتر شده. اما در بازار ایران صرفا فقط ماژول ها موجود هستند. باید بررسی کنید در هر ماژول چه نوع چیپ بکار رفته و پارت نامبر چیپ مبنی بر داشتن حافظه Flash داخلی بررسی کنید.
      این اطلاعات به طور کامل درون دیتاشیت چیپ ها قرار گرفته است.
      همچنین یک حافظه ROM داخلی درون ESP32 وجود دارد که دسترسی به ان نیست.

  5. Avatar for سعید حقیقی پور سعید حقیقی پور گفت:

    وقت بخیر
    ممنون بابت مقاله خوبتون
    من متوجه نشدم پردازنده روی esp32cam دقیقا چه پارت نامبری داره؟ چون تو تصاویر نوشته esp32-s ولی متوجه نشدم esp32-s2 هست یا esp32-s3؟
    ممکنه لطفا راهنمایی بفرمایید؟

    1. Avatar for مهدی براتی مهدی براتی گفت:

      تشکر از نظر شما
      در واقع EPS32-S از ESP32-S2 , ESP32-S3 متفاوت است.
      ESP32-S نام ماژول است که در ان از چیپ سری ESP32 معمولی استفاده شده است. و قابلیت های سری S2, S3 را ندارد.
      درون برد ESP32CAM از ماژول ESP32-S از شرکت ai-thinker استفاده شده است.

  6. Avatar for samaras samaras گفت:

    ممنون از تهیه این مطالب مفید و آموزنده

  7. Avatar for Mahdi.h   Mahdi.h   گفت:

    ممنون از شما.
    مطلب جامع و مفیدی بود

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

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