Seringkali kita jumpai contoh-contoh sketch project yang ada di internet untuk modul-modul ESP32 menggunakan SSID dan password yang dituliskan pada source code dalam bentuk konstanta.

Hal ini tentunya akan merepotkan nanti pada aplikasi sesungguhnya karena tidak mungkin kita meminta user untuk mengubah source code apabila terjadi pergantian password wifi atau bahkan SSID. User yang saya maksud di sini adalah user / pengguna dari alat yang kita buat menggunakan ESP32 ini yang bisa jadi orang yang awam akan mikrokontroler ataupun arduino.
Oleh karena itu di sini akan saya bahas bagaimana cara mengganti pengaturan password dan SSID di dalam ESP32 tanpa merubah source code.
- Kita gunakan contoh WifiSmartConfig yang ada pada example dari Arduino IDE untuk board ESP32. Pilih example – WiFi – WifiSmartConfig seperti pada gambar di bawah ini. Pastikan Arduino IDE sudah memilih Board ESP32 yang tepat melalui Board Manager karena apabila belum, maka example tersebut memang tidak tampil. Anda dapat melihat cara pengaturan Board Manager di artikel berikut.

- Upload sketch tersebut ke ESP32cam seperti yang dijelaskan pada artikel berikut. Pindahkan Jumper (kabel abu2 pada gambar di artikel ini) ke Mode Run dan tekan tombol reset.
- Gunakan aplikasi ESP Touch yang dapat didownload di playstore
- Pilih ESP Touch, jangan ESP Touch V2 Gambar ESP Touch V2
- SSID akan menampilkan SSID yang terhubung pada smartphone anda saat ini. Bila belum, terlebih dahulu anda hubungkan smartphone anda ke SSID Wifi saat ini
- Masukkan password kemudian pilih Multicast dan klik start. Gambar ESP Touch V2 multicast option
- Tunggu hingga pesan successfull tampil, pada aplikasi ESP Touch.
- Pada layar terminal Arduino IDE juga akan tampil pesan WiFi Connected yang artinya ESP32CAM sudah diatur dengan SSID dan password baru.
Anda dapat menyisipkan example sketch ini ke sketch anda. Contoh berikut ini adalah sketch yang sudah saya modifikasi dari bagian example di mana apabila SSID dan password tersimpan maka WiFi akan langsung terhubung namun apabila belum maka WiFi tidak terhubung dan perintah pengaturan SSID dan Password akan dijalankan saat ada perintah “$network” yang dikirimkan lewat port serial. Hal ini diperlukan apabila ESP32Cam merupakan WiFi Gateway dari mikrokontroler lain sehingga mikrokontroler tersebut akan mengirimkan perintah “$network” untuk masuk ke mode pengaturan SSID. Tapi apabila anda gunakan single microcontroller yaitu hanya menggunakan ESP32CAM saja maka dapat menggunakan digital pin yaitu dengan instruksi if (digitalRead(pin) == LOW){SmartConfig; }
Berikut adalah sketch yang sudah saya modifikasi dari example WifiSmartConfig sehingga algoritmanya menjadi seperti pada flowchart dibawah ini.

Pada flowchart ini, pada awalnya WiFi diatur pada mode WiFi-STA dan berusaha terkoneksi dengan access point yang ada. Apabila diperoleh SSID dan password yang sama dengan yang telah tersimpan sebelumnya, maka WiFi Status akan CONNECTED dan layar terminal akan menampilkan pesan CONNECTED.
Namun apabila WiFi Status belum CONNECTED maka layar terminal akan menampilkan “.”. Apabila sampai 10 detik masih belum CONNECTED maka program akan menampilkan status “NOT CONNECT” di layar terminal.
Apabila ada perintah dari serial berupa $network yang diterima maka mode WiFi akan berubah menjadi WiFi AP STA dan proses SmartConfig dijalankan hingga Smart Config Done. Pada proses inilah Apps ESP Touch dijalankan dengan menekan tombol start seperti yang telah dijelaskan di atas.
Saat SmartConfig = DONE maka selanjutnya menunggu WiFi Status CONNECTED dan Print “WIFI CONNECTED” serta IP dari ESP32CAM ke layar terminal.
Cara Kerja Sketch

Anda dapat menggabungkan sketch yang ada ini dengan sketch yang sedang anda gunakan dengan copy paste bagian setup ke bagian setup dari sketch anda. Dan bagian loop yang merupakan perintah dari serial yang akan memerintahkan mode SmartConfig dijalankan.
Proses untuk menjalankan Mode SmartConfig juga dapat dilakukan melalui switch yang terhubung dengan digital input dengan mengganti instruksi di bagian loop menjadi: if (digitalRead(nomor pin) == LOW) {SmartConfig; ) di mana saat digital input terhubung dengan GND maka mode Smart Config akan dijalankan.

Pada fungsi SmartConfig program akan masuk ke mode Access Point dan proses Smart Config dimulai. Di sinilah saatnya user membuka aplikasi ESP Touch, masukkan password WiFi dan tekan start hingga Smart Config DONE.
Pesan SmartConfig received akan muncul saat proses Smart Config DONE, kemudian dilanjutkan dengan proses menghubungkan ke jaringan WiFi hingga WiFi status = CONNECTED.

Kemudian pesan “WiFi connected” dan IP address dari ESP32CAM akan ditampilkan. Di sini SSID dan password dari WiFi yang ada pada ESP32CAM akan sama dengan SSID dan password dari access point di mana Smartphone kita terhubung. Apabila ESP32CAM direstart WiFi dari ESP32CAM akan langsung terhubung dengan access point tersebut.
DELTA ELECTRONIC
Paulus Andi Nalwan, ST