Sistem Pemantauan Kelelahan Berbasis HRV dan Suhu dengan Implementasi pada Wearable Device

Capstone Project


K2A — Team 1


Repository komputer edge gateway

https://github.com/nurFattahh/fatigue_detection

https://github.com/arvin-mf/capstone


Sistem Pemantauan Kelelahan Berbasis HRV Dan Suhu Tubuh dengan Implementasi pada Wearable Device


Deskripsi Proyek

Sistem ini melakukan deteksi kelelahan berdasarkan sinyal ECG dari tubuh serta temperatur tubuh. Kondisi kelelahan dideteksi dengan algoritma Support Vector Machine (SVM). Perangkat sistem memberikan peringatan dari buzzer setiap kali subyek terdeteksi mengalami kelelahan. Data-data numerik terkait kondisi subyek disimpan pada sebuah basis data dan ditampilkan dalam sebuah dashboard untuk monitoring.

Gambar perangkat wearable


Fitur Utama

1. Deteksi Kelelahan Real-Time

Menggunakan algoritma Support Vector Machine (SVM) yang ditanamkan langsung pada ESP32 untuk mengklasifikasikan kondisi kelelahan berdasarkan data HRV (dari sinyal ECG) dan suhu tubuh.

2. Wearable Device

Perangkat wearable dilengkapi dengan sensor ECG AD8232 dan sensor suhu MLX90614, memungkinkan pemantauan kondisi tubuh secara terus-menerus tanpa mengganggu aktivitas pengguna.

3. Peringatan Otomatis via Buzzer

Saat pengguna terdeteksi mengalami kelelahan, sistem akan secara otomatis mengaktifkan buzzer sebagai bentuk peringatan langsung di lapangan.

4. Visualisasi Data di Dashboard Grafana

Setiap perangkat wearable terhubung dengan sistem monitoring yang menampilkan grafik data kondisi tubuh pengguna secara real-time melalui Grafana.

5. Manajemen Perangkat dan Subjek Kerja

Sistem dilengkapi dengan interface pengelola data untuk mengatur alokasi perangkat terhadap subjek (pekerja), serta menampilkan status keaktifan masing-masing wearable secara interaktif.


Latar Belakang dan Tujuan

      • Latar Belakang
        1. Sebanyak 27,8% kecelakaan kerja di Indonesia dipicu oleh kelelahan (Kemnaker).
        2. Data ILO tahun 2021 mencatat bahwa 2 juta pekerja meninggal setiap tahun karena kecelakaan yang berhubungan dengan kelelahan.
        3. Di Jawa Barat saja, terdapat 46.027 kasus kecelakaan kerja (BPJS Ketenagakerjaan, 2022), menunjukkan urgensi pengawasan kondisi pekerja.
      • Tujuan
        1. Merancang sistem monitoring kondisi pekerja secara real-time untuk mendeteksi tanda-tanda kelelahan.
        2. Mengembangkan sistem notifikasi dini yang efektif untuk meminimalisir risiko kecelakaan kerja akibat kelelahan.

Alat yang Digunakan

      1. Mikrokontroler, Sumber Daya, Sensor, dan Aktuator
        • Mikrokontroler: ESP32
        • Sensor ECG: AD82
        • Sensor Suhu: MLX90614
        • Baterai dan Modul Charger
        • Buzzer
      1. Grafana
        Grafana dipasang pada komputer dashboard dan diakses melalui port 3000 (default) sebagai penampil visualisasi data-data yang tersimpan pada database.

      2. Docker
        Container-container yang akan diperlukan terdapat pada yaml docker-compose pada repositori program komputer edge gateway, antara lain:

        • InfluxDB
          Digunakan sebagai penyimpanan data time series historikal dari pembacaan sensor-sensor pada setiap perangkat.
        • Mosquitto
          Digunakan sebagai broker MQTT untuk menangani publish data dari ESP32 dan subscribe oleh komputer dashboard.
        • MySQL
          Digunakan sebagai penyimpanan data relasional seputar alat/perangkat dengan subyek yang bekerja di tempat terkait.
        • Migrate
          Digunakan untuk melakukan migrasi database antar komputer yang ingin menjadi komputer dashboard.
        • Redis
          Digunakan untuk penyimpanan data sementara terkait status keaktifan perangkat.

Arsitektur Sistem

 

Arsitektur sistem dapat diamati dari gambar berikut.

Gambar diagram arsitektur

Sistem dapat terdiri dari satu komputer dashboard dan beberapa/banyak perangkat wearable pada subyek.

Pada masing-masing perangkat pada subyek terdapat satu buah mikrokontroler ESP32, sensorAD8232, sensor MLX90614, serta buzzer. Sensor AD8232 dan buzzer melayani input/output kepada ESP32 melalui pin-pin GPIO. Sensor MLX90614 mengirimkan data input digital ke ESP32 melalui protokol I2C.

Berikut adalah wiring diagram dan casing perangkat keras pada setiap perangkat pada subyek. Gambar wiring diagram Gambar desain casing

Gambar casing 1
Gambar casing 2

Pada ESP32, terdapat bagian program yang melakukan inferensi status kelelahan dengan sejumlah parameter yang diproses dari masukan-masukan sensor. Bagian program tersebut merupakan implementasi dari bobot-bobot dan bias yang didapatkan dari algoritma SVM.

ESP32 sebagai pusat pemrosesan di setiap perangkat pada subyek melakukan publish data ke broker MQTT pada server, atau pada proyek ini yaitu komputer yang menjadi edge gateway. Komputer edge gateway melakukan subscribe topik-topik dari semua ESP32 yang ada (menggunakan wildcard). Data yang diterima pada topik MQTT di-bind pada program di komputer edge gateway untuk diproses/disesuaikan dan disimpan ke database.

Komputer edge gateway dipasangi Grafana untuk penampilan grafik besaran-besaran yang didapatkan dari setiap sensor pada perangkat yang digunakan oleh para subyek. Dashboard pada Grafana tersebut membaca data dari basis data InfluxDB yang menyimpan data time series.


Algoritma Machine Learning


Support Vector Machine

Support Vector Machines (SVM) merupakan algoritma machine learning yang mengklasifikasikan data dengan mencari hyperplane sebagai garis optimal yang membedakan kelas yang ada pada data. Dalam pembentukannya, hyperplane paling optimal ditentukan dengan memaksimalkan margin yaitu jarak antara titik data terdekat dari kelas yang berlawanan.


Data yang digunakan

Berikut adalah gambar contoh pengambilan data pada coolterm.

Gambar tangkapan layar file data
Data untuk training dan pengujian terletak pada folder /notebooks


Visualisasi data berupa scatter

Gambar berikut menunjukkan visualisasi scatter dari data yang telah dinormalisasi.

Gambar scatter data


Training Model dan Pengujian

Training model dilakukan dengan menggunakan 80% dari jumlah baris data keseluruhan dan 20% dari baris digunakan untuk pengujian. Berikut adalah hasil performa model pada data uji:

confusion matrix

Classification Report

  • Accuracy: 0.98
  • Precision:
    • Kelas 0: 0.97
    • Kelas 1: 1.00
  • Recall:
    • Kelas 0: 1.00
    • Kelas 1: 0.89
  • F1-Score:
    • Kelas 0: 0.98
    • Kelas 1: 0.94
  • Macro Avg F1-Score: 0.96
  • Weighted Avg F1-Score: 0.98

Model menunjukkan performa yang sangat baik secara keseluruhan, dengan akurasi tinggi dan F1-score yang stabil. Recall pada kelas minoritas (kelas 1) sedikit lebih rendah.


Edge Gateway


Broker MQTT

Sistem ini menggunakan Mosquitto sebagai broker MQTT yang dijalankan pada komputer edge gateway. Broker dijalankan berupa container Docker dengan image eclipse-mosquitto:2 dengan port 1883.


Topik-topik

Nama-nama topik yang digunakan pada sistem ini antara lain,

      • esp32/{MAC_ADDRESS}/discrete

untuk transmisi data pengukuran suhu dan hasil perhitungan bpm

      • esp32/{MAC_ADDRESS}/continue

untuk transmisi data sinyal raw ECG

      • esp32/{MAC_ADDRESS}/status

untuk transmisi data status keaktifan perangkat

Contoh penerimaan data dari subskripsi topik:

Gambar data pada MQTTX


Interface Pengelola Data dari Sensor

 

Program interface melakukan tugas-tugas antara lain,

      • melakukan subscribe terhadap topik-topik MQTT yang mendapatkan publish dari semua perangkat wearable di tempat
      • menerima, mengubah, dan menyediakan data alokasi perangkat terhadap subyek/pekerja dari dashboard status
      • melakukan penyesuaian data yang didapatkan dari subskripsi topik MQTT untuk kemudian menyimpannya pada database

Program interface ditulis dengan bahasa Go.
Kode program dapat diakses pada repositori ini.


Dashboard


Dashboard Alokasi Perangkat dan Status Kelelahan

Gambar dashboard status

Dashboard utama untuk supervisor memantau status kelelahan setiap pekerja dan mengelola perangkat yang digunakan.


Dashboard Monitoring Kondisi Tubuh dan Lingkungan

Gambar dashboard Grafana

Visualisasi data historis dari sensor (seperti BPM dan suhu) ditampilkan melalui Grafana untuk analisis tren.


Demo

Video demo produk dapat dilihat dengan mengklik gambar di bawah ini.

Gambar

Similar Posts