Bluetooth dan ESP32 – Teori

Pendahuluan

Bluetooth adalah short-range wireless untuk aplikasi peralatan portable. Awalnya didesain sebagai alternatif wireless dari serial communication protocols seperti RS-232, yaitu untuk menyediakan jalur komunikasi antara dua devices.

Bluetooth specifications dikembangkan oleh Bluetooth Special Interest Group (SIG) dengan ribuan members dari seluruh dunia.

Berawal dari Bluetooth 4.0 core specification, Bluetooth SIG mengkhususkan aplikasi IoT untuk mendukung fitur-fitur seperti low energy, mesh networking, dan location services.

Standard Bluetooth saat ini terdapat dua versions, Bluetooth Classic (BR/EDR) dan Bluetooth Low Energy (BLE). ESP32 mendukung keduanya.

Pada section ini, kita akan membahas fitur BLE dari ESP32. BLE adalah topik yang terlalu luas untuk dibahas dalam tutorial singkat ini, diperlukan suatu tutorial terpisah. Jadi pada tutorial ini kita hanya bahas secara praktikalnya saja.

Pada contoh project, kita hanya akan gunakan single devkit. Pada contoh BLE Mesh networking example, anda dapat tambahkan node baru ke network dengan flash beberapa devkits dimana Anda bisa mencoba BLE parameter lainnya.

Pada sisi software, kita gunakan nRF Connect dan nRF Mesh mobile applications dari Nordic Semiconductor. Aplikasi tersedia free untuk Android maupun iOS.

BLE Basic

Berikut diagram arsitektur dari BLE.

Arsitektur memiliki dua major sections – Controller dan Host.

Controller section memanage radio dan host section menyediakan interface untuk applications.

Kita dapat mendesain device dengan application processor dan Bluetooth network co-processor secara terpisah atau menggunakan single system-on-chip (SoC) dengan Bluetooth radio yang udah ter-embed. ESP32 termasuk dalam kategori kedua, yaitu SoC yang sudah memiliki BLE.

Pada sisi host, ESP32 menggunakan Bluedroid sebagai Bluetooth host. Bluedroid adalah open source implementation dari Bluetooth standard untuk Android devices.

Generic Access Profile

Generic Access Profile (GAP) berguna untuk discovery dan connection services. BLE device dapat beroperasi dengan mode connectionless (broadcasting atau scanning BLE advertisements) atau mode connection-oriented. GAP memiliki empat role berbeda dalam

Roles dalam connectionless mode:

  • Broadcaster, untuk mengirim BLE advertisements, contohnya beacon.
  • Observer, untuk scan BLE advertisements yang di broadcast.

Roles dalam connection-oriented mode:

  • Peripheral untuk mengirim data, contoh, sensor device.
  • Central untuk request data, contoh, mobile phone.

Pada connectionless mode, data bergerak satu arah, dari broadcaster ke observer. Pada connection-oriented mode, data bergerak bidirectional.

Attribute Profile

Attribute adalah building block dari BLE. Seluruh fitur BLE device berupa list of attributes. Setiap attribute memiliki field seperti berikut:

Handle: unique identifier dari attribute.
Type: tipe data dari attribute.
Value: value dari attribute.
Permissions: Read/write permissions untuk Value field.

Attribute profile terdapat dua roles: server dan client. Server akan menyediakan data, dan request interface untuk clients. BLE device dapat mengimplementasikan kedua role tersebut secara berasamaan, tergantung fungsionalitas dari perangkat.

Generic Attribute Profile

Generic Attribute Profile (GATT) adalah logical interface untuk clients dengen memperkenalkan Services dan Characteristics. Service memiliki satu atau lebih characteristics.

Sebagai contoh, my-light-sensor service dapat memiliki characteristics seperti berikut:

  • lux characteristic
  • location characteristic
  • battery-status characteristic

Pada BLE application, Services dan characteristics berupa attributes.

Security Manager Protocol

Security Manager Protocol (SMP) mengatur semua pairing, authentication, dan operasi key
generation.

Setelah pembahas teori singkat diatas, kita akan mulai membuat BLE application menggunakan ESP32 pada modul berikutnya.


Sharing is caring:

Leave a Comment