ESP32-CAM merupakan salah satu modul mikrokontroler yang banyak digunakan untuk proyek Internet of Things (IoT), sistem pemantauan, kamera pengawas, hingga aplikasi pengolahan citra berbasis kecerdasan buatan. Modul ini menggabungkan mikrokontroler ESP32, konektivitas Wi-Fi, Bluetooth, serta kamera dalam satu papan yang ringkas.
Pada artikel ini digunakan ESP32-CAM AI-Thinker dengan sensor kamera OV3660 yang dipasang pada ESP32-CAM-MB. Berbeda dengan beberapa tutorial lain yang menyimpan foto ke kartu microSD, pada pembahasan ini seluruh hasil gambar akan ditampilkan langsung melalui browser menggunakan Camera Web Server sehingga tidak memerlukan kartu microSD sama sekali.
Metode ini lebih praktis karena pengguna dapat mengakses kamera secara langsung melalui jaringan Wi-Fi menggunakan laptop maupun smartphone.
Mengapa Tidak Menggunakan MicroSD?
Meskipun ESP32-CAM menyediakan slot microSD, banyak pengguna yang tidak memasang kartu memori karena beberapa alasan, seperti tidak memiliki kartu microSD, ingin mengurangi biaya perangkat, hanya membutuhkan tampilan kamera secara real-time, ingin mengakses gambar langsung dari browser, dan tidak perlu menyimpan foto secara permanen. Dengan Camera Web Server, gambar dapat ditampilkan langsung melalui alamat IP ESP32-CAM tanpa memerlukan media penyimpanan tambahan.
Perangkat yang Dibutuhkan
- ESP32-CAM AI-Thinker.
- Kamera OV3660.
- ESP32-CAM-MB.
- Kabel USB data.
- Komputer atau laptop.
- Arduino IDE.
- Jaringan Wi-Fi.
Menginstal Board ESP32 pada Arduino IDE
Jika Arduino IDE belum mengenali board ESP32, lakukan instalasi terlebih dahulu.
1. Buka "File → Preferences".
2. Tambahkan URL berikut pada kolom Additional Boards Manager URLs:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
3. Selanjutnya buka "Tools → Board → Boards Manager".
4. Cari "ESP32 by Espressif Systems".
5. Kemudian klik "Install".
Menghubungkan ESP32-CAM-MB ke Komputer
1. Pasang ESP32-CAM pada modul ESP32-CAM-MB dengan posisi yang benar.
2. Setelah itu hubungkan modul ke komputer menggunakan kabel USB data. Karena ESP32-CAM-MB sudah memiliki USB-to-Serial converter bawaan, proses upload dapat dilakukan langsung tanpa FTDI, CP2102, atau CH340 tambahan.
3. Konfigurasi Board pada Arduino IDE
- Pilih board berikut "Tools → Board → ESP32 Arduino → AI Thinker ESP32-CAM".
- Kemudian pilih port serial yang terdeteksi "Tools → Port". Contoh: COM5, COM8, dan COM12. Nomor port dapat berbeda pada setiap komputer.
Program Camera Web Server ESP32-CAM OV3660
Program berikut akan menghubungkan ESP32-CAM ke jaringan Wi-Fi dan menjalankan web server yang dapat diakses melalui browser. Sebelum upload, ubah bagian SSID dan PASSWORD sesuai jaringan Wi-Fi yang digunakan.
Kode Program Lengkap
#include "esp_camera.h"
#include <WiFi.h>
// ===================
// Pilih Kamera
// ===================
#define CAMERA_MODEL_AI_THINKER
#include "camera_pins.h"
// ===================
// Ganti dengan WiFi Anda
// ===================
const char* ssid = "NAMA_WIFI";
const char* password = "PASSWORD_WIFI";
void startCameraServer();
void setup() {
Serial.begin(115200);
Serial.setDebugOutput(false);
camera_config_t config;
config.ledc_channel = LEDC_CHANNEL_0;
config.ledc_timer = LEDC_TIMER_0;
config.pin_d0 = 5;
config.pin_d1 = 18;
config.pin_d2 = 19;
config.pin_d3 = 21;
config.pin_d4 = 36;
config.pin_d5 = 39;
config.pin_d6 = 34;
config.pin_d7 = 35;
config.pin_xclk = 0;
config.pin_pclk = 22;
config.pin_vsync = 25;
config.pin_href = 23;
config.pin_sccb_sda = 26;
config.pin_sccb_scl = 27;
config.pin_pwdn = 32;
config.pin_reset = -1;
config.xclk_freq_hz = 20000000;
config.pixel_format = PIXFORMAT_JPEG;
if(psramFound()){
config.frame_size = FRAMESIZE_UXGA;
config.jpeg_quality = 10;
config.fb_count = 2;
} else {
config.frame_size = FRAMESIZE_SVGA;
config.jpeg_quality = 12;
config.fb_count = 1;
}
esp_err_t err = esp_camera_init(&config);
if (err != ESP_OK) {
Serial.printf("Camera init failed 0x%x", err);
return;
}
sensor_t * s = esp_camera_sensor_get();
// Pengaturan gambar
s->set_brightness(s, 0);
s->set_contrast(s, 0);
s->set_saturation(s, 0);
s->set_whitebal(s, 1);
s->set_awb_gain(s, 1);
s->set_wb_mode(s, 0);
s->set_exposure_ctrl(s, 1);
s->set_gain_ctrl(s, 1);
s->set_hmirror(s, 0);
s->set_vflip(s, 0);
WiFi.begin(ssid, password);
Serial.println("");
Serial.print("Menghubungkan ke WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi Terhubung");
startCameraServer();
Serial.print("Buka browser dan akses: http://");
Serial.println(WiFi.localIP());
}
void loop() {
delay(10000);
}
Mengunggah Program
1. Klik tombol Upload pada Arduino IDE.
2. Tunggu hingga muncul pesan:
Hash of data verified
Leaving...
Hard resetting via RTS pin...
Jika upload berhenti pada proses "Connecting", tekan tombol RST satu kali pada ESP32-CAM-MB.
Mengakses Camera Web Server
1. Setelah ESP32-CAM berhasil terhubung ke Wi-Fi, buka Serial Monitor.
2. Atur baud rate menjadi 115200.
3. Serial Monitor akan menampilkan alamat IP seperti berikut:
WiFi Terhubung
Buka browser dan akses http://192.168.1.100.
4. Masukkan alamat IP tersebut ke browser laptop atau smartphone yang berada pada jaringan Wi-Fi yang sama.
Mengatur Kualitas Gambar Kamera OV3660
Setelah halaman Camera Web Server terbuka, berbagai parameter kamera dapat diubah secara langsung melalui browser. Beberapa pengaturan yang tersedia antara lain:
- Brightness (Kecerahan)
- Contrast (Kontras)
- Saturation (Saturasi)
- White Balance
- Exposure
- Gain Control
- Mirror
- Flip
- JPEG Quality
- Resolusi Kamera
Pengaturan ini memungkinkan pengguna memperoleh kualitas gambar yang sesuai dengan kondisi pencahayaan di lokasi pemasangan kamera.
Resolusi yang Tersedia
ESP32-CAM OV3660 mendukung berbagai resolusi, antara lain:
- QQVGA: (160 × 120)
- QVGA: (320 × 240)
- VGA: (640 × 480)
- SVGA: (800 × 600)
- XGA: (1024 × 768)
- SXGA: (1280 × 1024)
- UXGA: (1600 × 1200)
Semakin tinggi resolusi yang digunakan, semakin besar kebutuhan memori dan bandwidth jaringan.
Mengatasi Error yang Sering Muncul
1. Camera Init Failed
Biasanya terjadi karena kamera tidak terpasang dengan baik.
Solusi:
- Periksa kabel fleksibel kamera.
- Pastikan konektor terkunci sempurna.
- Restart ESP32-CAM.
2. Failed to Connect to ESP32
Biasanya muncul saat upload program.
Solusi:
- Tekan tombol RST saat proses upload dimulai.
- Gunakan kabel USB data.
- Periksa port COM yang dipilih.
3. Brownout Detector Was Triggered
Error ini menandakan suplai daya tidak stabil.
Solusi:
- Gunakan kabel USB berkualitas baik.
- Gunakan port USB lain.
- Pastikan ESP32-CAM terpasang dengan benar pada modul MB.






0 Komentar