Tutorial Arduino / Genuino 101 – Menyalakan Buzzer Menggunakan Android 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
> Menyalakan Buzzer Menggunakan Android Melalui Bluetooth


Pada artikel sebelumnya, kita sudah membuat contoh program menyalakan lampu LED pada Intel Genuino 101 menggunakan Android melalui Bluetooth. Nah, pada artikel ini kita akan membuat program untuk menyalakan buzzer melalui Bluetooth menggunakan Android. Karena menyalakan buzzer, jadi kita akan menggunakan tambahan shield yaitu EMS Basic I/O Shield.

EMS Basic I/O Shield adalah modul add-on/shield yang dapat diterapkan pada Intel Genuino 101. Fitur-fitur dari shield ini di antaranya adalah 2 tactile switch, 2 digit seven segment, 4 LED (hijau, kuning, biru dan merah), buzzer sebagai indikator bunyi dan lain-lain (selengkapnya bisa cek di sini).

Sedangkan, untuk mengetahui dan memahami fungsi serta letak dari masing-masing pin yang terdapat pada shield EMS Basic I/O silahkan kunjungi laman ini.

Sebelum memulai membuat program untuk menyalakan buzzer, terlebih dahulu unduh library EMS Basic I/O di sini. Setelah itu, silahkan ekstrak dan salin library tersebut pada direktori C:\Users\[namaUser]\Documents\Arduino\libraries. Lihat gambar di bawah ini

direktori libraries

Pada kode program (sketch) untuk menyalakan buzzer ini kita akan menambahkan library baru, yaitu BasicIOShield.h. Ini akan memberikan akses penuh untuk semua parameter, fitur, dan fungsi shield EMS Basic I/O.

Untuk mulai membuat sketch, silahkan buka Arduino IDE kemudian buat file baru dengan cara pilih menu File->New. Setelah itu, silahkan ketik kode program seperti di bawah ini.

#include <CurieBLE.h>
#include <BasicIOShield.h>
#define BUZZER 3

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

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

void setup() {
  
  // atur buzzer sebagai output
  pinMode(BUZZER, OUTPUT);

  // atur nama BLE & service UUID:
  blePeripheral.setLocalName("BuzzerZone");
  blePeripheral.setAdvertisedServiceUuid(buzzerService.uuid());

  // tambahkan service dan characteristic:
  blePeripheral.addAttribute(buzzerService);
  blePeripheral.addAttribute(switchCharacteristic);

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

  // mulai BLE service
  blePeripheral.begin();
}

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

  if (central) {
    // client terhubung dengan peripheral
    while (central.connected()) {
      if (switchCharacteristic.written()) {
        if (switchCharacteristic.value()== char(1)) {   // baca nilai 1
          digitalWrite(BUZZER, HIGH);         // buzzer on
        } else {                              // 
          digitalWrite(BUZZER, LOW);          // buzzer off
        }
      }
    }
  }
}

Pada sketch di atas pin 3 adalah buzzer sebagai OUTPUT, sehingga buzzer akan berbunyi dan mati sesuai intruksi yang diberikan melalui aplikasi Android. Pada Universally Unique Idenfier (UUID), kita dapat mengaturnya sendiri.

Seperti terlihat pada BLEService buzzerService(“19B10000-E8F2-537E-4F6C-D104768A1214”);, pada bagian depannya (8 angka paling depan) adalah 19B10000 . Sedangkan untuk BLEUnsignedCharCharacteristic, dapat kita ubah diubah menjadi 19B10001.

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

Pada fungsi void setup(), kita melakukan inisialisasi dan mengkonfigurasi peripheral BLE. Mulai dari nama perangkat bluetooth untuk buzzer, dan konfigurasi  layanan UUID. Serta mengatur nilai awal untuk program buzzer  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 buzzer, dan 0 untuk mematikan buzzer.

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 sketch 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.

Di bawah ini adalah tahapan untuk melakukan upload dan pengetesan sketch yang sudah dibuat pada modul Intel Genuino 101 dengan shield EMS Basic I/O

  • Ketika melakukan uploadshield jangan terpasang pada modul Genuino 101
  • Setelah proses upload sukses, cabut modul Genuino 101 dari komputer
  • Setelah dicabut, pasang shield EMS Basic I/O pada Genuino 101 dengan cara ditumpukkan sesuai pin (kondisi masih belum terpasang ke komputer).
  • Jika modul shield sudah terpasang pada Genuino 101, silahkan sambungkan kembali ke komputer.
  • Setelah sukses, silahkan aktifkan Bluetooth pada smartphone dan buka aplikasi nRF Master Control Panel (BLE). Kemudian lakukan scan untuk mencari Bluetooth BuzzerZone (sesuai pada sketch). Silahkan klik tombol connect untuk menyambungkan. Lihat gambar di bawah.

BLE Buzzer1

  • 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).

BLE Buzzer3

  • Pada Write Value isi dengan angka 1 dengan pilih tipe data UINT8, kemudian pilih send.

BLE Buzzer4

  • Maka buzzer yang terdapat pada shield EMS Basic I/O akan berbunyi, untuk mematikannya silahkan masukkan angka 0 atau selain dari angka 1.

Nah, cukup mudah kan membuat program untuk mengontrol buzzer melalui Bluetooth menggunakan Android? Para pembaca dapat lebih mengeksplor fitur apa saja yang dapat di akses melalui Bluetooth menggunakan Android. Selamat mencoba!

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