تفاوت برد ESP32 DevKit با Esp32 Camera و راهنمای انتخاب برای پروژههای مختلف
برد ESP32 یکی از پرطرفدارترین بردهای توسعه بر پایه میکروکنترلر است که توسط شرکت Espressif Systems توسعه و تولید میشود. این برد امکان اتصال به شبکههای بیسیم و سیستم های دیگر را فراهم میکند. از آنجایی که این تراشه در پکیجهای متنوعی طراحی و تولید میشود. انتخاب بسیار عالی برای تولید کنندهها در حوزههای هوشمند سازی و اینترنت اشیاست. تراشه esp32 دنیای وسیعی از قابلیت و کاربری است. در این پس تفاوت سه نمونه برد esp32 را که در بازار ایران یافت میشوند، بررسی و مقایسه میکنیم.
این بردها به عنوان یک سیستم کامل برای توسعه برنامههای IoT استفاده میشوند و میتوانند در زمینههای مختلفی از جمله خانه هوشمند، اتوماسیون ساختمان، سیستمهای مانیتورینگ و کنترل صنعتی مورد استفاده قرار بگیرند. در کل، برد ESP32 با ترکیب قدرت پردازشی بالا، قابلیت اتصال به شبکههای بیسیم و پشتیبانی از انواع پورتها و پینهای ورودی/خروجی، یکی از بهترین انتخابها برای توسعه برنامههای IoT است. هدف ما ارتقا دانش کاربران فارسی زبان است. همچنین رشد اطلاعات عمومی مدیران در شرکتهای مختلف را مد نظر داریم. بنابراین اگر این مطلب از بلاگ دانشجو کیت برای شما ارزشمند بود و به اطلاعاتتان اضافه کرد، آنرا با دیگران به اشتراک بگذارید تا دانش فنی مدیرها و کاربران فارسی زبان در این حوزه و IoT رشد پیدا کند.
شناخت میکروکنترلر ESP32
میکروکنترلر ESP32، محصولی از شرکت Espressif Systems است و تا به امروز بهترین انتخاب برای اینترنت اشیاء (IoT) است. تراشه ESP32 دارای دو هسته پردازشی Tensilica Xtensa LX6 با سرعت 240 مگاهرتز است. این هستهها به صورت مستقل از هم کار میکنند و قابلیت اجرای برنامهها در پردازشهای موازی را فراهم میکنند. این تراشه دارای حافظه فلش 4 مگابایت است که برای ذخیره برنامهها و دادهها استفاده میشود. همچنین دارای حافظه رم 520 کیلوبایتی است که برای اجرای برنامهها و ذخیره دادههای موقت استفاده میشود.
ESP32 از وایفای (Wi-Fi) 802.11b/g/n و بلوتوث (Bluetooth) 4.2 و 5.0 پشتیبانی میکند. این امکان را به شما میدهد که به شبکه اینترنت متصل شوید و ارتباط بیسیم با دستگاههای دیگر برقرار کنید. این بردها دارای پورتهای UART، SPI، I2C، I2S و ADC هستند که امکان اتصال به سنسورها، ماژولها و دستگاههای جانبی دیگر را میدهد.
ESP32 از سیستم عامل FreeRTOS پشتیبانی میکند که یک سیستم عامل رایگان و متن باز (اوپن سورس) است. این سیستم عامل اجرای موازی و مدیریت وظایف را بر روی میکروکنترلر ESP32 فراهم میکند. میکروکنترلر ESP32 یکی از انتخابهای محبوب برای توسعه برنامههای IoT است و با استفاده از ابزارها و کتابخانههای نرمافزاری میتوانید ارتباط با دنیای پلتفرم های IoT را آغاز کنید. این تراشه ها در حقیقت هم میکروکنترلر و هم وای فای بلوتوث به صورت همزمان هستند.
معرفی برد ESP32 DEVKIT ESP-WROOM-32
برد ESP32 DEVKIT ESP-WROOM-32 یکی از مدلهای محبوب مبتنی بر میکروکنترلر ESP32 است که توسط شرکت Espressif Systems تولید میشود. در حقیقت تراشهی اصلی این برد همان تراشهای است که در بخش قبلی به صورت کامل توضیح دادیم. این برد دارای میکروکنترلر ESP32 با سرعت 240 مگاهرتز است. این هستهها به صورت مستقل از هم کار میکنند و قابلیت اجرای برنامهها در پردازشهای موازی را فراهم میکنند.
برد DEVKIT ESP-WROOM-32 به طور معمول دارای حافظه فلش 4 مگابایت است که برای ذخیره برنامهها و دادهها استفاده میشود. همچنین دارای حافظه رم 520 کیلوبایتی است که برای اجرای برنامهها و ذخیره دادههای موقت استفاده میشود. تراشه ESP32 این امکان را میدهد که به اینترنت متصل شده و ارتباط آنلاین با بردهای و سنسورهای دیگر برقرار کنید. ESP32 DEVKIT ESP-WROOM-32 دارای پورتهای UART، SPI، I2C، I2S و ADC است که امکان اتصال به سنسورها، ماژولها را فراهم میکند. همچنین دارای پینهای ورودی/خروجی (GPIO) قابل برنامهریزی است که امکان کنترل و ارتباط با سنسور و ماژول ها را فراهم میکند.
این برد با نرمافزارهایی مانند Arduino IDE، PlatformIO و Micropython قابل برنامه نویسی است. همچنین دارای آنتن Wi-Fi و بلوتوث، کانکتورهای USB و میکروUSB و کلید ریست است. برد ESP32 از OTA (Over-the-Air) امکان برنامه نویسی و کنترل از طریق وای فای را فراهم میکند. 2 امکانات امنیتی را برای حفاظت از برنامهها و دادهها فراهم میکند. این شامل رمزگذاری و رمزنگاری دادهها است که میتواند در ارتباطات امن IoT بسیار مهم باشد. OTA به معنای "Over-The-Air" است و به یک روش استفاده میشود که امکان بروزرسانی برنامهها و کدهای نرمافزاری بر روی دستگاهها را از طریق شبکه بیسیم (مانند Wi-Fi یا بلوتوث) فراهم میکند. به عبارتی سه مورد زیر را شامل میشود.
- میکروکنترلر ESP32-D0WDQ6 SoC
هستههای پردازشی دو هسته Tensilica Xtensa LX6 با سرعت 240 مگاهرتز
حافظه فلش: 4 مگابایت
حافظه رم: 520 کیلوبایت
- اتصالات بیسیم
Wi-Fi: 802.11b/g/n (2.4GHz)
بلوتوث: Bluetooth 4.2 و Bluetooth Low Energy (BLE)
- پورتها و رابطها
UART: 3 پورت UART برای ارتباط سریال
SPI: 4 پورت SPI برای ارتباط سریال همزمان
I2C: 2 پورت I2C برای ارتباط با سنسورها و دستگاههای جانبی
I2S: پورت I2S برای اتصال به سیستمهای صوتی
ADC: 12 بیت ADC با 18 کانال ورودی
- پینهای ورودی/خروجی
GPIO: 26 پین ورودی/خروجی قابل برنامهریزی
PWM: 16 کانال PWM
- منابع تغذیه
ولتاژ عملکرد: 2.2V تا 3.6V
ولتاژ ورودی: 5V از طریق پورت USB
بررسی پایه های ESP32 DEVKIT ESP-WROOM-32
برد ESP32 DEVKIT با تراشه ESP-WROOM-32 دارای پایههای ورودی/خروجی قابل برنامهریزی (GPIO) است که امکان اتصال به اجزای الکترونیکی و ارتباط با دستگاههای جانبی را میدهد. در ادامه، برخی از پایههای مهم این برد را بررسی میکنیم.
- پایههای GPIO (General Purpose Input/Output): این برد دارای دو مدل 30 پایه و 34 پایه GPIO است که قابل برنامهریزی هستند. این پایهها به عنوان ورودی یا خروجی عمل میکنند و امکان اتصال به اجزای الکترونیکی مانند سنسورها، نمایشگرها، ماژولها و دستگاههای جانبی دیگر را میدهند.
- پایههای UART: برد ESP32 DEVKIT ESP-WROOM-32 دارای سه پورت UART است که برای ارتباط سریال با سایر دستگاهها مورد استفاده قرار میگیرد. این پایهها (TX و RX) به شما امکان ارسال و دریافت دادهها از طریق ارتباط سریال را میدهند.
- پایههای I2C: برد ESP32 DEVKIT ESP-WROOM-32 دارای دو پورت I2C است که برای ارتباط با سنسورها، EEPROMs و سایر دستگاههای I2C استفاده میشود. این پایهها (SDA و SCL) به شما امکان ارسال و دریافت دادهها از طریق پروتکل I2C را میدهند.
- پایههای SPI: برد ESP32 DEVKIT ESP-WROOM-32 دارای چهار پورت SPI است که برای ارتباط با سنسورها، نمایشگرها، کارتهای حافظه و دستگاههای SPI دیگر استفاده میشود. این پایهها (MISO، MOSI، SCK و SS) به شما امکان ارسال و دریافت دادهها از طریق پروتکل SPI را میدهند.
- پایههای ADC: این برد دارای پورت ADC با دقت 12 بیت است که برای اندازهگیری ورودیهای آنالوگ استفاده میشود. این پایهها به شما امکان اندازهگیری سیگنالهای آنالوگ مانند سنسورهای نور، حرارت، فشار و غیره را میدهند.
- پایههای PWM: این برد دارای 16 کانال PWM است که برای کنترل سیگنالهای پالس عرض مودولاسیون (PWM) استفاده میشود. این پایهها برای کنترل سرعت موتورها، روشنایی LEDها و کاربردهای دیگر با استفاده از PWM مناسب هستند.
- پایههای I2S: برد ESP32 DEVKIT دارای پورت I2S است که امکان ارتباط با سیستمهای صوتی را فراهم میکند. این پایه (I2S) برای ارتباط با میکروفنها، بلندگوها و دستگاههای صوتی دیگر استفاده میشود.
- پایههای تایمر: همچنین ESP32 DEVKIT دارای پایههای تایمر است که به شما امکان کنترل زمان و اجرای وظایف با دقت بالا را میدهند. این پایهها برای کنترل زمانبندی، اندازهگیری زمان و استفاده در کاربردهای زمانبندی دقیق مناسب هستند.
- پایههای ریست و باتری: ESP32 DEVKIT ESP-WROOM-32 دارای پایههای ریست است که برای بازنشانی (ریست) میکروکنترلر مورد استفاده قرار میگیرند. همچنین این برد دارای پایه باتری (VBAT) است که به شما امکان اتصال باتری خارجی برای تامین تغذیه برد را میدهد.
جدول ویژگی های ESP32 DEVKIT ESP-WROOM-32
نوع میکروکنترلر | Xtensa Dual-Core 32-bit LX6 |
سرعت ساعت میکروکنترلر | تا 240 مگاهرتز |
حافظه فلش | 4 مگابایت |
حافظه SRAM | 520 کیلوبایت |
ماژول بلوتوث و وایفای | دارای ماژول بلوتوث و وایفای با استاندارد 802.11 b/g/n |
پورتها و رابطهای پر اهمیت | UART، SPI، I2C، I2S، PWM، ADC |
پینهای ورودی/خروجی | 30 پین ورودی/خروجی دیجیتال |
ولتاژ عملکرد | 2.2V تا 3.6V البته در برد Dev Kit دارای رگولاتور است |
مصرف انرژی در حالت خواب | حدود 5 میکروآمپر |
معرفی برد ESP32 Camera
برد ESP32-CAM برپایه میکروکنترلر ESP32 طراحی شده است. این برد از دوربین مخصوص، وای فای و بلوتوث ساخته شده است. پیشتر درباره ESP32 توضیحات کامل ارایه شد. برد ESP32-CAM دارای یک دوربین OV2640 با رزولوشن 2 مگاپیکسل است که قابلیت عکسبرداری و فیلمبرداری با کیفیت معمولی را دارد. برد همچنین دارای کارت حافظه microSD است که امکان ذخیره تصاویر و ویدیوهای گرفته شده را میدهد. این برد میکروکنترلری قدرتمند و کامل است که برای پروژههایی مانند دوربینهای مداربسته، دوربینهای وای فای، سامانههای نظارتی، رباتیک و بسیاری از کاربردهای دیگر مورد استفاده قرار میگیرد. با استفاده از ESP32-CAM و مزایای میکروکنترلر ESP32، میتوانید برنامههایی پیچیده را برای کنترل دوربین و پردازش تصاویر پیادهسازی کنید و با استفاده از ارتباط بیسیم و اینترنت، تصاویر را به سیستمهای دیگر انتقال دهید یا با استفاده از وب سرویسها و نرمافزارهای مختلف آنها را بررسی و پردازش کنید. برخی از ویژگیهای فنی برد esp32 cam را در ادامه لیست کردهایم.
- میکروکنترلر: ESP32-D0WDQ6 SoC با دو هسته Tensilica LX6 با سرعت 240 مگاهرتز
- حافظه: 520 کیلوبایت رم (SRAM) 4 مگابایت فلش (Flash Memory) برای ذخیره برنامهها و دادهها کارت حافظه microSD قابلیت اضافه کردن حافظه بیشتر را فراهم میکند
- شبکه: وایفای (Wi-Fi) 802.11 b/g/n با پشتیبانی از WPA/WPA2 و WEP/TKIP/AES بلوتوث (Bluetooth) با پروتکلهای Classic و BLE (Bluetooth Low Energy)
- پورتها و رابطها: پورت UART برای ارتباط سریال با دستگاههای خارجی، پورت SPI برای ارتباط با سنسورها، دیسپلیها و سایر دستگاهها، پورت I2C برای ارتباط با سنسورها و دستگاههای I2C، پورت GPIO برای کنترل و ارتباط با دستگاههای دیگر، پورت هشت پین برای کنترل دوربین OV2640
- دوربین: دارای دوربین OV2640 با رزولوشن 2 مگاپیکسل و فاصله کانونی 3.6 میلیمتر
تواناییهای تصویربرداری و ویدیوبرداری: عکسبرداری با رزولوشن تا 1600x1200 پیکسل، فیلمبرداری با رزولوشن تا 640x480 پیکسل با سرعت تا 60 فریم در ثانیه - ولتاژ کاری: 3.3 ولت
دوربین OV2640 در برد ESP32-Cam
دوربین OV2640 یک سنسور تصویر CMOS با رزولوشن 2 مگاپیکسل است. برد ESP32-Cam از این دوربین پشتیبانی میکند. ESP32-Camera از تراشه ESP32 برای کنترل دوربین و انتقال تصاویر به یک میکروکنترلر استفاده میکند. این برد امکانات کاربردی برای عکسبرداری و فیلمبرداری با استفاده از دوربین OV2640 را فراهم میکند. همچنین از قابلیتهای اتصال به شبکه Wi-Fi و Bluetooth نیز برخوردار است که این امکان را به شما میدهد که تصاویر گرفته شده را بیسیم به یک سرور یا دیگر دستگاهها ارسال کنید. برای استفاده از دوربین OV2640 روی برد ESP32-Camera، باید کتابخانههای مربوطه را نصب کنید و سپس کدهای مربوط به کنترل دوربین و انجام عملیات عکسبرداری و فیلمبرداری را بنویسید. کتابخانههای مختلفی برای کنترل دوربین OV2640 روی ESP32 وجود دارد که میتوانید از آنها استفاده کنید.
بررسی پایه های ESP32-CAM
برد ESP32-CAM دارای پایههای مختلفی است که برای ارتباط با سنسورها استفاده میشوند. در ادامه برخی از این پایههای مهم را بررسی میکنیم. ولی برای اطلاعات بیشتر بایستی به دیتاشیت برد مراجعه کنید.
- پایه VCC: این پایه به منبع تغذیه 3.3 ولت متصل میشود و تغذیه برد را فراهم میکند.
- پایه GND: این پایه به منبع زمین متصل میشود و به عنوان نقطه مشترک زمین برای سایر دستگاهها و قطعات استفاده میشود.
- پایه EN: این پایه مربوط به ریست کردن میکروکنترلر است. با ارسال سیگنال بالا به این پایه، میکروکنترلر ریستارت میشود.
- پایه IO0: این پایه برای تنظیم حالت برنامهریزی استفاده میشود. با اتصال این پایه به GND، برد در حالت برنامهریزی و آماده برنامهدهی قرار میگیرد.
- پایه RX و پایه TX: این پایهها برای ارتباط سریال با سایر دستگاهها مورد استفاده قرار میگیرند. RX (پایه دریافت) برای دریافت دادهها و TX (پایه ارسال) برای ارسال دادهها استفاده میشود.
- پایه SDA و پایه SCL: این پایهها برای ارتباط با دستگاهها و سنسورهای I2C استفاده میشوند. SDA (پایه داده سریال) برای ارسال و دریافت دادههای سریال و SCL (پایه ساعت سریال) برای هماهنگی تراکنشهای سریال استفاده میشود.
- پایه SPI: پایههای MOSI (Master Out Slave In)، MISO (Master In Slave Out) و SCK (Serial Clock) برای ارتباط با دستگاهها و سنسورها با استفاده از پروتکل SPI استفاده میشوند.
- پایه GPIO: ESP32-CAM دارای پایههای GPIO اضافی است که میتوان برای کنترل دستگاههای خارجی، خروجی دیجیتال و ورودیها استفاده کرد.
- پایه دوربین: پایههای مربوط به دوربین شامل D0، D1، D2، D3، D4، D5، D6 و D7 هستند. این پایهها برای ارتباط با دوربین OV2640 بر روی برد استفاده میشوند.
جدول ویژگی های ESP32-CAM
در جدول زیر مشخصات کلی برد ESP32-cam را میتوانید مشاهده کنید.
میکروکنترلر | ESP32 (دو هسته، فرکانس 240 مگاهرتز) |
حافظه فلش | 4 مگابایت |
حافظه رم | 520 کیلوبایت |
ورودی/خروجی دیجیتال | 10 پین ورودی/خروجی دیجیتال (قابل تغییر کاربری) |
ورودی آنالوگ | 1 پین ورودی آنالوگ (مبدل آنالوگ به دیجیتال 12 بیتی) |
پایههای PWM | 4 پایه PWM (پهنای پالس قابل تنظیم) |
پورت UART | دارای 3 پورت UART |
دوربین | دوربین OV2640 با رزولوشن 2 مگاپیکسل |
پورت SPI و I2C | از هر کدام یک پورت |
کارت SD | پشتیبانی از کارت حافظه SD |
با دوربین ESP32-CAM جه کاری میتوان انجام داد؟
با استفاده از دوربین ESP32-CAM، میتوانید انواع کارهایی انجام دهید. برخی از کاربردهای اصلی شامل موارد زیر میشوند.
- عکسبرداری و فیلمبرداری: با استفاده از دوربین ESP32-CAM میتوانید تصاویر با رزولوشن بالا (تا 2 مگاپیکسل) بگیرید و ویدیوها با فریمریت قابل تنظیم را ضبط کنید.
- سیستمهای نظارتی و امنیتی: با قابلیت اتصال به شبکه وایفای، میتوانید دوربین ESP32-CAM را در سیستمهای نظارتی و امنیتی استفاده کنید. میتوانید از طریق این دوربین بر روی هرزنامهگیرها نظارت کنید و تصاویر را بر روی سرور ذخیره کنید.
- رباتیک و برنامههای کنترلی: با استفاده از دوربین ESP32-CAM میتوانید ایده های رباتیکی را با وای فای و بلوتوث و دوربین پیاده سازی کنید.
- پروژههای اینترنت اشیا (IoT): ESP32-CAM قابلیت اتصال به اینترنت را دارد و میتوانید دوربین را به سیستمهای دیگر،پلتفرم های ابری و پلتفرمهای IoT متصل کنید. میتوانید تصاویر را به طور مستقیم در شبکه local یا در cloud ذخیره کنید و از راه دور به آنها دسترسی پیدا کنید.
- پروژههای بازیابی و تشخیص تصاویر: با استفاده از قابلیتهای پردازش تصویر ESP32-CAM و الگوریتمهای مربوطه، میتوانید برنامههای تشخیص چهره، تشخیص شی، تشخیص رنگ و موارد مشابه را پیادهسازی کنید.
تفاوت ESP32 Dev Kit با برد ESP-CAM
- شکل ظاهری: ESP-WROOM-32 به صورت یک ماژول کوچک به اندازه یک تراشه با پینهای اتصال بر روی یک برد قرار دارد. اما ESP-CAM یک ماژول بزرگتر است که شامل ماژول ESP32 و دوربین میشود. ظاهری معمول برای ESP-CAM، یک ماژول با دوربین در بالای آن است.
- ورودی/خروجیها: ESP-WROOM-32 شامل پینهای ورودی/خروجی است که به برد دیگری متصل میشوند و به برنامهنویس امکان کنترل و ارتباط با سایر دستگاهها را میدهد. ESP-CAM همچنین پینهای ورودی/خروجی را ارائه میدهد، اما به دلیل وجود دوربین، تعداد پینهای موجود ممکن است محدودتر باشد.
- نیاز به منبع تغذیه جانبی: ESP-WROOM-32 نیاز به منبع تغذیه جانبی ندارد و میتواند از طریق پورت USB یا سایر روشهای تغذیه ESP32 تغذیه شود. اما ESP-CAM برای عملکرد صحیح دوربین نیاز به تغذیه جداگانه دارد که از طریق منبع تغذیه جانبی ارائه میشود.
- قابلیت برنامهریزی: هر دو ماژول قابلیت برنامه ریزی مستقیم را دارند، اما برای برنامهریزی ESP-CAM نیاز به اتصال یک مبدل USB به سریال TTL مانند USB-to-Serial میباشد. در مقابل، ESP-WROOM-32 میتواند به یک پورت USB متصل شده و برنامهریزی شود.
پاسخ به چند سوال متداول
1- برد ESP-WROOM_32 و ESP32-CAM چه هستند و چه کاربردهایی دارند؟
ESP-WROOM_32 و ESP32-CAM هر دو بردهای مبتنی بر میکروکنترلر ESP32 هستند. ESP-WROOM_32 بیشتر برای اتصال به شبکههای بیسیم و کاربردهای اینترنت اشیا استفاده میشود، در حالی که ESP32-CAM دارای یک دوربین مجهز شده است و برای برنامههای مرتبط با تصویربرداری و ویدئو استفاده میشود.
2- آیا ESP-WROOM_32 و ESP32-CAM دارای ویژگیهای مشترکی هستند؟
هر دو برد دارای یک میکروکنترلر ESP32 هستند و از قدرت پردازشی بالا و امکانات شبکهای و بیسیم برخوردارند.
3- تفاوتهای فیزیکی بین ESP-WROOM_32 و ESP32-CAM چیست؟
تفاوتهای فیزیکی بین این دو برد شامل اندازه و شکل فیزیکی و قرارگیری پینهای ورودی/خروجی است. ESP32-CAM دارای یک دوربین متصل شده است که ESP-WROOM_32 آن را ندارد. همچنین پایههای gpio در برد cam محدودتر هستند.
4- آیا ESP-WROOM_32 و ESP32-CAM از نظر اتصالات و پینها متفاوت هستند؟
برد ESP-WROOM_32 و ESP32-CAM در نحوه اتصالات و پینها تفاوت دارند. ESP32-CAM دارای پینهای ورودی/خروجی بیشتری است که به دوربین و سایر اجزا مربوط میشود.
5- آیا قابلیت استفاده از دوربین و تصویربرداری در هر دو برد وجود دارد؟
خیر، به همین دلیل است که دو برد مجزا تولید شده اند. ESP32-CAM دارای یک دوربین مجهز شده است، اما ESP-WROOM_32 این قابلیت را ندارد.
6- آیا تفاوت در قدرت پردازشی و حافظه بین این دو برد وجود دارد؟
قدرت پردازشی و حافظه هر دو برد بسیار مشابه است، با این حال ESP32-CAM برای پردازش تصویر و ویدئو مجهزتر است.
جمع بندی
ESP-WROOM-32 و ESP-CAM هر دو ماژول بر پایه میکروکنترلر ESP32 تولید میشوند و قابلیتهای متفاوتی دارند. ESP-WROOM-32 از وای فای و بلوتوث پشتیبانی میکند. با استفاده از این برد میتوانید با پلتفرم های IoT سنسورها و ماژول ها را راه اندازی کنید. برد ESP32-CAM دارای دوربین مخصوص است که برای پروژه های تشخیص چهره و RFID Door lock و مانتیورینگ کاربردی است. اما اینکه بین این دو برد کدام یک را بایستی انتخاب کنید، در اولین مرحله الزام وجود دوربین در پروژه است. همچنین توجه داشته باشید که برد ESPCAM فاقد پورت usb است و برای برنامه نویسی بایستی از مبدل usb to ttl استفاده کنید.