← Daftar materi Arduino

Bab 18 · ESP32-CAM AI Thinker

ESP32-CAM: Menampilkan Kamera di Browser

Siapkan ESP32-CAM dan CameraWebServer melalui Arduino IDE, lalu periksa gambar di jaringan Wi-Fi lokal.

Target percobaan: melihat benda di browser

Kita akan memakai ESP32-CAM AI Thinker dengan kamera OV2640 untuk menampilkan gambar melalui jaringan lokal. Uno tidak digunakan pada percobaan ini. Siapkan board, kamera yang cocok, dudukan programmer USB yang sesuai model board, kabel USB data, serta jaringan Wi-Fi 2,4 GHz.

ESP32-CAM klasik tidak memiliki port USB bawaan. Dudukan programmer seperti ESP32-CAM-MB menyediakan sambungan ke laptop; pastikan orientasi pemasangan dan cara masuk mode upload mengikuti petunjuk dudukan tersebut. Lepaskan daya saat memasang board atau kabel fleksibel kamera.

Jika memakai USB–UART terpisah, gunakan panduan rangkaian dari produsen board. Bedakan suplai board dari level sinyal: GPIO ESP32 memakai logika 3,3 V. Jangan menganggap keluaran TX 5 V aman hanya karena board mempunyai pin suplai 5V.

Siapkan Arduino IDE

  1. Pasang paket esp32 by Espressif Systems melalui Boards Manager. Jika paket belum ditemukan, ikuti petunjuk instalasi Espressif.
  2. Pilih board yang sesuai, misalnya AI Thinker ESP32-CAM untuk model tersebut, lalu pilih port programmer.
  3. Buka File → Examples → ESP32 → Camera → CameraWebServer. Simpan salinannya agar perubahan latihan mudah dilacak.
  4. Buka pengaturan model kamera. Pada contoh baru, pilihannya ada di board_config.h; contoh versi lain dapat menaruhnya di sketch utama. Aktifkan hanya CAMERA_MODEL_AI_THINKER untuk board AI Thinker dan nonaktifkan pilihan model lain.

Pemilihan board di menu IDE dan pemilihan model kamera dalam contoh adalah dua hal berbeda. Model kamera menentukan pemetaan pin internal. Gunakan semua berkas contoh, termasuk berkas server dan pemetaan pin, bukan hanya menyalin isi tab utama.

Isi jaringan dan unggah

Pada sketch utama, cari variabel ssid dan password. Isi dengan jaringan latihan yang bisa diakses board. Contoh pengisian berikut hanya penggalan konfigurasi, bukan sketch lengkap:

const char *ssid = "WiFi_Kelas";
const char *password = "ganti_dengan_sandi_jaringan";
  1. Periksa petunjuk contoh untuk PSRAM dan ukuran partisi aplikasi. Jika kompilasi menyatakan ruang aplikasi kurang, cocokkan pilihan partisi dengan kebutuhan contoh dan kapasitas flash board.
  2. Masuk ke mode upload sesuai programmer, lalu unggah. Pada rangkaian manual, GPIO0 ditahan LOW saat reset untuk masuk bootloader; untuk menjalankan program normal, sambungan tersebut harus dilepas lalu board di-reset.
  3. Buka Serial Monitor pada 115200 baud. Reset board dan tunggu pesan koneksi Wi-Fi.
  4. Buka alamat IP yang dicetak board dari laptop atau ponsel pada jaringan yang sama. Jalankan tampilan stream atau pengambilan gambar pada halaman contoh.

Mulai dari resolusi kecil. Arahkan kamera ke buku atau benda di meja, lalu bandingkan gambar saat pencahayaan berubah. Gunakan jaringan latihan lokal; contoh ini bukan layanan kamera yang sudah dilengkapi pengamanan untuk dibuka ke internet.

Apa yang dikerjakan program?

Urutannya adalah menyiapkan kamera, menghubungkan Wi-Fi, lalu menjalankan server. Browser meminta gambar dan board mengirimkannya. Karena layanan server bekerja melalui tugas lain, isi loop pada contoh tidak harus berisi perintah mengambil gambar berulang-ulang.

PSRAM membantu menyediakan ruang untuk data gambar. Resolusi besar dan beberapa buffer membutuhkan lebih banyak memori; jika tampilan tersendat, turunkan resolusi terlebih dahulu sebelum mengubah banyak pengaturan sekaligus.

Jika belum muncul gambar

GejalaYang diperiksa
Upload tidak tersambungPort, kabel data, orientasi dudukan, dan cara masuk bootloader.
Camera init failedModel kamera dalam konfigurasi serta pemasangan kabel fleksibel. Matikan daya sebelum memasang ulang.
Board terus reset atau muncul brownoutSumber daya dan kabel. Jangan menutupi masalah suplai dengan mematikan pendeteksi brownout.
Wi-Fi tidak tersambungSSID, sandi, sinyal, dan jaringan 2,4 GHz. Jaringan dengan halaman login memerlukan penanganan tambahan.
IP muncul, tetapi browser tidak terhubungPastikan perangkat berada pada jaringan yang dapat saling mengakses. Jaringan tamu atau kelas dapat mengisolasi perangkat.
Gambar lambat atau terpotongTurunkan resolusi, hentikan akses dari banyak browser, lalu periksa memori dan kestabilan daya.

Latihan dan sumber contoh

Ambil gambar objek yang sama pada dua resolusi. Catat detail yang terlihat dan kelancaran tampilannya. Kode lengkap tersedia pada CameraWebServer resmi Espressif; sesuaikan dengan contoh yang ikut terpasang pada versi paketmu.