Tutorial Arduino / Genuino 101 – Mengontrol 7-Segment Menggunakan Android Melalui Bluetooth


Intel Genuino 101

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

Pada artikel sebelumnya, kita sudah membuat contoh program menyalakan buzzer yang terdapat pada shield EMS Basic I/O menggunakan Intel Genuino 101 dan aplikasi Android melalui Bluetooth. Nah, pada artikel ini kita akan membuat program yang dapat mengontrol 7-Segment misalnya jika ditulis angka 18 maka 7-Segment akan menampilkan angka tersebut.

Silahkan baca artikel sebelumnya untuk mengetahui fitur apa saja yang dimiliki EMS Basic I/O Shield. 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 mengontrol 7-Segment, 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.

Arduino - Genuino 101

Pada kode program (sketch) untuk mengontrol 7-Segment 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>


BLEPeripheral blePeripheral;  // BLE Peripheral Device (the board you're programming)
BasicIOShield shield;

BLEService sevenSegmentService("19B10000-E8F2-537E-4F6C-D104768A1214"); // BLE Buzzer Service

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

byte sevenSegmentValue;

void setup() {

  // atur nama BLE & service UUID:
  blePeripheral.setLocalName("7SegmentZone");
  blePeripheral.setAdvertisedServiceUuid(sevenSegmentService.uuid());

  // tambahkan service dan characteristic:
  blePeripheral.addAttribute(sevenSegmentService);
  blePeripheral.addAttribute(sevenSegmentCharacteristic);

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

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

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

  if (central) {
    // client terhubung dengan peripheral
    while (central.connected()) {
      if (sevenSegmentCharacteristic.written()) {
        sevenSegmentValue = sevenSegmentCharacteristic.value();
      }
      shield.PrintSevenSegment(sevenSegmentValue);
    }
  }
}

Seperti terlihat pada BLEService sevenSegmentService (“19B10000-E8F2-537E-4F6C-D104768A1214”);, pada bagian depannya adalah 19B10000 . Sedangkan untuk sevenSegmentCharacteristic, dapat kita ubah diubah menjadi 19B10001.

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

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

Sedangkan pada fungsi void loop(), akan memeriksa koneksi dengan BLE. Sehingga jika terhubung dengan central device atau client, akan membaca nilai yang diberikan dengan tipe data byte untuk ditampilkan di 7-Segment. Nilai yang diberikan merupakan hexadecimal. Tapi, bisa juga memberikan nilai dengan tipe UINT 8.

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 upload, modul shield 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 7SegmentZone (sesuai pada sketch). Silahkan klik tombol connect untuk menyambungkan. Lihat gambar di bawah.

BLE 7-Segment test3

  • 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 7-Segment test2

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

BLE 7-Segment test

  • Maka 7-Segment yang terdapat pada shield EMS Basic I/O akan menampilkan angka 21.

BLE 7-Segment

Nah, cukup mudah kan membuat program untuk mengontrol 7-Segment melalui Bluetooth menggunakan Android? Para pembaca dapat lebih mengeksplor fitur apa saja yang dapat di akses melalui Bluetooth menggunakan Android pada Intel Genuino 101 dan EMS Basic I/O Shield.

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