ESP32-CAM merupakan salah satu board mikrokontroler yang sudah dilengkapi modul kamera OV2640 sehingga dapat digunakan untuk berbagai proyek Internet of Things (IoT) berbasis gambar. Pada tutorial ini, Anda akan belajar bagaimana cara mengambil gambar menggunakan ESP32-CAM kemudian menguploadnya secara otomatis ke hosting gratis InfinityFree. Gambar yang berhasil diupload akan disimpan pada server hosting dan dapat diakses melalui website menggunakan browser. Tutorial ini menggunakan ESP32-CAM, Arduino IDE, InfinityFree Hosting, dan script PHP untuk menerima file gambar dari ESP32-CAM.
Apa itu InfinityFree?
InfinityFree adalah layanan web hosting gratis yang menyediakan ruang penyimpanan website tanpa biaya. Hosting ini mendukung PHP dan MySQL sehingga dapat digunakan untuk menyimpan file hasil upload dari ESP32-CAM. Dengan InfinityFree, Anda dapat membuat sistem kamera online sederhana tanpa perlu menggunakan Firebase Storage maupun layanan cloud berbayar lainnya.
Gambaran Project ESP32-CAM dan InfinityFree
Pada project ini, ESP32-CAM akan mengambil gambar menggunakan kamera OV2640. Setelah gambar berhasil diambil, file gambar akan dikirim melalui koneksi internet menggunakan metode HTTP POST ke server hosting InfinityFree. Server hosting akan menerima file tersebut menggunakan script PHP dan menyimpannya ke dalam folder uploads. Setelah proses upload berhasil, gambar dapat langsung dilihat melalui browser menggunakan URL yang tersedia. Pada contoh project ini, ESP32-CAM akan mengambil gambar setiap kali board dinyalakan atau dilakukan reset.
A. Membuat Akun InfinityFree
1. Registrasi Akun
Buka website InfinityFree lalu buat akun baru menggunakan email aktif.
2. Membuat Hosting Baru
Setelah login:
- Klik Create Account
- Pilih Free Hosting
- Pilih subdomain gratis
Contoh: esp-project.rf.gd
Klik Create Account.
3. Tunggu Hosting Aktif
Proses aktivasi biasanya memerlukan beberapa menit.
B. Membuat Folder Upload Gambar
- Masuk ke File Manager.
- Buka folder htdocs
- Buat folder baru uploads
- Struktur folder menjadi htdocs -> uploads
C. Membuat Script Upload PHP
- Buat file baru upload.php
- Masukkan kode berikut:
<?php
$filename = "photo_" . time() . ".jpg";
$file = fopen("uploads/" . $filename, "wb");
fwrite($file, file_get_contents("php://input"));
fclose($file);
echo "SUCCESS";
?>
- Simpan file tersebut.
- Struktur hosting menjadi htdocs, terdapat file upload.php dan folder uploads.
D. Menguji Script Upload
- Buka browser https://esp-project.rf.gd/upload.php
- Jika muncul teks "SUCCESS" berarti script PHP berhasil dijalankan oleh server.
E. Persiapan Arduino IDE
1. Install Board ESP32
- Buka "Tools → Board Manager"
- Install "ESP32 by Espressif Systems"
2. Library yang Digunakan
Library yang diperlukan:
#include <WiFi.h>
#include <HTTPClient.h>
#include "esp_camera.h"
F. Kode ESP32-CAM Upload Gambar ke InfinityFree
- Masukkan konfigurasi berikut:
#define WIFI_SSID "NamaWiFi"
#define WIFI_PASSWORD "PasswordWiFi"
#define SERVER_URL "https://esp-project.rf.gd/upload.php"
- Library yang Digunakan
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <HTTPClient.h>
#include "esp_camera.h"
Digunakan untuk koneksi WiFi, HTTP upload, dan kamera OV2640.
- Konfigurasi WiFi
#define WIFI_SSID "NamaWiFi"
#define WIFI_PASSWORD "PasswordWiFi"
Digunakan untuk menghubungkan ESP32-CAM ke internet.
- URL Server
#define SERVER_URL "https://esp-project.rf.gd/upload.php"
Merupakan alamat script PHP yang menerima file gambar.
- Fungsi Inisialisasi Kamera
void initCamera()
Digunakan untuk mengaktifkan modul kamera OV2640.
- Fungsi Mengambil Gambar
camera_fb_t * fb = esp_camera_fb_get();
Digunakan untuk mengambil gambar dari kamera.
- Upload Gambar ke Hosting
HTTPClient http;
http.begin(SERVER_URL);
http.addHeader(
"Content-Type",
"image/jpeg"
);
int response =
http.POST(fb->buf, fb->len);
Kode tersebut mengirimkan gambar ke server hosting menggunakan metode HTTP POST.
Cara Kerja Upload
Proses upload berlangsung sebagai berikut:
- ESP32-CAM mengambil gambar.
- Data gambar disimpan di buffer kamera.
- ESP32-CAM terhubung ke server InfinityFree.
- Data gambar dikirim menggunakan HTTP POST.
- Script PHP menerima gambar.
- Gambar disimpan ke folder uploads.
- File dapat diakses melalui browser.
Upload Program ke ESP32-CAM
Setelah konfigurasi selesai:
- Hubungkan ESP32-CAM ke laptop/PC menggunakan kabel USB atau USB-to-Serial sesuai jenis board yang digunakan.
- Pilih board AI Thinker ESP32-CAM.
- Upload program.
- Buka Serial Monitor.
Demonstrasi Hasil
Jika berhasil:
- ESP32-CAM mengambil gambar.
- Gambar dikirim ke server.
- File tersimpan pada folder uploads.
- Status upload berhasil tampil pada Serial Monitor.
Mengecek Hasil Upload
- Masuk ke File Manager InfinityFree.
- Jika proses upload berhasil, maka akan muncul file gambar pada folder htdocs/uploads, misalnya:
photo_1749123501.jpg
Gambar juga dapat dibuka langsung melalui browser menggunakan URL https://esp-project.rf.gd/uploads/photo_1749123456.jpg
Kelebihan Menggunakan InfinityFree
- Gratis tanpa kartu kredit
- Tidak memerlukan Firebase Storage.
- Tidak memerlukan Firebase Authentication.
- Mudah dipelajari untuk pemula.
- Dapat diakses melalui internet.
- Cocok untuk project monitoring sederhana menggunakan ESP32-CAM
Catatan:
Sebagian akun InfinityFree dapat membatasi request HTTP POST tertentu dari perangkat eksternal. Jika upload gagal meskipun program sudah benar, pertimbangkan menggunakan hosting berbayar atau VPS yang mendukung upload file tanpa pembatasan tambahan.
Baca juga: ESP32-CAM - Menampilkan Gambar Menggunakan InfinityFree Web Hosting






0 Komentar