Arduino ile Bluetooth Modülü (HC-06)

watch_later 1/18/2016
HC-05, HC-06 modülleri UART’dan gönderilen dataları bluetooth üzerinden yayabilir. Bu modülün HC-03, HC-04, HC-05, HC-06 gibi modelleri bulunmaktadır. Bu modüller master veya slave olarak çalışırlar. HC-05 modeli hem master, hemde slave olarak çalışabilmektedir. HC-06 modülü ise sadece slave olarak çalışan bir modüldür. Bluetooth haberleşmede master ve slave bağlantıyı başlatabilme durumuna göre belirlenir. Bir master modül, bağlantıyı başlatabilir. Ama slave modül bağlantıyı başlatamaz. Slave olarak çalışan modülün bağlantısını Android telefonla sağlayacağımız için bağlantıyı Android telefon başlatacaktır. Ayrıca çift yönlü olarak datayı gönderip alabiliyoruz.



HC-06 Modül Diyagramı

Çalışma mantığı ise seri haberleşme esasına dayanır. Tx ucu verici ucudur, Rx ise alıcı ucudur. 3.3V ve 5V arasındaki gerilimlerde çalışabilir. Verici ucundan gönderilen veriyi mikrodenetleyici algılar ama mikrodetleyicinin çıkış voltajı 5V olduğu için bluetooth modülümüze zarar verir. Bu yüzden mikrodenetleyici çıkış ucuna gerilim bölücü uygulayıp istenilen gerilime indirmeliyiz.

Bluetooth modüller içerisinde adı HC-06, bluetooth şifresi 0000 veya 1234 ve baud hızı 9600 olarak ayarlanmıştır. Alıcı ve verici baud hızı aynı olmalıdır. Adını, şifresini ve baud hızını AT komutlarıyla değiştirebiliriz.

Modülün üzerindeki led 2 saniye aralıklarla yanıp sönüyorsa modül AT komutlarına hazır demektir.

AT Komutları:
AT+NAME : Default ismi gösterir
AT+ADDR : Default adresi gösterir
AT+VERSION : Versiyonu Gösterir
AT+UART : Ayarlanmış olan Baud Rate’ yi gösterir
AT+ROLE: Master yada Slave olma durumunu gösterir(1=master/0=slave)
AT+RESET : Ayarları resetler ve AT moddan çıkar
AT+ORGL : Fabrika ayarlarına geri döner
AT+PSWD: Default parolayı gösterir
                          
AT Komutlarını kullanılabilmek için Tera Term programını kullanabilirsiniz.

Uygulamada kullanılacak Android application(Arduino Bluetooth):

Arduino Bluetooth Kullanım Sayfaları
Telefonumuz ile birçok şeyi bluetooth üzerinden kontrol edebiliriz. Evimizdeki ışıkları, kapıları veya yaptığımız devreleri kontrol edebiliriz. Bu uygulamada bluetooth ile bağlanılan application ile veri alarak 13 numaralı pinin durumunu değiştirecek uygulama(‘?’ karakterini alırsa led yanıp sönecek):

Arduino Sketch:                             
#include 

int bluetoothTx = 2; // TX-O pin Arduino 2 pinine
int bluetoothRx = 3; // RX-I pin Arduino 3 pinine
int led = 13;

int data; //gönderilen ve okunan veri
boolean state = false; //led durumu

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

void setup()
{
  Serial.begin(9600);
  delay(100); //100 ms bekle bluetooth bağlantısı için
  bluetooth.begin(9600); //bluetooth 9600bps olarak başlat
  pinMode(led, OUTPUT);
}

void loop()
{
  if (bluetooth.available()) // bluetooth ile bir karakter gönderilirse
  {
    data = bluetooth.read(); // bluetooth dan okunan veri

    if (data == '1') { //1'se yak
      Serial.println("LED ON");
      digitalWrite(led, HIGH);
      bluetooth.print("1");
    }
    if (data == '0') { //0'sa söndür
      Serial.println("LED OFF");
      digitalWrite(led, LOW);
      bluetooth.print("0");
    }
    if (data == '?') { //?'se yak/söndür
      Serial.println("otomatik moda alindi.");
      state = true;
    } else {
      state = false;
    }
  }

  if (Serial.available())
  {
    //Serial Monitorden alınan karakteri bluetootha yaz.
    bluetooth.print((char)Serial.read());
  }
  if (state) {
    digitalWrite(led, HIGH);
    bluetooth.print("1");
    Serial.println("HIGH");
    delay(500);
    digitalWrite(led, LOW);
    bluetooth.print("0");
    Serial.println("LOW");
    delay(500);
  }
}
HC-06 Fritzing Şeması





Bir sonraki yazımda görüşmek üzere…



sentiment_satisfied Emoticon