آردوینو Arduinoاینترنت اشیا - IOTمطالب آموزشی

تفاوت دوربین RHYX-M21 و RHYX-M21-45 در ماژول ESP32-CAM

بررسی سازگاری، نحوه راه‌اندازی و تنظیمات نرم‌افزاری ESP32-CAM در Arduino IDE

ماژول ESP32-CAM یکی از محبوب‌ترین بردهای ارزان‌قیمت برای پروژه‌های بینایی ماشین، نظارت و اینترنت اشیا (IoT) است.
این برد معمولاً به همراه یک دوربین ۲ مگاپیکسلی OV2640 عرضه می‌شود، اما در بازار نسخه‌هایی با نام RHYX-M21 یا RHYX-M21-45 نیز یافت می‌شود که باعث سردرگمی کاربران می‌گردد.

در این مطلب بررسی می‌کنیم که این دو مدل دقیقاً چه تفاوتی دارند، چگونه باید راه‌اندازی شوند و در چه شرایطی کارایی مطلوب دارند.

ماژول وای فای و بلوتوث ESP32-CAM با دوربین 2 مگاپیکسل RHYX-M21

ماژول وای فای و بلوتوث ESP32-CAM با دوربین 2 مگاپیکسل RHYX-M21


🛒 خرید از ECA

ماژول وای فای و بلوتوث ESP32-CAM با دوربین 2 مگاپیکسل OV2640

ماژول وای فای و بلوتوث ESP32-CAM با دوربین 2 مگاپیکسل OV2640


🛒 خرید از ECA

 

🧩 معرفی اجمالی دو مدل

🔹 RHYX-M21

این مدل از نظر سخت‌افزاری تقریباً همان OV2640 است. در واقع، RHYX-M21 یک نسخه‌ی سازگار (Clone) از OV2640 محسوب می‌شود و با همان درایور و کدهای Arduino کار می‌کند. به همین دلیل در اغلب موارد می‌توان بدون هیچ تغییری از کدهای آماده ESP32-CAM مثل CameraWebServer استفاده کرد.

🔹 RHYX-M21-45

اما مدل RHYX-M21-45 داستان متفاوتی دارد! در این نسخه از سنسور متفاوتی (معمولاً GC2145 یا GC0328C ساخت GalaxyCore) استفاده شده است. این تراشه برخلاف OV2640، از فشرده‌سازی سخت‌افزاری JPEG پشتیبانی نمی‌کند و تنها قادر به ارسال داده‌ی خام (Raw) در قالب RGB565 است.

در نتیجه، اگر بخواهید این مدل را با همان تنظیمات OV2640 راه‌اندازی کنید، تصویر یا نمایش داده نمی‌شود، یا با خطای JPEG format not supported روبه‌رو خواهید شد.


⚙️ مقایسه فنی

ویژگی RHYX-M21 (سازگار با OV2640) RHYX-M21-45 (GC2145 یا مشابه)
رزولوشن مؤثر 1600×1200 (UXGA) 1600×1200 (اسمی) – عملکرد بهتر در VGA
فشرده‌سازی JPEG ✅ دارد ❌ ندارد
فرمت پیکسل پیش‌فرض PIXFORMAT_JPEG PIXFORMAT_RGB565
سرعت استریم سریع و پایدار کندتر در رزولوشن بالا
مصرف RAM کم (به‌دلیل JPEG) بیشتر (به‌دلیل داده خام)
کیفیت رنگ بهتر و طبیعی‌تر کمی مات و سرد
سازگاری با Arduino IDE کامل نیازمند تغییر فرمت پیکسل
کاربرد پیشنهادی پروژه‌های تصویر و ویدیو پروژه‌های تشخیص چهره و آموزش

🧠 نحوه راه‌اندازی در Arduino IDE

📷 برای RHYX-M21 (سازگار با OV2640)

کافی است از مثال آماده زیر استفاده کنید:

📌 با این تنظیمات، می‌توانید تصویر زنده را از طریق مرورگر در شبکه Wi-Fi مشاهده کنید.
(نمونه کد: File → Examples → ESP32 → Camera → CameraWebServer)


📸 نکته مهم برای راه‌اندازی دوربین RHYX-M21-45 (بدون فشرده‌سازی JPEG)

دوربین RHYX-M21-45 از فشرده‌سازی سخت‌افزاری JPEG پشتیبانی نمی‌کند و در نتیجه، در صورت استفاده از تنظیمات پیش‌فرض مربوط به دوربین‌های رایجی مانند OV2640، تصویر ارسال نخواهد شد یا ماژول به‌درستی عمل نمی‌کند.
بنابراین، لازم است تنظیمات فرمت پیکسل (Pixel Format) در کد آردوینو تغییر داده شود تا با این نوع دوربین سازگار گردد.

محل تغییر تنظیمات در کد آردوینو

این تغییر در بخش پیکربندی دوربین انجام می‌شود؛ معمولاً در نمونه‌کدهای آماده مانند
File → Examples → ESP32 → Camera → CameraWebServer
در تابع setup() یا در ساختار camera_config_t قابل مشاهده است.

در کد پیش‌فرض معمولاً تنظیم زیر وجود دارد:

برای استفاده از دوربین RHYX-M21-45، باید این خط را به صورت زیر تغییر دهید:

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

توضیح فنی

در حالت PIXFORMAT_JPEG، تراشه‌ی دوربین فریم‌ها را به‌صورت فشرده ارسال می‌کند و ماژول ESP32 تنها آن را منتقل می‌نماید.
اما در حالت PIXFORMAT_RGB565، فریم‌ها به صورت داده‌های خام و بدون فشرده‌سازی ارسال می‌شوند، که ضمن افزایش حجم تصویر، نیازمند حافظه‌ی بیشتری در ESP32 است.

به همین دلیل، در این حالت امکان استریم ویدئویی با سرعت بالا وجود ندارد و کاربرد اصلی آن در تشخیص تصویر، بینایی ماشین یا گرفتن عکس ثابت (snapshot) است.

نکات مهم

  • مقدار مدل دوربین باید همان مقدار پیش‌فرض برد باشد:
    زیرا پین‌های اتصال دوربین تغییری نمی‌کنند.
  • در صورت مشاهده‌ی پیام خطا مانند
    frame buffer malloc failed
    لازم است رزولوشن را پایین‌تر انتخاب کنید.

⚠️ نکات مهم

  1. پین‌ها در هر دو مدل کاملاً یکسان‌اند و نیازی به تغییر در camera_pins.h نیست.
  2. اگر تصویر سیاه است یا فریز می‌شود، فرکانس کلاک را کاهش دهید:
  3. برای استریم پایدارتر از منبع تغذیه ۵ ولت با جریان حداقل ۱ آمپر استفاده کنید.
  4. در ESPHome یا Home Assistant نیز همین منطق صدق می‌کند؛ برای RHYX-M21-45 باید فرمت پیکسل را RGB565 قرار دهید.

روش اول برنامه‌نویسی ESP32-CAM و اعمال تغییرات توضیح داده شده در بالا

برنامه‌نویسی ESP32-CAM می‌تواند کمی دردسرساز باشد، زیرا این برد پورت USB داخلی ندارد. به دلیل همین تصمیم طراحی، کاربران برای آپلود برنامه‌ها از Arduino IDE به سخت‌افزار اضافی نیاز دارند. هیچ‌کدام از این مراحل خیلی پیچیده نیستند، اما می‌تواند آزاردهنده باشد.


استفاده از مبدل FTDI

اگر تصمیم گرفته‌اید از مبدل FTDI استفاده کنید، اتصال آن به ماژول ESP32-CAM به شکل زیر خواهد بود:

10 ESP32 CAM FTDI Adapter Connections

بسیاری از پروگرامرهای FTDI یک جامپر دارند که به شما اجازه می‌دهد بین ۳.۳ ولت و ۵ ولت انتخاب کنید. چون ما ESP32-CAM را با ۵ ولت تغذیه می‌کنیم، مطمئن شوید جامپر روی ۵V قرار دارد.

لطفاً توجه کنید که پین GPIO0 باید به زمین (GND) متصل شود. این اتصال فقط در زمان برنامه‌ریزی ESP32-CAM لازم است.
وقتی برنامه‌ریزی ماژول به پایان رسید، باید این اتصال را قطع کنید.

یادتان باشد! هر بار که می‌خواهید یک کُد جدید (Sketch) آپلود کنید، باید دوباره این اتصال را برقرار کنید.


راه‌اندازی Arduino IDE و نصب برد ESP32

برای برنامه‌ریزی ماژول ESP32-CAM، ابتدا باید محیط Arduino IDE را نصب و آماده‌سازی کنید. آخرین نسخه را می‌توانید از وب‌سایت رسمی آردوینو به آدرس https://www.arduino.cc/en/software دریافت و روی سیستم‌عامل خود نصب کنید. پس از نصب، برنامه را اجرا کرده و از منوی File → Preferences، در بخش Additional Boards Manager URLs، آدرس زیر را اضافه کنید:

این آدرس به Arduino IDE اجازه می‌دهد تا بسته‌های مربوط به تراشه‌های ESP32 را شناسایی و نصب کند.


⚙️ نصب پشتیبانی از برد ESP32

پس از افزودن آدرس بالا، از مسیر Tools → Board → Boards Manager وارد بخش مدیریت بردها شوید. در نوار جست‌وجو عبارت esp32 را بنویسید و بسته‌ی esp32 by Espressif Systems را نصب کنید. پس از پایان نصب، از منوی Tools → Board، گزینه‌ی AI Thinker ESP32-CAM را انتخاب نمایید. این برد شامل پین‌پیکربندی و تنظیمات لازم برای ماژول‌های ESP32-CAM است و به شما اجازه می‌دهد تا مستقیماً کدهای مربوط به ماژول دوربین را روی آن آپلود کنید. با انجام این مراحل، Arduino IDE آماده‌ی برنامه‌ریزی و راه‌اندازی ماژول ESP32-CAM خواهد بود.


انتخاب برد و پورت

Selecting the Board and Port

پس از نصب ESP32 Arduino Core، Arduino IDE خود را ری‌استارت کنید و به مسیر زیر بروید:
Tools > Board > ESP32 Arduino و سپس AI-Thinker ESP32-CAM را انتخاب کنید.

08 Selecting ESP32CAM Board Arduino IDE Boards Manager

اکنون ESP32-CAM را با استفاده از یک کابل USB به کامپیوتر خود متصل کنید. سپس به مسیر زیر بروید:
Tools > Port و پورتی را که ESP32-CAM به آن وصل است انتخاب کنید.

07 ESP32 CAM Port Selection

همین! Arduino IDE اکنون برای استفاده با ESP32-CAM آماده است.

روش دوم استفاده از کد آماده زیر برای راه‌اندازی ماژول ESP32-CAM با دوربین RHYX-M21


🧩 مرحله ۱: دانلود کد آماده

کد مخصوص این مدل دوربین در گیت‌هاب منتشر شده است:
🔗 https://github.com/Pippoosh/rhyx-m21-cam

۱. وارد لینک بالا شوید.
۲. روی دکمه‌ی Code → Download ZIP کلیک کنید.
۳. فایل ZIP را در سیستم خود Extract کنید.
۴. پوشه‌ی استخراج‌شده را در Arduino IDE باز کنید (فایل CameraWebServer.ino).


⚙️ مرحله ۲: تنظیم کد Wi-Fi و فرمت تصویر

در ابتدای کد، نام و رمز وای‌فای خود را وارد کنید:

اگر از دوربین RHYX-M21-45 استفاده می‌کنید (که فشرده‌سازی JPEG ندارد)،
بخش مربوط به فرمت تصویر را به شکل زیر تغییر دهید:


🔌 مرحله ۳: اتصالات برای پروگرام

  • 5V → 5V
  • GND → GND
  • TX → U0R (RX)
  • RX → U0T (TX)
  • IO0 → GND (فقط هنگام آپلود)

برای تغذیه بهتر از آداپتور ۵ ولت ۱ آمپر یا بیشتر استفاده کنید.


🛠 مرحله ۴: تنظیمات Tools در Arduino IDE

از منوی Tools تنظیمات زیر را انجام دهید:

گزینه مقدار پیشنهادی
Board AI Thinker ESP32-CAM
CPU Frequency 240MHz (WiFi/BT)
Flash Frequency 80MHz
Flash Mode QIO
Partition Scheme Huge APP (3MB No OTA/1MB SPIFFS)
Core Debug Level None
Erase All Flash Disabled
Port پورت مبدل USB-TTL شما

⏫ مرحله ۵: آپلود و اجرا

  1. در حالی‌که پایه IO0 به GND متصل است، دکمه‌ی Upload را بزنید.
  2. وقتی عبارت Connecting... در IDE ظاهر شد، دکمه RST را فشار دهید.
  3. پس از آپلود، اتصال IO0 به GND را قطع کرده و مجدداً برد را ریست کنید.
  4. در Serial Monitor (سرعت 115200) آدرس IP دوربین نمایش داده می‌شود.
  5. آدرس را در مرورگر وارد کنید تا صفحه‌ی وب‌کم باز شود.

⚠️ نکات مهم

  • اگر خطای frame buffer malloc failed دیدید، رزولوشن را پایین‌تر بگذارید.
  • در صورت نداشتن تصویر، مطمئن شوید PIXFORMAT_RGB565 فعال و پین‌ها مطابق مدل AI Thinker باشند.

نوشته های مشابه

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

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

دکمه بازگشت به بالا