Papan ESP32-CAM dengan Kamera OV3660 - Panduan Lengkap Pinout dan Konfigurasi GPIO

ESP32-CAM merupakan salah satu papan pengembangan berbasis mikrokontroler ESP32 yang banyak digunakan dalam proyek Internet of Things (IoT), sistem pengawasan, kamera pintar, pendeteksi objek, hingga implementasi computer vision berbasis AI. Popularitasnya berasal dari kombinasi kemampuan Wi-Fi dan Bluetooth yang terintegrasi dengan modul kamera dalam ukuran yang ringkas.

 

Setiap papan ESP32-CAM memiliki konfigurasi GPIO (General Purpose Input Output) yang berbeda untuk menghubungkan sensor kamera ke mikrokontroler. Oleh karena itu, pemahaman mengenai penetapan pin (pin mapping) menjadi hal penting agar proses pemrograman dan komunikasi antara ESP32 dan sensor kamera dapat berjalan dengan benar. Pada artikel ini, pembahasan difokuskan pada ESP32-CAM-MB dengan sensor kamera OV3660, sehingga konfigurasi pin yang digunakan telah disesuaikan dengan perangkat tersebut.



Mengenal ESP32-CAM-MB dan Sensor Kamera OV3660

ESP32-CAM-MB merupakan papan tambahan (motherboard/programmer) yang dirancang untuk mempermudah proses upload program ke modul ESP32-CAM melalui koneksi USB. Papan ini umumnya dipadukan dengan sensor kamera OV2640, tetapi beberapa varian juga mendukung OV3660. Sensor OV3660 memiliki resolusi hingga 3 Megapiksel (2048 × 1536 piksel), lebih tinggi dibandingkan OV2640 yang hanya mendukung 2 Megapiksel. Dengan resolusi tersebut, OV3660 mampu menghasilkan gambar dengan detail lebih baik untuk kebutuhan sistem monitoring berbasis kamera, deteksi wajah (face recognition), pengenalan objek (object detection), streaming video melalui jaringan, dan sistem keamanan berbasis IoT. Namun, resolusi yang lebih tinggi juga membutuhkan penggunaan memori yang lebih besar. Oleh karena itu, penggunaan PSRAM pada modul ESP32 menjadi sangat disarankan.

Fungsi GPIO pada ESP32-CAM

Sebelum masuk ke konfigurasi pin, penting untuk memahami fungsi masing-masing jalur GPIO yang digunakan sensor kamera.

1. PWDN (Power Down)
Digunakan untuk mengaktifkan atau menonaktifkan daya kamera.

2. RESET
Mengatur proses reset sensor kamera.

3. XCLK (External Clock)
Menghasilkan sinyal clock eksternal yang dibutuhkan kamera agar dapat bekerja.

4. SIOD dan SIOC
Merupakan jalur komunikasi berbasis protokol SCCB (Serial Camera Control Bus) yang mirip dengan I2C. Jalur ini digunakan untuk konfigurasi sensor kamera.

5. Y2–Y9
Merupakan jalur data gambar dari sensor menuju ESP32.

6. VSYNC (Vertical Synchronization)
Digunakan untuk sinkronisasi frame gambar.

7. HREF (Horizontal Reference)
Menentukan batas horizontal data gambar.

8. PCLK (Pixel Clock)
Clock utama yang mengatur pembacaan data piksel.

Konfigurasi GPIO ESP32-CAM-MB dengan Kamera OV3660

Berikut konfigurasi pin yang digunakan untuk ESP32-CAM-MB dengan sensor OV3660:

 

#define PWDN_GPIO_NUM     -1

#define RESET_GPIO_NUM    -1

#define XCLK_GPIO_NUM      4

#define SIOD_GPIO_NUM     18

#define SIOC_GPIO_NUM     23


#define Y9_GPIO_NUM       36

#define Y8_GPIO_NUM       37

#define Y7_GPIO_NUM       38

#define Y6_GPIO_NUM       39

#define Y5_GPIO_NUM       35

#define Y4_GPIO_NUM       14

#define Y3_GPIO_NUM       13

#define Y2_GPIO_NUM       34


#define VSYNC_GPIO_NUM     5

#define HREF_GPIO_NUM     27

#define PCLK_GPIO_NUM     25


Konfigurasi di atas perlu dimasukkan ke dalam file program ketika menggunakan library kamera ESP32, misalnya pada Arduino IDE atau PlatformIO.

Penjelasan Konfigurasi Pin OV3660

Agar lebih mudah dipahami, berikut penjelasan hubungan masing-masing pin terhadap fungsi sistem kamera:

 


Konfigurasi tersebut memungkinkan ESP32 membaca data gambar dari sensor OV3660 secara sinkron dan mengubahnya menjadi frame digital yang dapat diproses lebih lanjut.

Cara Menggunakan Konfigurasi Pin di Arduino IDE

Setelah memasukkan library kamera ESP32, Anda dapat mendeklarasikan model kamera menggunakan konfigurasi berikut:

 

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;


Konfigurasi tersebut akan digunakan saat proses inisialisasi kamera melalui fungsi:

 

esp_camera_init(&config);

Hal yang Perlu Diperhatikan Saat Menggunakan ESP32-CAM OV3660

Beberapa hal yang sering menjadi penyebab error pada ESP32-CAM dengan sensor OV3660 antara lain:

1. Memori tidak mencukupi
Resolusi tinggi membutuhkan alokasi RAM yang lebih besar. Gunakan modul dengan PSRAM aktif.

2. Salah konfigurasi GPIO
Kesalahan pada penetapan pin dapat menyebabkan kamera gagal terdeteksi.

3. Tegangan tidak stabil
ESP32-CAM membutuhkan suplai daya yang stabil, terutama saat Wi-Fi dan kamera aktif bersamaan.

4. Frekuensi XCLK terlalu tinggi
Clock yang terlalu besar dapat menyebabkan hasil gambar tidak stabil atau proses inisialisasi gagal.



Posting Komentar

0 Komentar