Bu uygulamada Bluetooth modülü yardımıyla Arduino'ya bağlı LED'leri akıllı telefon üzerinden kontrol edeceğiz. Projede yazılan Arduino kodu biraz değiştirilerek akıllı ev projeleri yapılabilir. Kurulan devre sadece akıllı telefonlar ile değil, Bluetooth bağlantısına sahip tüm cihazlar üzerinden kontrol edilebilir. Projede telefon kontrolünün seçilmesinin nedeni projenin taşınabilirliğini sağlamaktır.
Projede Bluetooth modülü slave (köle) modunda çalışacağından, HC-05 veya HC-06 modülleri kullanılabilir. Bluetooth modülünün haberleşme pinleri (Rx ve Tx) voltaj bölücü yardımıyla Arduino'ya bağlanmıştır. Bunun nedeni daha önce de öğrendiğimiz gibi, 3,3 volt üzerindeki gerilimlerin Bluetooth modülüne zarar verebilmesindendir.
Bu uygulamayı yapmak için ihtiyacımız olan malzemeler;
- 1 x Breadboard
- 1 x Arduino
- 1 x Bluetooth modülü (HC-05 veya HC-06)
- 7 x Direnç (3 adet 220 ohm, 2 adet 1K ohm, 2 adet 2,2K ohm)
- 3 x LED
- Bluetooth bağlantısına sahip akıllı cihaz
Proje için aşağıdaki devreyi kurunuz:
Yukarıdaki resimde direnç değerleri belli olmadığı için aşağıda Bluetooth modülü ve Arduino arasına kurulacak voltaj bölücü devresi gösterilmiştir.
Not: Eğer belirtilen direçler elinizde yok ise, elektroniğe giriş konusunda öğrenmiş olduğumuz voltaj bölücü hesaplama yöntemi ile farklı direnç değerleri kullanabilirsiniz.
Arduino UNO'nun sadece bir tane haberleşme portu bulunduğu için Bluetooth modülü Arduino'nun 10 ve 11. pinlerine bağlanmıştır. Bu pinlerin seri port olarak kullanılabilmesi için 'Software Serial' kütüphanesi kullanılmıştır. Bu kütüphanenin kullanımını daha önceki konularda öğrenmiştik.
Not: Bluetooth modülleri Arduino'nun donanımsal seri portuna da bağlanabilirdi. Fakat o zaman 'Serial Mönitör' üzerinden bilgisayara veri gönderilemezdi ve her programlama yapılacağı zaman bu pinlerin çıkarılması gerekirdi.
Kontrol edeceğimiz pinleri ve diğer devre bağlantılarını da yaptıktan sonra Arduino programını yazmaya başlayabiliriz. Arduino programı Bluetooth modülü için açılmış sanal seri portları dinlemektedir. Eğer burada yeni bir veri var ise bu veriyi okuyarak işleme almaktadır. Gelen verinin değerine göre LED ışıkları kontrol edilmektedir. Unutulmamalıdır ki, Bluetooth modülü üzerinden gelecek veriler karakter formatındadır. Ayrıca her 'read' fonksiyonu kullanıldığında Arduino tarafından bir karakter okunmaktadır.
#include <SoftwareSerial.h>
SoftwareSerial bluetoothModulu(10, 11);
/* Arduino -> Bluetooth modulu
10 (Rx) -> Tx
11 (Tx) -> Rx
*/
const int LED1 = 2;
const int LED2 = 3;
const int LED3 = 4;
void setup()
{
bluetoothModulu.begin(9600); /* Bluetooth haberleşmesi */
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
}
char okunanKarakter; /* okunan verilerin kaydedileceği değişken */
void loop()
{
while(bluetoothModulu.available()>0){ /* Yeni veri var mı */
okunanKarakter = bluetoothModulu.read(); /* Yeni veriyi okunanKarakter degiskenine kaydet */
switch(okunanKarakter){ /* Okunan karaktere göre işlem yap */
case 'a': /* gelen karakterin işlem karşılığı */
digitalWrite(LED1, HIGH);
bluetoothModulu.println("LED 1 yakildi");
break;
case 'b':
digitalWrite(LED1, LOW);
bluetoothModulu.println("LED 1 sonduruldu");
break;
case 'c':
digitalWrite(LED2, HIGH);
bluetoothModulu.println("LED 2 yakildi");
break;
case 'd':
digitalWrite(LED2, LOW);
bluetoothModulu.println("LED 2 sonduruldu");
break;
case 'e':
digitalWrite(LED3, HIGH);
bluetoothModulu.println("LED 3 yakildi");
break;
case 'f':
digitalWrite(LED3, LOW);
bluetoothModulu.println("LED 3 sonduruldu");
break;
} /* Switch sonu */
}/* While sonu*/
}/* Loop sonu */
Bu bölümde Bluetooth modülünün Arduino ile nasıl kullanıldığını öğrendik. Artık Arduino projelerimizi Bluetooth özelliği bulunan cihazlar ile kontrol edebiliriz. Bluetooth kullanımının pekişmesi için sizde yukarıdaki kod üzerinde değişiklikler yaparak kendi projenizi gerçekleştirebilirsiniz.
İlerleyen bölümlerimizde DC motor kontrolünü öğrendikten sonra, Bluetooth ile kontrol edilen araba yapacağız.