Arduino UNO Kullanılarak İki Adet Bluetooth Modülünü Haberleştirmek

Bluetooth mekan içerisinde haberleşme için geliştirilmiş 2.4 ile 2.48Ghz aralığını kullanan haberleşme modülüdür. Ortalama bluetooth modülleri arasındaki haberleşmeleri için gerekli olan mesafe aralığı en fazla 15 metredir. Arduino uygulamalarında HC-05 ile HC-06 bluetooth modülleri tercih edilmektedir.

HC-05 ve HC-06 modülleri fiziksel olarak birbirine benzemektedir. Farkları ise HC-06 da 4 pin, HC-05 de 6 pin ve genellikle bir buton bulunur. Özellik olarak da HC-05 hem bağlantı sağlayıp hem de bilgi alışverişi yapabilmektedir. Ancak HC-06 sadece gelen istekleri kabul edebilir.

Bu uygulamamızda HC-05 kullanılacaktır. Eğer HC-06 ve HC-05 aynı anda kullanılsaydı HC-05 Master HC-06 Slave olarak kullanılır.

Kullanılacak malzemelerimiz aşağıda verilmiştir.

  • 2 Adet Breadboard

  • 2 Adet Arduino UNO

  • 2 Adet HC-05

  • Jumper Kablolar

Devre şeması aşağıdaki gibidir.


Bağlantıları sağladıktan sonra modüllerin birini Master diğerini de Slave olarak atamamız gerekmektedir. Bu atama işlemi AT komutları ile yapılacaktır. Bundan dolayı modüllerin AT komutlarını kabul ediyor olması gerekmektedir. Arduino UNO'yu bilgisayara bağlamadan önce HC-05 'in üzerindeki butona basılı tutmalıyız. Basılı tutarken Arduino UNO'yu bilgisayara takıyoruz. Uzun aralıklarla ışığın yanıp sönmesi ile HC-05 AT komutlarını alabilmiştir. Kod aşamasına geçebiliriz artık.

Bluetooth için kütüphane ekleyip RX ve TX pinlerini tanımlıyoruz.

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX

void setup() içerisinde port ekranının baud hızını yazıp AT komutlarını yazabilmemiz için bir sıra bekliyoruz. HC-05 38400 baud ile çalışmaktadır. Bluetooth modülünü de 38400 ile çalıştırıyoruz.

 void setup() {
  Serial.begin(9600);
  Serial.println("AT komutları:");
  bluetooth.begin(38400);
}

void loop() içerisinde 2 adet if kullanılmaktadır. İlk if de bluetoothdan gelen verilerin okunarak port ekranına yazılmasını tanımlıyoruz. İkinci if de port ekranında gönderilen verilerin okuyarak bluetootha yazılması gerçekleştirilir.

void loop()
{
  if (bluetooth.available())
    Serial.write(bluetooth.read());
  if (Serial.available())
    bluetooth.write(Serial.read());
} 

Master için kullanılması gereken AT komutları aşağıdaki gibidir.

AT => OK

AT+ROLE = 1 => OK

AT+NAME = MASTER => OK

Slave için kullanılması gereken AT komutları aşağıdaki gibidir.

AT => OK

AT+ROLE = 0 => OK

AT+NAME = SLAVE => OK

İki modüle de yüklenmesi gereken kod aşağıdaki gibi verilmiştir.

#include <SoftwareSerial.h>
SoftwareSerial bluetooth(10, 11); // RX, TX
 
void setup() {
  Serial.begin(9600);
  Serial.println("Enter AT commands:");
  bluetooth.begin(38400);
}
 
void loop()
{
  if (bluetooth.available())
    Serial.write(bluetooth.read());
  if (Serial.available())
    bluetooth.write(Serial.read());
}
 	

Son Paylaşımlar