آموزش Espآموزش ESP32آموزش اینترنت اشیاپروژه های Esp

ساخت وب سرور ویدئو با ESP32-CAM (تشخیص چهره)

بسیاری از سیستم‌های شناسایی انسانی وجود دارند که از امضا، اثر انگشت، صدا، هندسه دست، تشخیص چهره و … برای شناسایی افراد استفاده می‌کنند اما هیچ یک از آنها نمی‌توانند افراد را در مکان‌های عمومی مانند فرودگاه‌ها، فروشگاه‌های خرده‌فروشی و ایستگاه‌های راه‌آهن شناسایی و شناسایی کنند.

سیستم های تشخیص چهره نه تنها می توانند برای اهداف امنیتی برای شناسایی افراد در اماکن عمومی استفاده شوند، بلکه می توانند برای اهداف حضور در دفاتر و مدارس نیز مورد استفاده قرار گیرند.

در این پروژه قصد داریم یک سیستم تشخیص چهره با استفاده از ESP32-CAM بسازیم که به عنوان یک سیستم امنیتی شناسایی چهره افراد غیرمجاز عمل خواهد کرد. ESP32-CAM یک ماژول دوربین بسیار کوچک با تراشه ESP32-S است. با استفاده از ماژول ESP32-CAM می‌توانیم بدون استفاده از برنامه‌نویسی پیچیده و اجزای اضافی، یک سیستم تشخیص چهره بسازیم. تشخیص چهره را می توان با استفاده از دوربین Raspberry Pi و Pi با استفاده از OpenCV نیز انجام داد: پروژه شناسایی چهره با OpenCV و رزبری پای

معرفی ESP32-CAM

ماژول دوربین ESP32

ماژول AI-Thinker ESP32-CAM دارای یک تراشه ESP32-S، یک دوربین OV2640 با اندازه بسیار کوچک و یک اسلات کارت micro SD است. از اسلات کارت Micro SD می توان برای ذخیره تصاویر گرفته شده از دوربین یا ذخیره فایل ها استفاده کرد. این ماژول ESP32-CAM می تواند به طور گسترده در پروژه های مختلف اینترنت اشیا استفاده شود. می توان از آن به عنوان یک سیستم تشخیص چهره در دفاتر، مدارس و سایر مناطق خصوصی استفاده کرد و همچنین می تواند به عنوان نظارت بی سیم، شناسایی بی سیم QR و بسیاری از برنامه های کاربردی اینترنت اشیا استفاده شود.

ماژول ESP32-CAM را می توان با ESP-IDF یا Arduino IDE برنامه ریزی کرد. ماژول ESP32-CAM همچنین دارای چندین پین GPIO برای اتصال سخت افزار خارجی است. ESP32-CAM کانکتور USB ندارد، بنابراین برای برنامه ریزی ماژول به یک برد FTDI نیاز دارید.

دیتاشیت ESP32-CAM

امکانات ESP32-CAM:

  • کوچکترین ماژول Wi-Fi BT SoC 802.11b/g/n
  • CPU با طراحی 32 بیتی کم مصرف
  • حداکثر سرعت کلاک 160 مگاهرتز، قدرت محاسباتی تا 600 DMIPS
  • SRAM داخلی 520 کیلوبایت، 4 مگابایت PSRAM خارجی
  • از UART/SPI/I2C/PWM/ADC/DAC پشتیبانی می کند
  • پشتیبانی از دوربین های OV2640 و OV7670، لامپ فلاش روی برد
  • پشتیبانی از آپلود Wi-Fi تصویر
  • پشتیبانی از کارت TF
  • پشتیبانی از چند حالت خواب
  • Lwip و FreeRTOS در آن تعبیه شده است
  • از حالت عملیات STA/AP/STA+AP پشتیبانی می کند
  • پشتیبانی از فناوری Smart Config/AirKiss
  • پشتیبانی از ارتقاء سیستم عامل محلی و راه دور پورت سریال (FOTA)

مشخصات فنی ESP32-CAM:

  • حافظه فلش: 32 مگابیت پیش فرض
  • رم: 520 کیلوبایت SRAM همراه با 4 مگابایت PSRAM
  • پشتیبانی از کارت TF: حداکثر 4G
  • رابط پشتیبانی: UART، SPI، I2C، PWM
  • فرمت خروجی تصویر: JPEG، BMP، GRAYSCALE
  • GPIO: پین 4
  • محدوده منبع تغذیه: 5 ولت

مدار ساخت وب سرور فیلم با ESP32 CAM

برای ساخت دوربین امنیتی ESP32 CAM فقط به ماژول دوربین ESP32 و ماژول FTDI برای برنامه ریزی آن نیاز داریم.

مدار ساخت وب سرور فیلم با ESP32 CAM

ESP32-CAM کانکتور USB ندارد، بنابراین برای آپلود کد در ESP32-CAM همانطور که در شکل بالا نشان داده شده است به یک ماژول FTDI نیاز دارید. پایه Vcc و GND ESP32 به پایه Vcc و GND برد FTDI متصل می شود. Tx و Rx ماژول ESP32 به Rx و Tx برد FTDI متصل می شود.

توجه: قبل از آپلود کد IO0 را به GND وصل کنید. IO0 تعیین می کند که آیا ESP32 در حالت فلش است یا خیر. وقتی GPIO 0 به GND متصل است، ESP32 در حالت آپلود کد قرار میگیرد.

ESP32-CAM

FTDI Board

3.3V

VCC

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

GND

GND

UOR

TX

UOT

RX

پس از برنامه ریزی ESP32، برد FTDI را برمیداریم و با استفاده از رگولاتور ولتاژ 7805 ماژول را تغذیه میکنیم.

کد ساخت وب سرور دوربین با ESP32

نیازی نیست کدی را بنویسید. کافی است کد آماده را از File > Examples > ESP32 > Camera باز کنید و CameraWebServer را انتخاب کنید.

وب سرور دوربین ESP32

قبل از آپلود کد، باید نام و رمز عبور وای فای خود را وارد کنید.

const char* ssid = "WiFi Name";
const char* password = "Password";

پس از آن ماژول دوربین ESP را تعریف کنید. در کد، آنها 5 ماژول دوربین را تعریف کرده اند، بنابراین دو // را از خط “CAMERA_MODEL_AI_THINKER” حذف کرده و بقیه ماژول ها را در حالت کامنت (یعنی // در ابتدا) قرار دهید.

اکنون کد آماده آپلود است.

برای آپلود کد، برد FDTI را به لپ تاپ خود متصل کرده و “ESP32 Wrover Module” را به عنوان برد خود انتخاب کنید. همچنین تنظیمات دیگر را مطابق این تصویر تغییر دهید:

کد ساخت وب سرور دوربین با ESP32

قبل از آپلود کد دکمه ریست را فشار دهید سپس روی دکمه آپلود کلیک کنید. اگر هنگام آپلود کد با خطا مواجه شدید، بررسی کنید که IO0 به GND متصل است و تنظیمات درست را در منوی Tools انتخاب کرده اید.

پس از آپلود کد، پین IO0 و GND را جدا کنید. سپس سریال مانیتور را باز کنید و نرخ باود را به 115200 تغییر دهید. پس از آن دکمه ریست ESP32 را فشار دهید آدرس IP و شماره پورت ESP روی مانیتور سریال مطابق شکل زیر چاپ می شود.

آدرس IP و شماره پورت ESP

اکنون برای دسترسی به دوربین، به مرورگر خود بروید و آدرس IP ESP خود را وارد کنید. شما را به صفحه استریم می برد. برای شروع پخش ویدئو ESP32 روی دکمه Start Stream در پایین صفحه کلیک کنید.

شروع پخش جریان دوربین

می‌توانید با تغییر «رزولوشن» در صفحه پخش، کیفیت پخش را تغییر دهید. همچنین می توانید با کلیک بر روی دکمه “Get Still’” روی تصاویر کلیک کنید اما این کد گزینه ای برای ذخیره تصاویر ندارد.

پس از آزمایش پخش ویدیو، اکنون ویژگی های تشخیص چهره و تشخیص چهره دوربین ESP32 را آزمایش خواهیم کرد. برای این کار، ویژگی‌های تشخیص و تشخیص چهره (Face recognition & Face detection) را در تنظیمات فعال کنید.

پخش ویدئو و تشخیص چهره با ESP32-CAM

برای تشخیص چهره، ابتدا باید یک چهره را ثبت کنید. شما می توانید با کلیک بر روی گزینه “Enroll Face” یک چهره جدید ثبت کنید. برای ثبت دقیق چهره چندین تلاش لازم است. پس از ذخیره چهره، چهره را به عنوان subject 0 تشخیص می دهد و اکنون می توان از آن به عنوان یک سیستم امنیتی با تشخیص چهره استفاده کرد.

بنابراین به این صورت است که یک ماژول دوربین ESP را می توان به راحتی برای پخش ویدیو و تشخیص چهره پیکربندی کرد. ویدئوهای کوچک زیر را که توسط دوربین ESP32 گرفته شده است را بررسی کنید.

3.9 (10 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

14 نظر

  1. سلام، وقت بخیر
    من کد رو پروگرام کردم ولی بعد از زدن دکمه ریست، در سریال مانیتور این ارور بار ها و بار ها پشت سر هم به صورت پیوسته نمایش داده میشد.
    ارور:
    Brownout detector was triggered

    ets Jul 29 2019 12:21:46

    rst:0xc (SW_CPU_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:1
    load:0x3fff0030,len:1344
    load:0x40078000,len:13964
    load:0x40080400,len:3600
    entry 0x400805f0
    E (494) esp_core_dump_f�f�f��r���ɕ�”յ�����ѥѥ���2�չ��jRT �S�J*��}��ɕ}�յ�}���͡�r���ɕ�”յ�����ѥѥ���2�չ��jR�
    E (489) camera: Camera probe failed with error 0x105(ESP_ERR_NOT_FOUND)
    Camera init failed with error 0x105

    دلیلش چی میتونه باشه؟

    1. سلام وقت بخیر
      ai thinker را از حالت کامنت در کد در آوردید؟

    2. بله آقای رحیمی این کار رو انجام دادم. دلیلش چی می تونه باشه؟

    3. پراب دوربین را چک کنید که به خوبی در اسلات قرار گرفته باشد و سالم باشد

    4. یه سوال، وقتی میخوایم SSID و پسورد رو بدیم، حروف بزرگ و کوچک و فاصله مشکلی داره؟
      مثلاً: Galaxy A23D1BE

    5. خیر مشکلی نداره فقط باید دقیقا همان چیزی باشه که هست

    6. بازم این ارور رو دریافت میکنم، جای دوربین رو هم بررسی کردم.

  2. با سلام
    بنده همه مراحل ذکر شده رو رفتم اتصال io0 به gnd هم برقراره، گزینه port با com مد نظر هم فعاله ولی بعد از آپلود برنامه با این ارور مواجه میشم
    Fail to connect to esp32 : no serial data recieved
    ممنون میشم راهنمایی بفرمایید

    1. سلام عزیز
      از ماژول FTDI برای برقراری اتصال با برد استفاده کردید؟
      پایه های RX-TX باید ضرب دری متصل باشند رعایت کردید؟

    2. بله از FTDI استفاده کردم اتصال ضربدری rx و tx هم رعایت کردم ولی با این ارور مواجه میشم

    3. یک تصویر از اتصالاتتان در انجمن قرار بدهید بررسی میکنیم.

    4. سلام، وقت بخیر
      از یک تغذیه خارجی پنج ولتی استفاده کردم، داخل هات اسپات موبایل نوشته esp32 متصل شده اما وقتی ریست میکرو رو میزنم، فقط (????????) رو چاپ می‌کنه و IP آدرس رو نمیده.

    5. سلام عزیز
      باود ریت را در سریال مانیتور روی 115200 قرار بدهید.

    6. سلام، باود ریت رو هم همین مقداری که گفتید تنظیم کردم ولی باز همین علامت های ؟؟؟؟؟؟ رو نشون میده.

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

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