آموزش استفاده از ESP32CAM و راه اندازی ویدیو استریم و تشخیص چهره

مقدمه

به آموزش گام به گام ESP32CAM خوش آمدید! آیا به دنیای اینترنت اشیا (IoT) علاقه مندید و به دنبال افزودن توان خود در زمینه ویدئو هستید؟ در این راهنمای جامع، با ماژول ESP32CAM آشنا خواهیم شد. چه یک علاقمند، دانشجو یا یک توسعه دهنده مشتاق اینترنت اشیا باشید، این آموزش شما را با دانش و مهارت هایی که برای ایجاد پروژه های مرتبط نیاز دارید، آشنا می کند.
ما شما را در هر مرحله راهنمایی می‌کنیم؛ از راه‌اندازی ماژول ESP32CAM گرفته تا پیکربندی دوربین، گرفتن فریم‌های ویدئویی و پخش آن‌ها از طریق شبکه.

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

ESP32CAM Board

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

• دریافت تصویر از ESP32CAM
• تشخیص چهره با ESP32CAM

نکته: اگر قصد تشحیص چهره را دارید، باید نسخه های پایین تر پکیج ESP32 را در نرم افزار آردوینو نصب کنید. به عنوان مثال، نسخه های 1.6 و 2.0.4 برای این کار تست شده و مورد تایید هستند.

آشنایی با ESP32CAM

ESP32CAM یک برد توسعه قدرتمند و همه کاره است که میکروکنترلر ESP32 را با ماژول دوربین ترکیب می کند. این پلتفرم، برای ساخت پروژه‌های اینترنت اشیا که شامل پخش ویدئو باشد بسیار مفید است.
ماژول ESP32CAM با قابلیت‌های Wi-Fi و بلوتوث داخلی ارائه می‌شود که آن را برای نظارت از راه دور، سیستم‌های امنیتی و سایر کارهایی که نیاز به پخش ویدئو به صورت زنده و بی سیم دارند ایده‌آل می‌کند.

امکانات ESP32CAM

• کوچکترین ماژول SoC (وای فای و بلوتوث)
• CPU سی و دو بیتی کم مصرف
• حداکثر کلاک 160 مگاهرتز، قدرت محاسباتی تا 600 DMIPS
• SRAM داخلی 520 کیلوبایت، 4MPSRAM خارجی
• پشتیبانی از UART/SPI/I2C/PWM/ADC/DAC
• پشتیبانی از دوربین های OV2640 و OV7670
• لامپ فلاش داخلی
• پشتیبانی از آپلود تصویر با WiFi
• پشتیبانی از کارت TF
• پشتیبانی از چند حالت sleep
• LwIp و FreeRTOS
• پشتیبانی از حالت های کاری STA/AP/STA+AP
• پشتیبانی از فناوری Smart Config/AirKiss

کاربردهای ESP32CAM

ESP32CAM طیف گسترده ای از ویژگی های پیشرفته و گزینه های سفارشی سازی را برای پخش ویدئو ارائه می دهد. در اینجا بعضی از کاربرد های متنوع این برد را به شما معرفی می کنیم:
• مسائل امنیتی: با به کار بردن چندین ماژول ESP32CAM می توانید یک سیستم امنیتی هوشمند بسازید.
• صنایع رباتیک: با ارسال تصاویر از طریق WiFi و پردازش آن در یک سخت افزار قدرتمند، شما می توانید این ماژول را در انواع پروژه های رباتیک به کار ببرید.
• IOT: شاید یکی از مواردی که در اجرای پروژه های IOT نتوان از آن چشم پوشی کرد استفاده از تصاویر باشد. ماژول ESP32CAM، به دلیل داشتن امکانات یک میکروکنترلر، در کنار وای فای، بلوتوث داخلی و دوربین، کاربردهای فراوانی در اجرای هوشمندسازی اماکن دارد.
• کاربردهای ترکیبی با استفاده از نرم افزارهای پردازش تصویر (مانند OPENCV): با استفاده از ESP32CAM، می توانید دنیای بی انتهای پردازش تصویر را به پروژه های خود بیافزایید.

معرفی پایه های ESP32CAM (Pinout)

این ماژول دارای 16 پین به شرح زیر است:
5V: اتصال به منبع تغذیه 5 ولت
GND: اتصال به زمین منبع تغذیه
GPIO2-16: پایه های ورودی و خروجی دیجیتال، به همراه قابلیت های جانبی از جمله:
• مبدل آنالوگ به دیجیتال (7 کانال)
• پروتکل ارتباطی SPI
• درگاه کارت حافظه
• UART
در تصویر زیر، می توانید پین اوت (Pinout) این ماژول را مشاهده کنید.

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

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

ESP32CAM × 1
مبدل USB به TTL* × 1

*: هر نوع مبدل USB به سریال که قابلیت کار با سطح 3.3 ولت را داشته باشد، می توانید به کار ببرید.

راه اندازی سرور استریم ویدئو با ESP32CAM

گام اول: سیم بندی

ماژول ESP32CAM، پورت USB ندارد. بنابراین نمی توانید آن را به صورت مستقیم به کامپیوتر وصل کنید. برای پروگرام کردن و ارتباط با پورت سریال این ماژول، باید مبدل USB به TTL را به کار ببرید. در تصویر زیر، نقشه سیم کشی بین این ماژول و تبدیل USB به TTL را نمایش داده ایم.

پایه های مبدل USB به TTL، از راست به چپ به شرح زیر است:
5V (قرمز)، VCC (نارنجی)، +3.3V (نارنجی)، TX (آبی)، RX (زرد)، GND (مشکی)

گام دوم: کد Video Streaming با استفاده از ESP32CAM

در این آموزش، برای کار با ماژول ESP32، از مثال موجود در کتابخانه آن استفاده می کنیم. گام های زیر را به تریتب انجام دهید.
1- نصب Add-on مربوط به ESP32: در صورت نیاز، راهنمای انجام این کار را در این لینک مطالعه کنید.
2- باز کردن مثال CameraWebServer.ino از مسیرِ Files-> Examples-> ESP32-> Camera

با باز کردن مثال اشاره شده، کد زیر برای شما به نمایش در می آید. توجه داشته باشید که این کد جهت اجرا، نیازمند چند تغییر جزئی است. این تغییرات را در قسمت توضیحات کد شرح خواهیم داد.

#include "esp_camera.h"
#include <WiFi.h>

//
// WARNING!!! PSRAM IC required for UXGA resolution and high JPEG quality
// Ensure ESP32 Wrover Module or other board with PSRAM is selected
// Partial images will be transmitted if image exceeds buffer size
//
// You must select a partition scheme from the board menu that has at least 3MB of APP space.
// Face Recognition is DISABLED for ESP32 and ESP32-S2, because it takes up from 15 
// seconds to process a single frame. Face Detection is ENABLED if PSRAM is enabled as well

// ===================
// Select camera model
// ===================
//#define CAMERA_MODEL_WROVER_KIT // Has PSRAM
//#define CAMERA_MODEL_ESP_EYE // Has PSRAM
//#define CAMERA_MODEL_ESP32S3_EYE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_PSRAM // Has PSRAM
//#define CAMERA_MODEL_M5STACK_V2_PSRAM // M5Camera version B Has PSRAM
//#define CAMERA_MODEL_M5STACK_WIDE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_ESP32CAM // No PSRAM
//#define CAMERA_MODEL_M5STACK_UNITCAM // No PSRAM
#define CAMERA_MODEL_AI_THINKER // Has PSRAM
//#define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM
//#define CAMERA_MODEL_XIAO_ESP32S3 // Has PSRAM
// ** Espressif Internal Boards **
//#define CAMERA_MODEL_ESP32_CAM_BOARD
//#define CAMERA_MODEL_ESP32S2_CAM_BOARD
//#define CAMERA_MODEL_ESP32S3_CAM_LCD

#include "camera_pins.h"

// ===========================
// Enter your WiFi credentials
// ===========================
const char* ssid = "Caferobot-2G";
const char* password = "caferobot.ir";

void startCameraServer();
void setupLedFlash(int pin);

void setup() {
 Serial.begin(115200);
 Serial.setDebugOutput(true);
 Serial.println();

 camera_config_t config;
 config.ledc_channel = LEDC_CHANNEL_0;
 config.ledc_timer = LEDC_TIMER_0;
 config.pin_d0 = Y2_GPIO_NUM;
 config.pin_d1 = Y3_GPIO_NUM;
 config.pin_d2 = Y4_GPIO_NUM;
 config.pin_d3 = Y5_GPIO_NUM;
 config.pin_d4 = Y6_GPIO_NUM;
 config.pin_d5 = Y7_GPIO_NUM;
 config.pin_d6 = Y8_GPIO_NUM;
 config.pin_d7 = Y9_GPIO_NUM;
 config.pin_xclk = XCLK_GPIO_NUM;
 config.pin_pclk = PCLK_GPIO_NUM;
 config.pin_vsync = VSYNC_GPIO_NUM;
 config.pin_href = HREF_GPIO_NUM;
 config.pin_sscb_sda = SIOD_GPIO_NUM;
 config.pin_sscb_scl = SIOC_GPIO_NUM;
 config.pin_pwdn = PWDN_GPIO_NUM;
 config.pin_reset = RESET_GPIO_NUM;
 config.xclk_freq_hz = 20000000;
 config.frame_size = FRAMESIZE_UXGA;
 config.pixel_format = PIXFORMAT_JPEG; // for streaming
 //config.pixel_format = PIXFORMAT_RGB565; // for face detection/recognition
 config.grab_mode = CAMERA_GRAB_WHEN_EMPTY;
 config.fb_location = CAMERA_FB_IN_PSRAM;
 config.jpeg_quality = 12;
 config.fb_count = 1;
 
 // if PSRAM IC is present, init with UXGA resolution and higher JPEG quality
 // for larger pre-allocated frame buffer.
 if(config.pixel_format == PIXFORMAT_JPEG){
 if(psramFound()){
 config.jpeg_quality = 10;
 config.fb_count = 2;
 config.grab_mode = CAMERA_GRAB_LATEST;
 } else {
 // Limit the frame size when PSRAM is not available
 config.frame_size = FRAMESIZE_SVGA;
 config.fb_location = CAMERA_FB_IN_DRAM;
 }
 } else {
 // Best option for face detection/recognition
 config.frame_size = FRAMESIZE_240X240;
#if CONFIG_IDF_TARGET_ESP32S3
 config.fb_count = 2;
#endif
 }

#if defined(CAMERA_MODEL_ESP_EYE)
 pinMode(13, INPUT_PULLUP);
 pinMode(14, INPUT_PULLUP);
#endif

 // camera init
 esp_err_t err = esp_camera_init(&config);
 if (err != ESP_OK) {
 Serial.printf("Camera init failed with error 0x%x", err);
 return;
 }

 sensor_t * s = esp_camera_sensor_get();
 // initial sensors are flipped vertically and colors are a bit saturated
 if (s->id.PID == OV3660_PID) {
 s->set_vflip(s, 1); // flip it back
 s->set_brightness(s, 1); // up the brightness just a bit
 s->set_saturation(s, -2); // lower the saturation
 }
 // drop down frame size for higher initial frame rate
 if(config.pixel_format == PIXFORMAT_JPEG){
 s->set_framesize(s, FRAMESIZE_QVGA);
 }

#if defined(CAMERA_MODEL_M5STACK_WIDE) || defined(CAMERA_MODEL_M5STACK_ESP32CAM)
 s->set_vflip(s, 1);
 s->set_hmirror(s, 1);
#endif

#if defined(CAMERA_MODEL_ESP32S3_EYE)
 s->set_vflip(s, 1);
#endif

// Setup LED FLash if LED pin is defined in camera_pins.h
#if defined(LED_GPIO_NUM)
 setupLedFlash(LED_GPIO_NUM);
#endif

 WiFi.begin(ssid, password);
 WiFi.setSleep(false);

 while (WiFi.status() != WL_CONNECTED) {
 delay(500);
 Serial.print(".");
 }
 Serial.println("");
 Serial.println("WiFi connected");

 startCameraServer();

 Serial.print("Camera Ready! Use 'http://");
 Serial.print(WiFi.localIP());
 Serial.println("' to connect");
}

void loop() {
 // Do nothing. Everything is done in another task by the web server
 delay(10000);
}
Arduino

توضیحات کد

روند کلی کد به صورت زیر است.
1. بارگذاری کتابخانه های مورد استفاده

#include "esp_camera.h"
#include <WiFi.h>
Arduino

2. انتخاب مدل دوربین:
در خط 16 الی 30، دوربین مورد نظر را انتخاب و آن را از حالت کامنت خارج کنید. در ماژول ESP32CAM ما، دوربین نصب شده بر روی ماژول، از نوع AI_THINKER است.

#define CAMERA_MODEL_AI_THINKER // Has PSRAM
Arduino

3. بارگذاری کتابخانه camera_pins.h که نحوه اتصال پایه های دوربین به ESP32 را مشخص می کند.

#include "camera_pins.h"
Arduino

4. تعریف شبکه وای فای مورد نظر: در این قسمت، نام شبکه وای فای (SSID) و رمز آن (password) را وارد کنید.

const char* ssid = "**************";
const char* password = "**************";
Arduino

5. تعریف توابع راه اندازی سرور، صفحه وب و فلاش دوربین ماژول ESP32CAM

void startCameraServer();
void setupLedFlash(int pin);
Arduino

6. تابع setuo()
• راه اندازی ارتباط سریال و فعال کردن پیام های debug

Serial.begin(115200);
  Serial.setDebugOutput(true);
Arduino

• تعریف پین های دوربین بر روی ESP32 بر اساس فایل camera_pins.h

camera_config_t config;
  config.ledc_channel = LEDC_CHANNEL_0;
  config.ledc_timer = LEDC_TIMER_0;
  config.pin_d0 = Y2_GPIO_NUM;
  config.pin_d1 = Y3_GPIO_NUM;
  config.pin_d2 = Y4_GPIO_NUM;
  config.pin_d3 = Y5_GPIO_NUM;
  config.pin_d4 = Y6_GPIO_NUM;
  config.pin_d5 = Y7_GPIO_NUM;
  config.pin_d6 = Y8_GPIO_NUM;
  config.pin_d7 = Y9_GPIO_NUM;
  config.pin_xclk = XCLK_GPIO_NUM;
  config.pin_pclk = PCLK_GPIO_NUM;
  config.pin_vsync = VSYNC_GPIO_NUM;
  config.pin_href = HREF_GPIO_NUM;
  config.pin_sscb_sda = SIOD_GPIO_NUM;
  config.pin_sscb_scl = SIOC_GPIO_NUM;
  config.pin_pwdn = PWDN_GPIO_NUM;
  config.pin_reset = RESET_GPIO_NUM;
Arduino

• تنظیم پارامترهای دوربین و تصویر

config.xclk_freq_hz = 20000000;
  config.frame_size = FRAMESIZE_UXGA;
  config.pixel_format = PIXFORMAT_JPEG; // for streaming
  //config.pixel_format = PIXFORMAT_RGB565; // for face detection/recognition
  config.grab_mode = CAMERA_GRAB_WHEN_EMPTY;
  config.fb_location = CAMERA_FB_IN_PSRAM;
  config.jpeg_quality = 12;
  config.fb_count = 1;
Arduino

• فعال کردن دوربین

  esp_err_t err = esp_camera_init(&config);
  if (err != ESP_OK) {
    Serial.printf("Camera init failed with error 0x%x", err);
    return;
  }
Arduino

• اتصال به وای فای

  WiFi.begin(ssid, password);
  WiFi.setSleep(false);
Arduino

• فعال کردن سرور

  startCameraServer();
Arduino

• چاپ آی پی ماژول ESP32CAM در درگاه سریال (در صورت موفقیت در فعالسازی دوربین و WiFi)

  Serial.print("Camera Ready! Use 'http://");
  Serial.print(WiFi.localIP());
  Serial.println("' to connect");
Arduino

گام سوم: پروگرام کردن ESP32CAM

قبل از پروگرام کردن برد، ابتدا نوع برد ESP32CAM را بر روی “AIThinker ESP32-CAM” تنظیم کنید.

سپس، تنظیمات “Flash Mode” را بر روی “DIO” قرار دهید.

همچنین، در بین گزینه های “Partition Scheme” گزینه “Huge APP” را انتخاب کنید.

در نهایت، پورت سریال را انتخاب کرده و بر روی دکمه پروگرام بزنید.
در صورتی که همه کار به صورت صحیح انجام شده باشد، آدرس آی پی ماژول ESP32 در پنجره سریال چاپ می شود.

این آدرس را در مرورگر باز کنید. صفحه زیر را مشاهده خواهید کرد.

ESP32CAM (Web Result)

با زدن بر روی دکمه “Start stream،” تصویر دریافتی از ماژول ESP32Cam در صفحه نمایش داده می شود.

تشخیص چهره با ESP32CAM

برای تشخیص چهره، ابتدا رزولوشن تصویر را روی QVGA قرار دهید و سپس گزینه های Face detection و Face recognition را تیک بزنید.

ESP32CAM (Face Recognition Settings)

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

ESP32CAM (Face Recognition Result)

رفع مشکلات احتمالی ESP32 Video Streaming

1- پروگرام نشدن برد ESP32CAM

برای رفع این خطا، موراد زیر را بررسی کنید.
• سیم کشی را چک کنید.
• اگر مبدل USB به TTL شما امکان انتخاب بین 5 و 3.3 ولت دارد، آن را در وضعیت 3.3 ولت قرار دهید.
• ولتاژ خروجی مبدل را با استفاده از ولتمتر اندازه گیری کنید. نباید کمتر از 5 ولت باشد.
• در انتخاب نوع برد و دوربین دقت داشته باشید.
• قبل از هر بار پروگرام کردن برد، پایه IO0 را با پایه GND متصل کرده و دکمه RST را بزنید.

2- چاپ عبارت “Brownout detector was triggered”

 در صورتی که این عبارت به شکل مرتب در پورت سریال چاپ می شود، موارد زیر را امتحان کنید:
• استفاده از کابل USB کوتاه‌تر (با سیم‌های داده)
• اتصال به پورت USB دیگر کامپیوتر و یا هاب USB با منبع تغذیه خارجی

3- خطای “Sketch too big”

در صورت وقوع این خطا، احتمالاً “Partition Scheme” خود را بر روی “Big APP” قرار نداده اید. این مورد را اصلاح و مجدداً پروگرام کنید.

4- خطای ناشی از آنتن دهی ضعیف WiFi

در صورتی که فاصله شما از دستگاه روتر زیاد باشد و به خوبی نتوانید به شبکه وای فای متصل شوید، لازم است از آنتن خارجی کمک بگیرید. برای اینکار، باید مقاومت 0 کیلواهم قرار گرفته در کنار پورت آنتن ماژول ESP32CAM را جابجا کنید.
جهت استفاده از آنتن خارجی، مقاومت علامت زده شده باید جدا شده و به صورت عمود بر آن لحیم شود (تصویر زیر).

ESP32CAM (External Antenna)

5- نمی توانم صفحه وب سرور را باز کنم

اگر ESP32Cam شما در درگاه سریال مانیتور، آی پی آدرس را چاپ می کند ولی نمی توانید آن را در مرورگر خود باز کنید، احتمالاً به صورت همزمان با چندین tab مرورگر سعی در اتصال به وب سرور را دارید. در حال حاضر، امکان اتصال تنها یک Client به وب سرور ESP32CAM وجود دارد.

6- تصویر با تاخیر همراه است

در صورت مشاهده تاخیر در به روز رسانی تصویر، می توانید راهکارهای زیر را امتحان کنید.
• اتصال ماژول ESP32CAM به منبع تغذیه 5 ولت جداگانه
• کوچکتر کردن رزولوشن تصویر
• استفاده از آنتن خارجی

یک گام جلوتر

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

ESP32CAM (Patrol Robot)
جزئیات بیشتر برای انجام این پروژه را اینجا مطالعه کنید. • آیفون تصویری هوشمند: این آیفون زمانی که کسی زنگ در شما را بزند، تصویر او را بر روی صفحه نمایش تلفن همراهتان نمایش می دهد و می توانید درب منزل خود را از راه دور کنترل کنید.
ESP32CAM (Smart Doorbell)
جزئیات بیشتر برای انجام این پروژه را اینجا مطالعه کنید.

آموزش های مشابه

Comments (39)

  • حسین علیرمضانی Reply

    با سلام
    این راهنما یک اشکال دارد و من برای پیدا کردن آن نزدیک ۳ ساعت با اسیلوسکوپ تمام پایه ها و سیگناها را چک کردم تا بالاخره با این توضیح در یکی از سایتها، این اشکال را پیدا کردم:
    Some ESP32-CAM boards have that pin near the big LED labeled “GND/R”. This is where most tutorials and posts say to connect the ground from the serial board. This will NOT work because that pin is not a ground. Use any of the other real GND pins and assuming you’re doing the other stuff correctly then everything should work.
    بنا بر این در بخش «گام اول: سیم بندی» عکس باید تغییر کند. سیم GND نباید به پایه GND/R وصل شود. بلکه باید به پایه GND وصل شود.
    در این صورت با ریست ESP32، در ترمینال سریال، وضعیت بوت شدن CPU دیده می شود.
    برای آپلود کردن، باید پایه IO0 به GND وصل بماند. در این وضعیت، ریست کردن برد عبارت waiting for download را در ترمینال سریال نشان می دهد. در این حالت می توان آپلود برنامه را انجام داد. بعد ارتباط IO0 به GND قطع شود تا با ریست دوباره، برنامه آپلود شده اجرا گردد.

    فوریه 6, 2024 at 11:16 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      ممنون بابت نظر شما، آموزش اصلاح می شود.

      فوریه 7, 2024 at 9:58 ق.ظ
  • احمدرضا Reply

    سلام خسته نباشید من کد که آپلود کردم این خط#include “camera_pins.h” را برایم خطا گرفت بعد کتاب خانه اش را جست‌وجو کردم ولی نبود ممنون میشم راهنماییم کنید

    مارس 14, 2024 at 6:16 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      در گام دوم، بخش دوم اعلام شده است (2- باز کردن مثال CameraWebServer.ino از مسیرِ Files-> Examples-> ESP32-> Camera)
      باید پروژه را باز کنید. وقتی از مثال باز کنید فایل camera_pins.h را نیز همراه پروژه باز میشود و دیگر به شما ارور داده نمیشود.

      مارس 24, 2024 at 10:33 ق.ظ
  • ddddd Reply

    سلام خسته نباشید
    من بعد اینکه همه کار هارو کردم و پروگرام کردم وقتی دکمه ریست رو میزنم توی قسمت مانیتور این ارور رو میده

    E (488) camera: Camera probe failed with error 0x105(ESP_ERR_NOT_FOUND)
    Camera init failed with error 0x105

    مارس 30, 2024 at 6:18 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      در این شرایط به نظر میرسد که دوربین را به درستی پیدا نمیکند.
      پیشنهاد میکنم 2 مورد را بررسی کنید.
      1. دوربین را از برد جدا کنید و دوباره وصل کنید ( احتمال دارد کانکشن ها به درستی وصل نشده باشند).
      2. در بخش تنظیمات نوع میکرو انتخابی دقت کنید تا مدل درست را انتخاب کنید (در صورت انتخاب مدل اشتباهی این ارور را مشاهده میکنید)
      در صورتی که همه این موارد را بررسی کردید و همچنان مشکل پا برجا بود و از زمان تحویل دوربین به شما کمتر از یک هفته میگذرد می توانید درخواست مرجوعی ثبت کنید تا توسط بخش فنی بررسی شود.

      آوریل 2, 2024 at 11:09 ق.ظ
      • محمد حسین Reply

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

        دسامبر 4, 2024 at 12:52 ق.ظ
        • محمد دمیرچی Reply

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

          دسامبر 7, 2024 at 11:00 ق.ظ
    • Mahdi Reply

      من این ارور را داشتم، داخل کد قسمت Select camera model، خط #define CAMERA_MODEL_AI_THINKER // Has PSRAM رو آنکامنت کردم و //#define CAMERA_MODEL_WROVER_KIT // Has PSRAM رو کامنت کردم درست شد.. لطفا به آموزش اضافه بشه.
      در ضمن مراحل پروگرم کردن به طور مشخص این هست: ابتدا زمین کردن پایه IO0 (زمین کنار پایه مدنظر است، چون ظاهرا زمین‌های این برد با هم فرق دارند!)، سپس زدن دکمه ریست تا در سریال مانیتور ready to download نوشته شود. سپس آپلود برنامه، سپس قطع پایه IO0 از زمین و فشردن دکمه ریست. حال برنامه اجرا می‌شود.

      فوریه 26, 2025 at 8:42 ب.ظ
  • میلاد Reply

    سلام خسته نباشید
    من تازه این برد رو تهیه کردم نمیدونم چه کدی بهش وصل هست وایفای من بهش وصل میشه ولی تنظیمات روتر نداره کنجکاوم بدونم قبل از خرید چه کدی روش آپلود هست
    شما میدونین چیه ؟

    می 12, 2024 at 12:10 ق.ظ
    • محمد دمیرچی Reply

      باسلام
      این برد ها اکثرا خام هستن و چیز خاصی بر رویش نیست و شما باید ابتدا با استفاده از کدی که قرار داده شده است برد را پروگرام کنید. تا زمانی که ssid و pass مربوط به wifi خود را داخل کد نگذارید ماژول به wifi شما وصل نمیشود و در سریال مانیتور به شما اعلام میکند که به چه IP وصل شده.

      می 12, 2024 at 9:52 ق.ظ
  • میلاد Reply

    در مورد اینکه میگین باید پسورد خودم کانون داغ همراهم رو روی اون آپلود کنم این رو بگم که برد به گوشیم وصل نیست من به برد وصل شدم یعنی من وایفای روشن کردم بدون هیچ رمزی بهش وصل شدم
    فکر کردم این کدی که روش آپلود شده فقط برای تست برد هست یعنی هیچ عملیاتی روش برنامه نویسی نشده این شد که گفتم از شما بپرسم

    می 12, 2024 at 4:55 ب.ظ
    • محمد دمیرچی Reply

      به چه اسمی بهش وصل شدید؟؟ در این باره نظری ندارم، همیشه خود فرد این پروژه را بر روی ماژول آپلود میکند تا برایش کار کند. حالا اینکه شرکت تولید کننده آمده باشد و یک کد تست آپلود کرده باشد یک چیز جدید می باشد.

      می 14, 2024 at 11:36 ق.ظ
  • مصطفی Reply

    سلام جناب هر کاری کردم نشد این خطا برام میاد راه حلی دارید؟
    لطفاً جواب سئوالمو بدید

    Arduino: 1.8.19 (Windows 10), Board: “AI
    Thinker ESP32-CAM, 240MHz (WiFi/BT), DIO, Huge APP (3MB No OTA/1MB SPIFFS), 40MHz, None, Disabled”

    Sketch uses 1044873 bytes (33%) of program storage space. Maximum is 3145728 bytes.

    Global variables use 60304 bytes (18%) of dynamic memory, leaving 267376 bytes for local variables. Maximum is 327680 bytes.

    esptool.py v4.6

    Serial port COM1

    Connecting………………………………..

    A fatal error occurred: Failed to connect to ESP32: No serial data received.

    For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html

    the selected serial port For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html

    does not exist or your board is not connected

    Error opening serial port ‘COM6’. (Port busy)

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    جولای 28, 2024 at 1:32 ب.ظ
    • محمد دمیرچی Reply

      با سلام،
      این مورد به صورت نکته در آموزش آورده شده است.
      سریال مانیتور را باز کنید و بر روی 115200 قرار بدهید.
      پایه IO0 را به GND وصل کنید و یک بار ریست را بزنید. باید متن
      (POWERON_RESET),boot:0x3 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2)) waiting for download
      را مشاهده کنید. در صورت عدم مشاهده این خط یعنی جایی در سیم کشی دچار مشکل شده اید.
      در صورتی که این متن دریافت شد سریال مانیتور را ببندید و بدون هیچ تغییری میکرو را پروگرام بکنید.

      جولای 29, 2024 at 11:01 ق.ظ
  • Mohammad Reply

    سلام رویcif میزنم و face detection, face recognition و میزنم پیغام please select CIF or lower res before enabling this feature میده و رزولوشن کمتر میکنم تشخیص چهره انجام نمیده لطفا راهنمایی کنید

    سپتامبر 12, 2024 at 11:39 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      تا جایی که خاطرم هست ابتدا باید از Enroll برای پردازش چهره استفاده بکنید سپس آماده پردازش میشود.
      همچنین برای بهتر عمل کردن این سیستم پیشنهاد میکنم کیفیت را پایین تر ببرید که فشار کمی برای پردازش بر روی ماژول باشد.

      سپتامبر 14, 2024 at 9:45 ق.ظ
  • آرین Reply

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

    سپتامبر 19, 2024 at 7:06 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      متاسفانه این میکروکنترلر فقط از یک دوربین پشتیبانی میکند و بیشتر نمیتوانید به آن وصل بکنید
      برای کار های پیچیده تر پیشنهاد میکنم به سراغ رزبری پای یا سایر لینوکس برد ها بروید.

      سپتامبر 22, 2024 at 9:28 ق.ظ
  • امیری کابلی Reply

    سلام مهندس
    آیا میشه کد نویسی با ویندوز انجام بشه ولی تصویر با موبایل دیده بشه

    سپتامبر 28, 2024 at 10:14 ب.ظ
    • محمد دمیرچی Reply

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

      سپتامبر 29, 2024 at 9:10 ق.ظ
  • محمد Reply

    سلام خسته نباشید من با استفاده از کابل TTL میخوام به دستگاه وصل شم اما ارور زیر رو دارم چندین بار تست کردم برنامه های مختلف و تست کردم و اکثر منابع رو رفتم گشتم و باز هم موقع آپلود این ارور رو دارم میشه راهنمایی کنید.
    A fatal error occurred: Failed to connect to ESP32: No serial data received.
    For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html

    نوامبر 2, 2024 at 12:20 ق.ظ
    • محمد دمیرچی Reply

      با سلام
      توضیحات آموزش را مطالعه کرده باشید به صورت نکته اعلام شده است. قبل از پروگرام کردن سریال مانیتور را باز بکنید و بادریت را بر روی 115200 قرار بدهید.
      سپس دکمه ریست را بزنید و بررسی بکنید که ماژول باید اطلاعاتی برای آماده بودن برای پروگرام برای شما ارسال بکند (سیم IO0 را حتما از قبل به GND وصل کرده باشید)
      در صورتی که اطلاعاتی دریافت نکردید. سیم کشی خود را بررسی بکنید و از سالم بودن ماژول USB-TTL خود اطمینان حاصل بکنید.

      نوامبر 17, 2024 at 12:17 ب.ظ
  • محمد Reply

    سلام خسته نباشید من یک کابل TTL از فروشگاه تهیه کردم و تماما مثل شما پیش رفتم اما ارور زیر رو دارم داخل Output:
    Sketch uses 1054681 bytes (33%) of program storage space. Maximum is 3145728 bytes.
    Global variables use 60500 bytes (18%) of dynamic memory, leaving 267180 bytes for local variables. Maximum is 327680 bytes.
    esptool.py v4.6
    Serial port COM5
    Connecting………………………………..

    A fatal error occurred: Failed to connect to ESP32: No serial data received.
    For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html

    و داخل serial monitor وقتی که ریست میکنم دستگاه رو این رو نمایش میده:
    [0;32mI (101) boot: End of partition table[0m
    [0;32mI (106) boot_comm: chip revision: 3, min. application chip revision: 0[0m
    [0;32mI (113) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x1d2048 (1908808) map[0m
    [0;32mI (849) esp_image: segment 1: paddr=0x001e2070 vaddr=0x3ffbdb60 size=0x04d3c ( 19772) load[0m
    [0;32mI (857) esp_image: segment 2: paddr=0x001e6db4 vaddr=0x40080000 size=0x00400 ( 1024) load[0m
    [0;32mI (858) esp_image: segment 3: paddr=0x001e71bc vaddr=0x40080400 size=0x08e54 ( 36436) load[0m
    [0;32mI (880) esp_image: segment 4: paddr=0x001f0018 vaddr=0x400d0018 size=0x9df74 (647028) map[0m
    [0;32mI (1127) esp_image: segment 5: paddr=0x0028df94 vaddr=0x40089254 size=0x0b6a0 ( 46752) load[0m
    [0;32mI (1159) boot: Loaded app from partition at offset 0x10000[0m
    [0;32mI (1159) boot: Disabling RNG early entropy source…[0m

    SD Size: 1884MB OK
    PSRAM OK
    ESP32-CAM-MB

    نوامبر 4, 2024 at 8:13 ب.ظ
    • محمد دمیرچی Reply

      یعنی شما پایه IO0 را به GND وصل نکردید. برای همین وارد مود پروگرام نمیشوید.

      نوامبر 17, 2024 at 12:23 ب.ظ
  • gansa Reply

    سلام علت ای پی ندادن چی میتونه باشه ؟؟؟؟
    تمام تنظیمات سیم و نرم افزاری اوکی کردم
    rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    > configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:2
    load:0x3fff0030,len:4604
    ho 0 tail 12 room 4
    load:0x40078000,len:15468
    load:0x40080400,len:4
    ho 8 tail 4 room 4
    load:0x40080404,len:3180
    entry 0x400805b8
    صفحه سریال مانیتور رو همین ارور درجا میزنه

    نوامبر 26, 2024 at 5:10 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      تنظیمات psram را فعال بکنید.
      تغذیه ماژول را بررسی بکنید.
      یک بار از طریف esptool دستور erase_flash را بزنید تا ماژول به صورت کامل فلش بشود و دوباره برد را پروگرام بنمایید.

      نوامبر 27, 2024 at 2:38 ب.ظ
      • gansa Reply

        متاسفانه جواب نداد تغذیه ماژول رو 3.3 ولت قرار دادم بازم نشد مودمم برای اتصال چک کردم حتی هرتز وای فای تنظیم کردم نمیدونم مشکلش کجاس

        نوامبر 29, 2024 at 1:37 ب.ظ
      • gansa Reply

        ممنون مشکل به 5v وصل کردم جواب داد

        نوامبر 29, 2024 at 4:15 ب.ظ
  • محمد Reply

    esptool.py v4.5.1
    Serial port COM8

    A fatal error occurred: Could not open COM8, the port doesn’t exist
    Failed uploading: uploading error: exit status 2

    دسامبر 11, 2024 at 7:22 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      شماره پورت انتخابی را بررسی بنمایید.
      همچنین بررسی بنمایید که این پورت آزاد باشد و توسط برنامه دیگر استفاده نشود.
      در صورتی که چندین بار برنامه آردوینو را باز کرده اید همگی را ببندید و فقط کد آپلود را باز نگه دارید. (پورت های باز در بخش های مختلف برنامه آردوینو به صورت خودکار بسته نمیشوند)

      دسامبر 14, 2024 at 9:53 ق.ظ
  • محمد امین انجم شعاع Reply

    سلام
    قصد دارم دوربین را به شبکه خارجی وصل کنم و از خارج شبکه متصل بشم
    راهکارش لطفا توضیح میدید؟

    ژانویه 12, 2025 at 11:32 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      کافی است اینترنت – شبکه ای که دارید IP ثابت باشد (این سرویس را از شرکتی که اینترنت را از آن میخرید میتوانید تهیه بکنید و یک هزینه به سرویس اینترنت شما اضافه میشود و این خدمات را به شما میدهند) و با تنظیم کردن پورت مودم – روتر خود دسترسی ESP را به بیرون باز میکند و میتوانید با داشتن آدرس IP خود و پورت تنظیم شده به پنل ESP دسترسی پیدا بکنید.
      مفهوم Port forwarding و IP Static را مطالعه بنمایید متوجه میشوید به چه صورت میشود این کار را انجام داد.

      ژانویه 13, 2025 at 12:22 ب.ظ
  • محمد پارسا Reply

    در arduino ide های جدید این تشخیص چهره ظاهرا حذف شده
    اگر میشود سورس کد های کتابخانه هایی که بهش وصل شدید رو در اختیار بگذارید

    فوریه 3, 2025 at 10:21 ق.ظ
    • محمد دمیرچی Reply

      با سلام
      سورس کد عوض نشده است این موضوع فقط در اصل SDK قدیمی ESP بر میگردد. در زمان نصب برد ESP32 بر روی برنامه آردوینو خود از نسخه های 2.1 یا 2.2 استفاده بکنید سپس کد مربوطه را اجرا بکنید تشخیص چهره کار خواهد کرد.
      آموزش نصب برد ESP32 به روی Arduino IDE (ویندوز، لینوکس، مک OS) سمت چپ پایین باکس گزینه ای برای انتخاب ورژن نصب می باشد.

      فوریه 8, 2025 at 9:43 ق.ظ
  • حسین Reply

    به من ارور

    esptool.py v4.5.1
    Serial port COM8

    A fatal error occurred: Could not open COM8, the port doesn’t exist
    Failed uploading: uploading error: exit status 2

    همه کارم کردم

    مارس 14, 2025 at 4:10 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      برنامه دارد به شما خطا میدهد که شماره پورت انتخابی وجود ندارد. بررسی بنمایید که چه شماره پورتی مبدل USB-TTL شما می باشد و بر اساس آن شماره پورت را داخل برنامه آردوینو انتخاب بنمایید.

      مارس 16, 2025 at 9:50 ق.ظ
  • سید افرام Reply

    با سلام من یک ماژول دوربین خریدم با برد esp-camera-mb l اسم برد ضمیمه تو اردیونو چیه ؟

    آوریل 21, 2025 at 1:55 ق.ظ
    • محمد دمیرچی Reply

      با سلام، متوجه منظور شما نشدم. برد ESP-CAM را بر روی برد راه انداز قرار میدهید و به سیستم خود وصل میکنید. یک درایور CH340 اگر بر روی سیستم شما نصب نمی باشد، نصب میکنید و شماره پورت شما مشخص میشود و میتوانید اقدام به برنامه نویسی برد ESP-CAM بنمایید.

      آوریل 21, 2025 at 5:33 ب.ظ

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

نشانی ایمیل شما منتشر نخواهد شد.