Tutorial Arduino / Genuino 101 – Mengontrol Lampu LED Melalui Bluetooth


Intel Genuino 101


Artikel ini adalah rangkaian dari “Tutorial Arduino / Genuino 101”:
> Mengenal Lebih Dekat Genuino 101
> Menginstal Arduino IDE
> Membuat Program Genuino Pertama
> Menyalakan Buzzer Pada EMS Basic I/O Shield
> Menampilkan Angka Pada 7-Segment
> Memanfaatkan Infrared Detector pada EMS Basic I/O Shield
> Mengontrol Lampu LED Melalui Bluetooth


Pada artikel sebelumnya, kita sudah belajar mematikan atau menyalakan LED, Buzzer, dan menampilkan 7-Segment. Nah, pada tulisan kali ini kita akan menyalakan atau mematikan LED yang terdapat pada Intel Genuino 101 menggunakan aplikasi Android atau iOS.

Melalui aplikasi Android atau iOS, kita dapat memberikan perintah kepada Intel Genuino 101 dengan menggunakan koneksi Bluetooth Low Energy (BLE). Ketika perintah yang diberikan adalah 1 maka lampu LED akan menyala, sedangkan ketika perintah 0 maka lampu LED akan mati.

Pada program ini, kita membutuhkan library CurieBLE.h yang memberikan akses penuh untuk semua parameter, fitur, dan fungsi modul BLE dari Intel Genuino 101. Dengan BLE ini memungkinkan untuk berkomunikasi dengan smartphone, tablet, dan perangkat lainnya.

Pada program sederhana kali ini, BLE digunakan untuk menyambungkan dengan aplikasi pada smartphone dan mendapatkan nilai yang digunakan untuk menyalakan LED atau mematikan LED.

Untuk mulai membuat program menyalakan LED melalui Bluetooth, silahkan buka Arduino IDE kemudian buat file baru dengan memilih menu File->New atau dapat menggunakan CTRL+N. Selanjutnya silahkan ketik kode program (sketch) di bawah ini.

#include <CurieBLE.h> //library
#define LED 13 // LED pada pin 13

BLEPeripheral blePeripheral;  // BLE Peripheral Device
BLEService ledService("19B10000-E8F2-537E-4F6C-D104768A1214"); // BLE LED Service

// BLE Switch Characteristic - 128-bit UUID, diatur sendiri.
BLEUnsignedCharCharacteristic switchCharacteristic("19B10001-E8F2-537E-4F6C-D104768A1214", BLERead | BLEWrite);

void setup() {

  // LED sebagai output
  pinMode(LED, OUTPUT);

  // atur nama BLE & UUID sesuai keinginan:
  blePeripheral.setLocalName("LEDzone");
  blePeripheral.setAdvertisedServiceUuid(ledService.uuid());

  blePeripheral.addAttribute(ledService);
  blePeripheral.addAttribute(switchCharacteristic);

  // atur nilai awal
  switchCharacteristic.setValue(0);

  
  blePeripheral.begin();
}

void loop() {
  BLECentral central = blePeripheral.central();

  // jika client terhubung
  if (central) {
    while (central.connected()) {
      if (switchCharacteristic.written()) {
        if (switchCharacteristic.value()== char(1)) {   // membaca nilai 1
          digitalWrite(LED, HIGH);         // LED menyala
        } else {                              
          digitalWrite(LED, LOW);          // LED mati
        }
      }
    }
  }
}

Pada sketch di atas, LED pada pin 13 sebagai OUTPUT sehingga LED akan menyala dan mati sesuai intruksi. Pada Universally Unique Idenfier (UUID), kita dapat mengaturnya sendiri. Seperti terlihat pada BLEService ledService(“19B10000-E8F2-537E-4F6C-D104768A1214”);, pada bagian depannya adalah 19B10000. Sedangkan untuk karakteristik, dapat kita ubah diubah menjadi 19B10001.

Jadi, ketika ingin menambah karakteristik atau misal menambah buzzer, atau 7-Segment, kita dapat mengubahnya menjadi 19B10002 (untuk buzzer), dan 19B10003 (untuk 7-Segment).

Pada fungsi void setup(), kita melakukan inisialisasi dan mengkonfigurasi peripheral BLE. Mulai dari nama perangkat Bluetooth untuk LED, dan konfigurasi  layanan UUID. Serta mengatur nilai awal untuk program LED tersebut.

Sedangkan pada fungsi void loop(), akan memeriksa koneksi dengan BLE. Sehingga jika terhubung dengan central device atau client, akan membaca nilai yang diberikan berupa 1 untuk menyalakan LED, dan 0 untuk mematikan LED.

Nah, untuk mencoba program yang sudah dibuat, kita membutuhkan aplikasi android yang dapat terkoneksi dengan Intel Genuino 101 serta mempunyai tampilan untuk memberikan nilai pada program yang sudah dibuat.

Karena pada tulisan kali ini tidak membahas pembuatan aplikasi di Android, maka untuk mencoba program yang sudah dibuat, kita akan menggunakan aplikasi nRF Master Control Panel (BLE). Silahkan unduh aplikasi nRF Master Control Panel (BLE)  untuk sistem operasi Android atau  iOS.

Untuk menjalankan kode program di atas, ikuti tahapan di bawah ini agar tidak terjadi eror:

  • Silahkan pasang modul Intel Genuino 101 pada komputer
  • Lakukan verify untuk memastikan tidak ada kode program yang salah pada Arduino IDE
  • Silahkan tekan tombol upload pada Arduino IDE
  • Setelah sukses, silahkan aktifkan Bluetooth pada smartphone dan buka aplikasi nRF Master Control Panel (BLE). Kemudian lakukan scan untuk mencari Bluetooth LEDzone (sesuai pada sketch). Silahkan klik tombol connect untuk menyambungkan. Lihat gambar di bawahtutorial arduino genuino 101
  • Pada Unknown Service, silahkan tekan maka akan muncul Unknown Characteristic dan pilih anak panah ke atas. Anak panah ke atas untuk write (memberikan perintah), dan anak panah ke bawah untuk read (menampilkan).tutorial arduino genuino 101
  • Pada Write Value isi dengan angka 1 dengan pilih tipe data UINT8, kemudian pilih send.tutorial arduino genuino 101
  • Maka LED yang terdapat pada Intel Genuino 101 akan menyala, untuk mematikannya silahkan masukkan angka 0 atau selain dari angka 1.
    Intel Genuino 101

Nah, cukup mudah kan membuat program untuk mengontrol LED melalui Bluetooth menggunakan Android? Para pembaca dapat lebih mengeksplor terkait pemahaman koneksi menggunakan BLE.

* Artikel ini adalah rangkaian dari “Tutorial Arduino / Genuino 101