OTA (Over The Air) pada Microcontroller ESP32
Microcontroler merupakan sebuah perangkat elektronika yang memiliki program di dalamnya. Program tersebut ditulis pada memori agar menjadi “daftar pekerjaan” bagi mikrokontroler. Program tersebut dapat berupa fungsi masukan, proses, dan keluaran. Untuk dapat menuliskan program dari PC ke dalam memori mikrokontroler diperlukan sebuah media yang dapat mentransfer program hasil compile. Pada modul mikrokontroler ESP32 media yang umum digunakan adalah USB.
Saat ini sudah terdapat metode lain untuk mentransfer program kita dari PC ke mikrokontroler tanpa menggunakan kabel yaitu Over The Air atau OTA. OTA adalah metode pembaharuan firmware mikrokontroler tanpa adanya konektivitas fisik seperti USB atau Serial. OTA memanfaatkan fitur yang terdapat pada modul ESP32 yaitu WiFi.
sebagai contoh modul mikrokontroler yang sudah mendukung OTA adalah WeMos Lolin32 dengan ESP32 sebagai basis prosesornya. Berikut Spesifikasi dari WeMos Lolin32
Berdasarkan jenis koneksi yang digunakan, OTA dibagi menjadi 2 yaitu secara Direct (langsung) dan Indirect (tidak langsung).
Direct
Jenis koneksi direct atau langsung berarti PC melakukan konektivitas secara langsung dengan mikrokontroler melalui metode client-server. Seperti pada gambar diatas, PC berperan sebagai client dan mikrokontroler sebagai server. Firware.bin dikirim setelah PC terhubung dengan mikrokontroler. Contoh program OTA yang menggunakan jenis koneksi direct adalah BasicOTA dan WebUpdater OTA.
BasicOTA memanfaatkan Arduino IDE sebagai media pengirim firmware hasil compile. Mikrokontroler membuat service UDP Server dan mengubah nya menjadi port pada Arduino IDE. Nama dan alamat IP mikrokontroler akan muncul pada menu “Tools/Port/<nama mikrokontroler — alamat IP>” seperti pada gambar dibawah ini
Sementara WebUpdater OTA memanfaatkan browser pada PC sebagai media untuk mengirimkan firmware. Mikrokontroler mengaktifkan service WebServer dengan tampilan web sederhana sebagai tatap muka dengan pengguna. Pada halaman web yang ditampilkan,kita harus memilih file firmware.bin sebelum mengunggah.
Kekurangan dari jenis koneksi direct ini adalah kita tidak bisa mengirimkan file firmware ke banyak mikrokontroler secara langsung. Jika kita memiliki 100 buah mikrokontroler maka kita harus mengirimkan 100 kali satu-persatu.
Indirect
Indirect atau tidak langsung merupakan jenis pengiriman firmware dengan cara PC tidak terhubung dengan mikrokontroler. Artinya ada media penghubung lain antara PC dan mikrokontroler bisa server atau Cloud. Caranya adalah pengguna menyimpan atau mengunggah file firmware di cloud atau server yang dapat diakses oleh mikrokontroler dari manapun dan kapanpun selama mikrokontroler memiliki jaringan internet. Dengan menggunakan koneksi indirect ini maka keterbatasan pembaharuan program mikrokontroler dalam jumlah banyak dan serentak pada koneksi direct dapat terpecahkan.
Kesimpulan
Keuntungan menggunakan OTA:
- Tidak selalu bergantung dengan kabel usb.
- Tidak terikat oleh jarak.
- Dapat memperbaharui mikrokontroler dalam jumlah yang banyak dan serentak.
- Tidak selalu bergantung dengan Arduino IDE untuk mengunggah firmware. Cukup menggunakan browser (WebUpdater OTA).
- Dapat menulis program dimana saja dan terjaga kerahasiaannya.
keterbatasan penggunaan OTA:
- Program OTA tetap menggunakan kabel untuk mengunggah program pertama kali.
- Program OTA harus ada pada setiap program yang ditulis. Dengan kata lain menambah memori pada program.
- Jaringan internet Mikrokontroler harus stabil agar file firmware tidak rusak.
- OTA inderect masih dalam tahap pengembangan dan Tim IoT Aruna menjadi salah satu pengembang OTA inderect.
Referensi
OTA using SIM800 · Issue #152 · vshymanskyy/TinyGSM · GitHub
ESP32 Basic Over The Air (OTA) Programming In Arduino IDE — 3 Steps (lastminuteengineers.com)
https://randomnerdtutorials.com/esp32-ota-over-the-air-arduino/