دليل · ESP32-CAM · كاميرا
كيف تُخرج صورًا جيّدة من ESP32-CAM
يجمع ESP32-CAM بين ESP32 وكاميرا OV2640 بدقّة 2 ميغابكسل بدولارات قليلة — لكنّ إعدادًا سيّئًا يعطيك صورًا ضخمة وضبابية وبطيئة الإرسال. ثلاثة إعدادات تحسم كل شيء: صيغة البكسل، وجودة JPEG، وframesize. إليك ما يفعله كلٌّ منها والقيم التي تعمل ببساطة لـ Telegram وGoogle Drive ولوحة ويب.
١. صيغة البكسل — استعمل JPEG
يستطيع OV2640 إخراج صيغ خام، لكن على ESP32 الشحيح في الذاكرة هذا فخّ. إطار RGB565 أو YUV422 الخام غير مضغوط — صورة 800×600 تقارب الميغابايت، لا تتّسع بأريحية ولا تُرسَل بسرعة. يضغطها JPEG عتاديًّا إلى كسر من الحجم — فهو الخيار المعقول الوحيد لأيّ شيء تخزّنه أو ترسله عبر Wi-Fi.
| الصيغة | الضغط | الحجم | استعملها لـ |
|---|---|---|---|
| JPEG | عالٍ (عتاديّ) | صغير | Telegram وDrive والويب — كل شيء تقريبًا |
| RGB565 | لا (خام) | كبير | معالجة على الجهاز / شاشة |
| YUV422 | لا (خام) | كبير | معالجة الألوان، التحويل |
| Grayscale | منخفض | متوسّط | رؤية بسيطة / كشف الوجوه |
في الكود سطر واحد: config.pixel_format = PIXFORMAT_JPEG;
٢. جودة JPEG — قرص 0–63
على نحوٍ مربك، jpeg_quality هو في الحقيقة رقم ضغط: الأقلّ يعني جودة أفضل وملفًّا
أكبر، والأعلى يعني ضغطًا أكثر وأصغر وأكثر ضبابية. المدى 0–63.
| القيمة | الجودة | ملاحظات |
|---|---|---|
| 5 | حادّة جدًّا ★★★★★ | تفاصيل رائعة، ملفّ كبير |
| 10 | حادّة ★★★★ | جودة جيّدة، ما زال كبيرًا — موصى به |
| 12 | متوازنة ★★★ | جودة متوازنة، حجم متوسّط |
| 20 | موفّرة ★★ | الجودة تنخفض، ملفّ صغير |
| 30+ | ضغط عالٍ ★ | جودة منخفضة، ملفّ ضئيل |
النقطة المثلى: الجودة 10–12 — جميلة وبحجم معقول. (على لوحات كثيرة تتطلّب القيم المنخفضة جدًّا 0–4 وجود PSRAM، وإلّا يفشل الالتقاط.)
٣. Framesize — الدقّة
يبلغ سقف OV2640 1600×1200 (UXGA، 2 ميغابكسل)، لكن الأكبر ليس دومًا أفضل: كل خطوة تضاعف حجم الملفّ وزمن الإرسال. اختر أصغر دقّة تُظهر ما تحتاجه.
| الوضع | الدقّة | البكسلات | مناسب لـ |
|---|---|---|---|
| QQVGA | 160×120 | 19٬200 | ضئيل، توفير النطاق |
| QVGA | 320×240 | 76٬800 | مراقبة خفيفة |
| CIF | 400×296 | 118٬400 | متوازن |
| VGA | 640×480 | 307٬200 | مراقبة لحظية قياسية |
| SVGA ★ | 800×600 | 480٬000 | الخيار لـ Telegram وDrive |
| XGA | 1024×768 | 786٬432 | تفاصيل أكثر |
| SXGA | 1280×1024 | 1٬310٬720 | صور مفصّلة |
| UXGA | 1600×1200 | 1٬920٬000 | أقصى دقّة (2 ميغابكسل) |
الإعداد الذي يعمل ببساطة
اجمعها فتحصل على صورة صغيرة وحادّة وسريعة الإرسال — إعداد ESP32-CAM اليوميّ:
#include "esp_camera.h"
camera_config_t config;
// ... pin config for your ESP32-CAM board ...
config.pixel_format = PIXFORMAT_JPEG; // compressed -> small & fast to send
config.frame_size = FRAMESIZE_SVGA; // 800x600 — the IoT sweet spot
config.jpeg_quality = 10; // 0..63, lower = better (and bigger)
config.fb_count = 1; // one frame buffer — saves RAM
esp_camera_init(&config); ثم اضبط حسب المهمّة: صور مفصّلة → UXGA + جودة 10؛ Telegram / Google Drive → SVGA + جودة 10 (الأفضل لكل الأغراض)؛ مراقبة سريعة → VGA + جودة 12. الدقّة الأكبر تفاصيل أكثر لكن ملفّ أكبر وإرسال أطول. وتذكّر: يحتاج OV2640 إلى ESP32 مع PSRAM لتخزين الإطارات الأكبر مؤقّتًا.
تريد عرض البثّ حيًّا؟ قدّمه من اللوحة في لوحة ويب.