BLUETOOTH İsim ve Şifre Değiştirme

BLUETOOTH İsim ve Şifre Değiştirme

Arduino ile Bluetooth haberleşmesi robot projelerinde , otomasyon projelerinde ve daha çok yakın mesafe de kontrol yapılacak uygulamalarda kullanılır.Genellikle HC-05 ve HC-06 kullanılır.Her iki bluetooth da aynı görevi görse de aralarındaki fark; HC-05 hem master hem slave olarak kullanılabilirken HC-06 yanlızca slave modda kullanılabilir. Yani HC-05 kullanırsanız isterseniz siz cihaza bağlanırsınız istersenizde HC-05 direk olarak sizin cihazınıza bağlanır yani bağlantı otomatik kurulabillir. HC-06 da ise yanlızca siz bağlanabilirsiniz.

HC05 ve HC06 modüllerini bilgisayarınız ile konfigüre etmek için şu şekilde bağlamalısınız:

Modül -> USB-Seri kartı

  • VCC -> 3.3V veya 5V
  • GND -> GND
  • TXD -> RXD
  • RXD -> TXD

ÖNEMLİ NOT1= Bluetooth cihazınızın VCC pinini Arduino kartınızın 3.3V pinine bağlamanız gerekmektedir.Eğer 5V pinine bağlarsanız bluetooth cihazınız zarar görebilir.

Eğer HC05 modülü kullanıyorsanız, modüle güç verdiğiniz esnada kartın üzerindeki butona basılı tutun. Kartınızda buton yoksa, “KEY” pinini VCC’ye bağlayabilirsiniz.

#include <SoftwareSerial.h>  // Software Serial kütüphanesini ekledik.
SoftwareSerial hc06(10, 11);  // Bluetooth TX, RX pinler

void setup() {
  Serial.begin(9600);    // Bilgisayar haberleşmesi başlat
  hc06.begin(9600);      // Bluetooth haberleşmesi başlat
}

void loop() {
  if (hc06.available())   // Bluetooth bağlantısı va mı?
  {
    Serial.write(hc06.read());   // Bluetooth gelen veriyi oku, Serial ekrana yaz.
  }
  if (Serial.available())        // Bilgisayar bağlantısı var mı?
  {
    hc06.write(Serial.read());    //Bilgisayardan gelen mesajı oku, bluetooth a yaz.
  }
}

Yukarıdaki yazdığımız kodlar ile bilgisayarımızın bluetooth modülümüzle iletişim kurmasını sağladık. Burada önemli olan kısım “Software Serial” kütüphanesini kullanmış olmamız. Bu kütüphane bizim arduino üzerinde tanımlı TX,RX pinleri yerine farklı kendi belirleyeceğimiz TX, RX pinleri kullanabilmenizi sağlıyor. Eğer biz arduino ile tanımlı gelen TX, RX pinlerini kullansaydık kodlarımızı yüklerken Arduino İde programımız hata verecekti. Çünkü Arduinomuzu USB portu ile bilgisayara bağladığımızda USB portu da aynı pinleri kullanıyor ve çakışma oluyor. Kod yüklerken 0 ve 1. pinlerin boş olması gerekmektedir. Her seferinde bluetooth modülünün giriş çıkış pinlerini çıkarmaktansa software serial ile pinleri değiştiriyoruz.

HC06 Bluetooth modülünün AT komut yönergesi:

Arduino IDE’yi açın ve doğru COM portunu seçin. HC06 modülünüzü yukarıda anlattığım şekilde bağlayın. Bu aşamada Arduino IDE üzerinden seri port ekranını açarak aşağıdaki şekilde ayarlayabiliriz:

serial_monitor_2

Burada dikkat etmeniz gereken nokta, kartınızın baud rate’ini değiştirdiğiniz takdirde AT komutları yollamak için seçmiş olduğunuz baud rate’i kullanmanız gerektiğidir. Kartın varsayılan baud rate’i 9600’dür.

Bağlantıyı denemek için modüle AT komutu gönderebilirsiniz. Eğer seri port ekranında OK cevabını görüyorsanız, bağlantınız düzgün çalışıyor demektir.

Kartın varsayılan ayarları şu şekildedir:

  • İsim: HC-06
  • Şifre: 1234
  • Baud rate: 9600

Modülün ismini değiştirmek için AT+NAMEkartismi

Şifresini değiştirmek için AT+PIN1234

Baud rate’ini değiştirmek için AT+BAUD4 (1:1200, 2:2400, 3:4800, 4:9600, 5:19200, 6:38400, 7:57600, 8:115200, A:460800, B:921600, C:1382400 baud’a karşılık gelmektedir)

HC05 Bluetooth modülünün AT komut yönergesi:

Arduino IDE’yi açın ve doğru COM portunu seçin. HC05 modülünüzü yukarıda anlattığım şekilde bağlayın ve bağlarken kart üzerindeki buton veya pin ile AT konfigürasyon moduna geçtiğinizden emin olun. Kart üzerindeki LED’in uzun süreli yanıp sönüyor ise AT moduna başarılı bir şekilde geçmiş demektir. Bu aşamada Arduino IDE üzerinden seri port ekranını açarak aşağıdaki şekilde ayarlayabiliriz:

serial_monitor_1

Bağlantıyı denemek için modüle AT komutu gönderebilirsiniz. Eğer seri port ekranında OK cevabını görüyorsanız, bağlantınız düzgün çalışıyor demektir.

Kartın varsayılan ayarları şu şekildedir:

  • İsim: HC-05
  • Şifre: 1234
  • Baud rate: 9600

Modülün ismini değiştirmek için AT+NAME=kartismi

Şifresini değiştirmek için AT+PSWD=1234

Baud rate’ini değiştirmek için AT+UART=115200,0,0

Varsayılan ayarlara dönmek için AT+ORGL komutlarını kullanabilirsiniz.

HC05 modülü, HC06’nın aksine master modunda da çalışabilmektedir. Böylelikle bir HC05 modülünü master olarak ayarlayabilir ve slave modda çalışan bir başka HC05 modülüne veya HC06 modüller ile haberleşme yaptırabilirsiniz.

HC05 varsayılan olarak slave modda çalışacak şekilde ayarlıdır. AT+ROLE=1 komutu vererek HC05 modülümüzü master moda geçirebiliriz. Bu durumda eğer herhangi bir MAC adresi belirtilmezse, HC05 modülümüz ortamda bulduğu ilk slave moddaki HC05 modülü veya HC06 modülü ile haberleşmeye geçecektir. Eğer bağlantının yanlızca sahip başka bir cihaz ile kurulmasını istiyorsak öncelikle bu cihazın MAC adresini öğrenmemiz gereklidir. MAC adresini öğrenmemiz için slave modda çalışan cihazı bir kere bilgisayarımız ile eşleştirmemiz yeterlidir. Daha sonra Aygıt Yöneticisi‘ni çalıştırarak Bluetooth altındaki cihazlardan cihazımızı bulup, sağ tıklayarak Özellikler penceresinden cihazın MAC adresini öğrenebiliriz.

bt_mac

Bu adresi master modülümüze AT+BIND=98d3,31,b3739f komutu ile kaydediyoruz. Daha sonra HC05’imizin yanlızca bu cihaza bağlanmasını sağlamak için AT+CMODE=0 komutu veriyoruz. Bundan sonra HC05 modülümüz çalıştıktan sonra yanlızca verdiğimiz MAC adresine sahip cihaz ile iletişime geçecektir. Bu modda iken master HC05 cihazın üzerindeki LED, her 1 saniyede 2 kez yanıp sönecektir.

İsterseniz AT kodunu arduino kodlarımızın içerisine yazabilirsiniz, Örnek kodlar aşağıdadır.

#include <SoftwareSerial.h>
SoftwareSerial btSerial(10, 11); // TX, RX
String isim = "deneme";
int sifre = 1122;
String uart = "9600,0,0";
 
void setup() {
Serial.begin(9600);
Serial.println("HC-05 Modul Ayarlaniyor...");
Serial.println("Lutfen 5 sn icinde HC-05 modulun uzerindeki butona basili tutarak baglanti yapiniz.");
btSerial.begin(9600);
delay(5000);
btSerial.print("AT+NAME");
btSerial.println(isim);
Serial.print("Isim ayarlandi: ");
Serial.println(isim);
delay(1000);
btSerial.print("AT+PIN");
btSerial.println(sifre);
Serial.print("Sifre ayarlandi: ");
 
Serial.println(sifre);
delay(1000);
btSerial.print("AT+UART=");
btSerial.println(uart);
Serial.print("Baud rate ayarlandi: ");
Serial.println(uart);
delay(2000);
Serial.println("Islem tamamlandi.");
}
void loop()
{
  if (btSerial.available())   // Bluetooth bağlantısı va mı?
  {
    Serial.write(btSerial.read());   // Bluetooth gelen veriyi oku
  }
  if (Serial.available())        // Bilgisayar bağlantısı var mı?
  {
    btSerial.write(Serial.read());    //Bilgisayardan gelen mesajı Bluetooth dan oku.
  }
}

Yazar hakkında

Orhan Gazi DEMİRCİ administrator

1984 Samsun doğumluyum. Ondokuz Mayıs Üniversitesi Bilgisayar öğretmenliği 2007 Mezunuyum. Bafra İlçe Milli Eğitim Müdürlüğünde Fatih Projesi eğitmenliği görevinde bulunmaktayım. KodlaBafra yürütücülüğü 2017 yılından beri yürütmekteyim. Evli ve bir çocuk babasıyım.