در این پست می خوایم خیلی سریع برد ESP32CAM رو راه اندازی کنیم. بهتون نشون میدم چطور در کمتر از ۵ دقیقه می تونید یک وب سرور پخش ویدئو با قابلیت تشخیص چهره راه اندازکنید.
در این آموزش من از یک مثال آماده که همراه کتابخونه arduino-esp32 نصب میشه استفاده میکنم و قصد ندارم به غیر از تغییر مشخصات مربوط به اتصال Wifi کار دیگه ای انجام بدم.
برای راه اندازی این ویدئو سرور شما به قطعات زیر نیاز دارید:
- برد ESP32-CAM با دوربین OV2640
- پروگرامر یا اصطلاحا رابط سریال FDTI
- جامپر وایر دو سر مادگی
معرفی برد ESP32-CAM
ESP32-CAM یک ماژول دوربین با استفاده از چیپ ESP32 هست که در قیمتش حدود ۱۰ دلار (به ریال در حال حاضر خدا میدونه) هست. به غیر دوربین OV2640 و تعداد پایه ورودی خروجی این برد یک اسلات حافظه microSD رو میزبانی میکنه که برای ذخیره تصاویر خیلی به درد میخوره.
برد ESP32-CAM درگاه یو اس بی نداره و برای آپلود برنامه به اون به مبدل USB به ttl که تو بازار اون رو به FDTI Programmer می شناسن استفاده کنید. پایه RXD و TXD پروگرامر به ترتیب به پایه های U0T و U0R برد ESP32-CAM متصل میشن.
پایه های برد ESP32-CAM
در تصویر زیر میتونید پین های برد ESP32-CAM ورژن AI-Thinker رو مشاهده کنید.
برای تغدیه این برد سه پایه GND یک پایه ۳٫۳v و یک پایه ۵v وجود داره. GPIO1 و GPIO3 پایه های مربوط به رابط سریال هستند. شما از این پایه ها برای آپلود برنامه به برد استفاده می کنید. علاوه بر اون برای اینکه برنامه بر روی برد آپلود بشه باشد برد در حالت فلش قرار بگیره. این کار رو با اتصال پایه GPIO0 به GND انجام میدیم. توجه داشته باشید بعد از آپلود برنامه این پایه باید از GND جدا بشه.
پایه های ذیل برد به اسلات microSD متصل شدن و از بیرون برد قابل دسترس نیستن:
- CLK : GPIO14
- CMD : GPIO15
- Data 0: GPIO 2
- Data : GPIO 4 (همچنین این پایه بطور مشترک به LED روی برد متصل شده)
- Data 2 : GPIO 12
- Data 3 : GPIO 13
راه اندازی سرور
برای اینکه بتونید سرور پخش تصویر رو راه اندازی کنید مراحل زیر رو دنبال کنید. این سرور از طریق شبکه محلی قابل دسترس هست:
۱٫ نصب افزونه ESP32
در این پست من از Arduino IDE برای برنامه ریزی برد ESP32-CAM استفاده می کنم. برای همین باید Arduino IDE به همراه افزونه ESP32 رو نصب داشته باشید. اگر ندارید این آموزش رو دنبال کنید و دوباره برگردید اینجا.
۲٫ نمونه کد CameraWebServer
در محیط Arduino IDE به منوی File > Examples > ESP32 > Camera برید و مثال CameraWebServer رو باز کنید.
بعد از انتخاب مثال مورد نظر کد های زیر باید در محیط Arduino برای شما باز بشن.
قبل از آپلود برنامه باید بخش مربوط به دسترسی شبکه که همون SSID و کلمه عبور مودم شماست رو تغییر بدید:
1 2 |
const char* ssid = "REPLACE_WITH_YOUR_SSID"; const char* password = "REPLACE_WITH_YOUR_PASSWORD"; |
بعد از این مرحله مطمئن بشید نام ماژول رو درست انتخاب کردید. من از ماژول AI-THINKER استفاده می کنم. معمولا اسم سازنده ماژول بطور واضح بر روی اون درج میشه
همونطور که می بینید من خط مربوط به ماژول خودم رو از حالت کامنت خارج کردم و بقیه ماژول ها همچنان در حالت کامنت و غیر فعال هستن.
1 2 3 4 5 6 |
// Select camera model //#define CAMERA_MODEL_WROVER_KIT //#define CAMERA_MODEL_ESP_EYE //#define CAMERA_MODEL_M5STACK_PSRAM //#define CAMERA_MODEL_M5STACK_WIDE #define CAMERA_MODEL_AI_THINKER |
اگر هیچکدوم از موارد فوق مربوط به برد شما نمیشه (که احتمالش خیلی کمه) باید به قسمت مربوط تعریف پین ها برید و براساس پین های معرفی شده در دیتا شیت مربوط برد (در صورت وجود) خودتون تعارف پین ها رو انجام بدید. (اگر هنوز برد رو نخردید سعی کنید حتما ساخت یکی از سازنده های بالا باشه تا به دردسر نخورید).
۳٫ آپلود کد به برد
مثل شکل زیر ماژول دوربین رو به FTDI متصل کنید:
بعضی از بردهای FTDI یا دارای کلید سلکتوری هستن یا جامپر دارن که توسط اون میتونید ولتاژ کاریش رو انتخاب کنید. مطمئن بشید که ولتاژ کاری FTDI حتما روی ۵ ولت باشه. همونطور که در بالا گفتم باز هم تکرار می کنم در لحظه برنامه ریزی برد پایه GPIO0 حتما باید به GND متصل باشه. بعد از اینکه آپلود برنامه به پایان رسید این پایه رو از GND جدا کنید.
پایه های برد ESP32-CAM | پایه های برد FTDI |
GND | GND |
5V | VCC-5V |
U0R | TX |
U0T | RX |
GPIO0 | GND |
برای آپلود برنامه مراحل زیر رو دنبال کنید:
- به منوی Tools > Boards برید و گزینه AI-Thinker ESP32-CAM رو انتخاب کنید.
- به منوی Tools > Port برید و پورت COM که برد ESP32 بهش متصل شده رو انتخاب کنید.
- دکمه مربوط به آپلود کد رو کلیک کنید.
- در هنگام آپلود کد متن های زیر در بخش دیباگ می بینید. بعد از اینکه اپلود کد تموم شد علاوه بر جدا کردن GPIO0 از GND (این سه بار) دکمه ریست بر روی برد رو فشار بدید
بدست آوردن آدرس IP
بعد از آپلود کد پایه GPIO رو از GND جدا کنید (این چهار بار خخخ). ابزار Serial Monitor مربوط به Arduino IDE رو باز کنید و باود ریت رو روی ۱۱۵۲۰ قرار بدید. دکمه ریست روی برد رو فشار بدید. آدرس برد در نمایشگر سریال چاپ میشه
دسترسی به سرور
حالا می تونید به سرور در شبکه محلی دسترسی داشته باشید. مرورگر رو باز کنید و آدرس مربوط به برد در قسمت آدرس بار وارد کنید. حالا صفحه مربوط به سرور قابل مشاهده ست. برای دیدن تصاویر ارسالی از برد دکمه Start Streaming رو کلیک کنید وتمام. اگر تمام مراحل رو با دقت طی کرده باشین باید تصاویر ارسالی ار دوربین رو در مرور گر ببنید. این سرور امکانات متعددی من جمله تشخیص چهره رو داره . برای اینکه این پست طولانی نشه آشنایی با این سرور رو به عهده خودتون میگذارم.
[…] مربوط به برد ESP32 رو بر روی Arduino IDE نصب کنیم و در این آموزش یاد گرفتیم که مثال ویدئو سرور رو بر روی برد آپلود و راه […]
[…] رو بر اساس اون انجام میدم. اگر برد شما متفاوت هست در آموزش راه اندازی ویدئو سرور با قابلیت تشخیص چهره تعارف سایر دوربین ها وجود دارد که میتونید از اون بخش کد […]