Programming

TantangandanPengalamanBaruDalamProyekPengembanganSmartCaneBerbasisIoT

Proyek pengembangan Smart Cane berbasis IoT membawa pengalaman baru dalam pemrograman embedded device dan penggunaan metode SDLC agile.

Tantangan dan Pengalaman Baru Dalam Proyek Pengembangan Smart Cane Berbasis IoT

Project Based Learning (PBL) yang dilakukan di semester 4 program studi TRPL Polibatam adalah pengembangan perangkat lunak berbasis IoT. Teman saya, Ziyadatul Khoir memiliki ide untuk membuat sebuah tongkat pintar (smart cane) untuk membantu pengguna yang tuna netra dan bisa juga diterapkan untuk pengguna lanjut usia. Tongkat ini akan membantu guardian (keluarga maupun perawat dari pengguna tongkat) untuk mengetahui lokasi pengguna tongkat secara real time melalui aplikasi yang akan kami buat. Selain itu, terdapat modul yang akan membaca gyroscope and accelerometer tongkat pengguna. Hasil pembacaan ini akan diarahkan ke model Machine Learning TinyML untuk mendeteksi apakah pengguna terjatuh atau tidak. Jika pengguna terjatuh akan mengirimkan notifikasi ke guardian melalui aplikasi mobile. Selain itu juga, smart cane ini juga dilengkapi dengan modul Utrasonic untuk mendeteksi halangan (obstacle) yang ada di depan pengguna saat ini. Jika ditemukan halangan, buzzer akan diaktifkan untuk memberikan feedback kepada pengguna. Dengan adanya smart cane ini, diharapkan dapat membantu pengguna tuna netra untuk mengetahui rintangan yang ada di depannya, serta membantu keluarga untuk dapat mengetahui kondisi dan keberadaan pengguna tongkat tersebut.

Frame

Dalam pengembangan proyek ini, tentu saja memerlukan tim yang kompeten. Tim kami berjumlah 6 orang, masing-masing memiliki peranan yang krusial agar proyek ini dapat berjalan dengan baik dan selesai tepat waktu. Ziyadatul Khoir bertindak sebagai Ketua Tim dan AI/ML Engineer. Saya, Muhammad Hasan Firdaus sebagai System Architect dan Hardware Engineer. Nanda Prasetyani Sebagai Hardware Engineer, Hasna Fadhilah Ramadhan sebagai Software Developer, Muhammad Maulana Yusuf sebagai UI/UX serta Product Designer, dan Rivana Alwarid sebagai Business Analyst. Sebelum memulai proses pengembangan, kami berdiskusi dan merencanakan bagaimana sistem ini akan dikembangkan kedepannya. Proses perencanaan ini penting karena akan menghasilkan timeline pengerjaan dan siapa yang akan ditugaskan untuk masing-masing task yang ada. Luaran dari proses ini salah satunya adalah Gantt Chart yang memberikan panduan timeline pengerjaan proyek sampai selesai. Ini akan mempermudah tim kami dalam memastikan proyek selesai tepat waktu dan tidak kebingungan saat melakukan pengerjaan.

Gemini_Generated_Image_3a1mi43a1mi43a1m

Dalam setiap pengembangan perangkat lunak tentu saja akan melakukan SDLC (Software Development Lifecycle). Pada awalnya kami berencana untuk menggunakan metode waterfall yang sudah sering kami lakukan di semester-semester sebelumnya. Namun, karena pada proyek kali ini, seluruh anggota tim belum memiliki pengalaman dalam proyek IoT. Kami menilai metode agile lebih cocok, sehingga kami menggunakannya. Pada metode agile, kami melakukan sprint setiap minggunya. Sebelum mengimplementasikan fitur, akan memperdalam lagi apa saja kebutuhan yang ada pada fitur yang akan diimplementasikan. Hal ini untuk memastikan kami dapat mengakomodir perubahan yang terjadi di tengah pengembangan karena kurangnya pengalaman kami terkait embedded device. Setiap minggunya, progress akan ditunjukkan dan diberikan feedback ketika diperlukan.

WhatsApp Image 2026-04-17 at 16.19.07

Kurangnya pengalaman terkait embedded device ini tentu saja menimbulkan tantangan tersendiri dari sisi kode. Salah satunya adalah secara default pengkodean di ESP32 akan blocking. Hal ini berarti proses harus menunggu proses sebelumnya untuk selesai sebelum dapat mengeksekusi proses baru tersebut. Ini menjadi hambatan yang sangat krusial di proyek kami karena proyek kami memiliki banyak sensor dan proses yang harus berjalan hampir secara bersamaan, tidak boleh menunggu satu fitur selesai lalu berpindah ke fitur lain. Contohnya, fitur utama kami fall detection menggunakan TinyML dan sensor MPU6050, terdapat juga fitur untuk live tracking location menggunakan GPS Neo 7M. Fitur tracking ini harus secara berkala mengirimkan data ke server kami. Tentu saja ini akan menyebabkan blocking karena data tidak akan langsung terkirim. Sementara, fitur fall detection tidak akan berjalan karena adanya blocking ini. Untuk dapat menyelesaikan tantangan ini dan memastikan proyek tetap sesuai timeline, pertama-tama saya melakukan riset bagaimana cara agar dapat melakukan multi-tasking pada ESP32. Ditemukan FreeRTOS yang dapat menjadi sarana multi-tasking pada ESP32. Selanjutnya, dilakukan analisis kira-kira seberapa besar perubahan yang harus terjadi pada code base hardware yang sudah ada. Didapatkan kesimpulan bahwa perubahan kode tidak terlalu besar, karena sebelumnya kode sudah dipisahkan untuk setiap modulnya, sehingga yang harus diubah hanyalah inisialisasi modulnya. Sebelumnya inisialisasi dilakukan di main setup dan melakukan eksekusi bergantian di blok loop, sekarang akan dipindahkan inisialisasinya ketika melakukan pembuatan task baru di fungsi FreeRTOS. Setelah dilakukan analisis, perubahan tersebut diimplementasikan dan tidak mengganggu jadwal yang sudah ada.

Selain pertemuan offline saat jam kuliah dan di jam kosong, kami juga menggunakan sarana komunikasi seperti WhatsApp dan Discord untuk dapat berkomunikasi secara daring. Beberapa platform lain juga kami gunakan untuk berkolaborasi selama pengembangan sistem. Misalnya aplikasi SIAP-PBL Polibatam yang kami gunakan untuk melakukan tracking progress dan mengetahui hal apa yang harus dilakukan oleh masing-masing anggota setiap minggunya. GitHub juga menjadi sarana kolaborasi dalam pembuatan kode program. Kami dapat melakukan peer-review pada kode yang dibuat melalui fitur Pull Request.

WhatsApp Image 2026-05-14 at 19.41.50

Selain terkait multi-tasking, terdapat juga beberapa resiko lain yang perlu tim kami perhatikan. Salah satunya adalah penggunaan SIM800L yang sampai saat ini belum juga berhasil mendapatkan jaringan. Hasil analisis sampai saat ini dikarenakan konfigurasi daya untuk SIM800L belum maksimal. SIM800L memerlukan daya hingga 2A ketika melakukan transmisi jaringan, sehingga konfigurasi menggunakan daya dari ESP32 secara langsung maupun menggunakan baterai belumlah cukup. Solusi yang kami akan segera coba adalah menambahkan beberapa kapasitor dari baterai menuju SIM800L GSM Module. Selain daya, SIM800L juga membawa tantangan tersendiri untuk pengiriman data. Hal ini karena SIM800L baru mendukung koneksi GSM (2G), sehingga pengiriman data harus dilakukan se-efisien mungkin. Kami menggunakan protokol komunikasi MQTT dibandingkan dengan HTTP REST API untuk mengatasi tantangan tersebut. Hal ini karena MQTT dikenal dengan penggunaan data dan daya yang lebih sedikit dibandingkan HTTP. Dari sisi penerapan AI/ML kami juga menemukan tantangan, saat ini belum ada model yang dapat mendeteksi jatuhnya seseorang melalui media tongkat. Kami akan melakukan pengumpulan dataset dan membuat model sendiri menggunakan random forest untuk mengatasi hal ini.

Artikel ini merefleksikan standar kompetensi industri yang diterapkan dalam kurikulum program studi sarjana terapan Teknologi Rekayasa Perangkat Lunak Politeknik Negeri Batam. Pelajari lebih lanjut terkait program studi saya di if.polibatam.ac.id/teknologi-rekayasa-perangkat-lunak