"Bacalah dengan (menyebut) nama Tuhanmu yang menciptakan. Dia telah menciptakan manusia dari segumpal darah. Bacalah, dan TuhanMulah yang Maha Mulia. Yang mengajar (manusia) dengan pena. Dia mengajarkan manusia apa yang tidak diketahuinya." - Surah Al-Alaq (1-5)

08/12/2016

Tutorial 12 - Arduino & Bluetooth



Dah lama rasanya saya tak menulis dalam blog ni. Bukan sombong atau apa - apa yang sewaktu dengannya. Ini semua disebabkan tempahan projek dari pelajar Kolej Vokasional (KV) dan politeknik yang tak putus - putus. Sampai tak tido malam saya dibuatnya. Apa - apa pun, jutaan terima kasih saya ucapkan pada semua pelanggan kerana memberi kepercayaan kepada syarikat kecil kami, NAA Electronics untuk menyiapkan projek akhir anda. Diharap anda semua berpuas hati dengan servis yang telah kami beri.

TERIMA KASIH PELANGGAN!!
Ok. Back to business. Untuk tutorial kali ini, saya akan menunjukkan kaedah dan juga cara yang mudah untuk mengawal output (ON & OFF) menggunakan teknologi tanpa wayar, Bluetooth.

Apa itu Bluetooth?

Bluetooth adalah teknologi memindahkan data (fail, suara, nombor dll) dari satu device ke satu device yang lain tanpa menggunakan wayar (wireless). Bluetooth ini sesuai digunakan untuk perhubungan jarak dekat ( kurang 10 meter ) dan yang paling penting, sistem keselamatan untuk perhubungan jenis bluetooth adalah secured kerana memerlukan persetujuan antara 2 pihak untuk memulakan proses pemindahan data ( pairing concept )

HC-06 Bluetooth Module 

HC-06 Bluetooth Module
Module ini mempunyai 4 pin yang mana keempat - empat ini akan disambungkan secara terus pada Arduino anda. Saya akan tunjukkan cara untuk sambungan ini nanti. Oh ya, untuk pengetahuan anda semua, harga module ini dalam lingkungan RM30 - RM40 per unit. So, hati - hati ya.. Jangan sampai kena game..

Contoh Projek

Untuk tutorial kali ini, saya akan mengawal 3 biji LED dengan menggunakan apps yang saya muat turun dari Google Playstore. 3 LED ini akan dikawal digital (ON/OFF) secara berasingan dan juga secara serentak. Bagi memastikan agar anda semua dapat follow contoh ini dengan mudah, disarankan agar anda memuat turun apps yang sama seperti yang saya guna. Jadi, muat turun la apps di sini.

Komponen - komponen yang digunakan

  1. Arduino
  2. Kabel USB
  3. HC-06 Bluetooth Module
  4. 3 x LED
  5. 3 x Perintang 220 Ohm
  6. Breadboard
  7. Jumper wire secukupnya
Baiklah. Bagi memudahkan anda, saya akan pecahkan projek ini pada 2 bahagian. Bahagian pertama adalah untuk membaca data yang dihantar oleh apps kepada Arduino kita. Jom!

Bahagian 1: Membaca Data Apps Menggunakan "Serial Monitor"

Sambungan:

Arduino               HC-06

  VCC   --------        5V
  GND  --------       GND
   10      --------        TX
   11      --------        RX

Sambungan Arduino dengan HC-06

Aturcara:


#include <SoftwareSerial.h>
#include <Wire.h>
SoftwareSerial BT(10, 11);
char a; 

void setup() 
{
  BT.begin(9600);
  Serial.begin(9600);
}

void loop() 
{
  if (BT.available())
     {
       a = (BT.read());
             Serial.println(a);
     }
}

Selepas anda memuat naik coding di atas ke Arduino anda, sila ikuti langkah - langkah berikut:

  1. Buka Setting pada telefon pintar anda, dan ON kan Bluetooth
  2. Scan nearby bluetooth signal
  3. Sekiranya ada device bernama HC-06, pilih device itu untuk pairing
  4. Password untuk pairing adalah "1234"
  5. Pastikan pada bawah perkataan HC-06, ada tertulis dengan tulisan kecil, "Paired" yang membuktikan connection was establish. 


Sekarang kita tumpu pada Apps pula. Sila ikuti langkah - langkah seperti dibawah:
  1. Pastikan apps anda sama seperti dibawah. Sekiranya sama, tekan butang "Connect" untuk memulakan komunikasi antara apps dengan module
  2. Pilih device yang bernama HC-06
  3. Sekiranya proses pairing berjaya, anda dapat perhatikan yang lampu biru pada module HC-06 akan berhenti berkelip dan berada dalam keadaan statik. Tahniah!
  4. Sekarang, buka Serial Monitor pada software Arduino dan setkan 'No line ending' dan baudrate = 9600
  5. Bila dah buat tetapan seperti di atas, sila tekan keypad pada apps anda. Mulai tekan keypad pada Device 1, kemudian OFF semula dan teruskan dengan Device 2, OFF semula dan seterusnya.
  6. Perhatikan pada Serial Monitor anda. Ada keluar apa - apa tak?
  7. Kalau ada, tahniah sekali lagi.
  8. Kalau tak keluar apa - apa, takziah. Sila check balik. Haha.
Saya buat kesimpulan apa yang akan anda dapat pada Serial Monitor.

Device 1: ON = A, OFF = a
Device 2: ON = B, OFF = b
Device 3: ON = C, OFF = c
Device 4: ON = D, OFF = d
Device 5: ON = E, OFF = e

Betul tak? Hehe.. Power kan saya.. Sekarang, catat apa yang anda dapat dari Serial Monitor kerana data ini adalah bahagian terpenting dalam coding kita nanti.

Tekan butang Connect

Pilih device HC-06


Buka Serial Monitor pada Arduino IDE



Buat tetapan "No line ending" dan "9600"

Data yang terhasil apabila keypad pada apps ditekan
So, bahagian 1 dah tamat.

Sekarang kita bergerak ke bahagian ke-2 iaitu menambah LED dan membuat aturcara penuh.

Bahagian 2: Mengawal LED Menggunakan HC-06

Rujuk gambarajah dibawah untuk sambungan penuh.
Sambungan penuh litar
Apa yang nak saya pada LED saya adalah seperti berikut:

Device 1 akan mengawal LED 1
Device 2 akan mengawal LED 2
Device 3 akan mengawal LED 3
Device 4 akan mengawal LED 1, 2 & 3 (serentak)

Aturcara:

#include <SoftwareSerial.h>
#include <Wire.h>
SoftwareSerial BT(10, 11);
char a;
int LED1 = 4;
int LED2 = 5;
int LED3 = 6;

void setup() 
{
  BT.begin(9600);
  Serial.begin(9600);
  pinMode (LED1, OUTPUT);
  pinMode (LED2, OUTPUT);
  pinMode (LED3, OUTPUT);
}

void loop() 
{
  if (BT.available())
     {
       
       a = (BT.read());
            Serial.println(a);

       if ( a == 'A' )
       {
        digitalWrite (LED1, HIGH);
       }

       if ( a == 'a' )
       {
        digitalWrite (LED1, LOW);
       }

       if ( a == 'B' )
       {
        digitalWrite (LED2, HIGH);
       }
       
       if ( a == 'b' )
       {
        digitalWrite (LED2, LOW);
       }
       
       if ( a == 'C' )
       {
        digitalWrite (LED3, HIGH);
       }
       
       if ( a == 'c' )
       {
        digitalWrite (LED3, LOW);
       }

       if ( a == 'D' )
       {
        digitalWrite (LED1, HIGH);
        digitalWrite (LED2, HIGH);
        digitalWrite (LED3, HIGH);
       }
       
       if ( a == 'd' )
       {
        digitalWrite (LED1, LOW);
        digitalWrite (LED2, LOW);
        digitalWrite (LED3, LOW);
       }
     }
}

SELAMAT MENCUBA...!