Arduino ile Bluetooth Bağlantısı (HC-05 / HC-06)

Arduino ile Bluetooth Bağlantısı (HC-05 / HC-06)

Arduino ile Bluetooth Bağlantısı (HC-05 / HC-06)

Kablosuz haberleşme artık neredeyse tüm elektronik projelerde standart hale geldi.
Arduino ile Bluetooth bağlantısı, akıllı telefonlar veya bilgisayarlarla veri alışverişi yapmanın en kolay yollarından biridir.
Bu yazıda, HC-05 ve HC-06 Bluetooth modüllerini Arduino ile nasıl bağlayacağınızı, nasıl kodlayacağınızı ve hangi sorunlarla karşılaşabileceğinizi adım adım öğreneceksiniz.

1. Bluetooth Modülü Nedir?

Bluetooth, kısa mesafeli kablosuz veri iletişim teknolojisidir.
Arduino ile kullanıldığında, bilgisayar veya akıllı telefon üzerinden kablosuz veri alışverişi yapılmasını sağlar.
İki popüler Bluetooth modülü vardır: HC-05 ve HC-06.
Bu iki modül neredeyse birbirine benzese de işlev bakımından fark gösterir.
HC-05 → Hem “Master” hem “Slave” modda çalışabilir.
HC-06 → Sadece “Slave” modda çalışır (yani veri alıcı konumundadır).
Bu fark, HC-05’in daha gelişmiş bir kullanım sunmasını sağlar.

2. Gerekli Malzemeler

Arduino ile Bluetooth bağlantısı için aşağıdaki parçalara ihtiyacınız olacak:

  • 1 adet Arduino UNO / Nano / Mega
  • 1 adet HC-05 veya HC-06 Bluetooth modülü
  • Jumper kablolar
  • Breadboard (isteğe bağlı)
  • Bilgisayar (Arduino IDE yüklü)
  • Android telefon (Bluetooth Terminal uygulaması yüklü)

3. HC-05 / HC-06 Pin Yapısı

Aşağıda Bluetooth modülünün pin açıklamaları sade metin formatında verilmiştir:

[HC-05 / HC-06 Pin Açıklamaları]
--------------------------------
1. EN / KEY  → AT komut modu (isteğe bağlı)
2. VCC       → +5V besleme
3. GND       → Toprak (negatif)
4. TXD       → Veri gönderme pini (Arduino RX'e bağlanır)
5. RXD       → Veri alma pini (Arduino TX'e bağlanır)
6. STATE     → Bağlantı durumu (isteğe bağlı)
--------------------------------
Not: RX pini 3.3V toleranslıdır. Arduino TX çıkışı 5V olduğundan
RX hattına 1K-2K direnç bölücü kullanılması önerilir.

4. Arduino ve Bluetooth Bağlantı Şeması

Aşağıdaki bağlantı şeması en stabil iletişim sağlayan düzendir:

[Arduino – HC-05 Bağlantı Şeması]
--------------------------------
HC-05 VCC  → Arduino 5V
HC-05 GND  → Arduino GND
HC-05 TX   → Arduino Pin 10
HC-05 RX   → Arduino Pin 11 (direnç bölücü ile)
--------------------------------

Bu bağlantıda SoftwareSerial kütüphanesi kullanılır,
çünkü Arduino UNO’nun donanımsal RX/TX pinleri (0 ve 1) USB iletişimiyle zaten meşguldür.

5. Arduino Bluetooth Kodları (Temel Test)

Aşağıdaki örnek, Bluetooth modülünün doğru çalışıp çalışmadığını test etmek içindir.
Bilgisayardan gelen veriyi telefona gönderir, telefondan geleni de seri portta gösterir.

#include <SoftwareSerial.h>

SoftwareSerial BTSerial(10, 11); // RX, TX

void setup() {
  Serial.begin(9600);        // Bilgisayar iletişimi
  BTSerial.begin(9600);      // HC-05 iletişimi
  Serial.println("Bluetooth modülü hazır.");
}

void loop() {
  if (BTSerial.available()) {
    char c = BTSerial.read();
    Serial.write(c);          // Telefonda gönderilen karakterleri PC'de göster
  }
  
  if (Serial.available()) {
    char c = Serial.read();
    BTSerial.write(c);        // Bilgisayardan geleni telefona gönder
  }
}

Bu kod, Arduino Bluetooth haberleşmesi için temel altyapıyı oluşturur.
Artık telefon ve Arduino arasında çift yönlü veri alışverişi yapılabilir.

6. Android Uygulaması ile Test Etme

Bluetooth bağlantısını test etmek için Android cihazınıza bir terminal uygulaması kurabilirsiniz.
Kullanabileceğiniz popüler uygulamalardan bazıları:

  • Bluetooth Terminal HC-05
  • Serial Bluetooth Terminal
  • Arduino Bluetooth Controller

Bağlantı Adımları:

  1. Telefonunuzda Bluetooth’u açın.
  2. HC-05 cihazını bulun.
  3. Eşleştirme kodu olarak genellikle “1234” veya “0000” girilir.
  4. Arduino IDE’den kodu yükleyin.
  5. Uygulamayı açıp “HC-05” cihazına bağlanın.

Artık gönderdiğiniz her karakter Arduino Seri Monitöründe görünecektir.

7. Bluetooth ile LED Kontrolü

Şimdi Bluetooth üzerinden LED kontrolü yapalım.
Telefon üzerinden “1” gönderilirse LED yansın, “0” gönderilirse sönsün.

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

int ledPin = 8;
char veri;

void setup() {
  pinMode(ledPin, OUTPUT);
  BTSerial.begin(9600);
}

void loop() {
  if (BTSerial.available()) {
    veri = BTSerial.read();
    if (veri == '1') {
      digitalWrite(ledPin, HIGH);
    } else if (veri == '0') {
      digitalWrite(ledPin, LOW);
    }
  }
}

Bu örnek, Arduino Bluetooth LED kontrolü projelerinde en çok kullanılan yaklaşımdır.
Aynı yöntemle röle, motor, servo gibi elemanlar da kontrol edilebilir.

8. HC-05 AT Komut Modu (Gelişmiş Ayarlar)

HC-05 modülü, AT komutları ile yapılandırılabilir.
Bu sayede cihaz adı, şifre veya baud hızı değiştirilebilir.
AT Moduna Geçmek İçin:

  1. Arduino bağlantısını kesin.
  2. HC-05 üzerindeki KEY (EN) pinini 3.3V’a bağlayın.
  3. LED yavaş yanıp sönmeye başladığında AT modu aktif olur.

Yaygın AT Komutları:

AT                → Bağlantı testi (cevap: OK)
AT+NAME=MyDevice  → Cihaz adını değiştirir
AT+PSWD=1234      → Şifreyi belirler
AT+UART=9600,0,0  → Baud hızını değiştirir

Aşağıdaki kodla AT komutlarını gönderebilirsiniz:

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

void setup() {
  Serial.begin(9600);
  BT.begin(38400); // AT modu varsayılan hızı
  Serial.println("AT komutları için hazır.");
}

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

Bu şekilde Arduino üzerinden doğrudan Bluetooth ayarlarını değiştirebilirsiniz.

9. Yaygın Hatalar ve Çözümleri

Bluetooth projelerinde sıkça görülen hatalar ve çözüm önerileri aşağıdaki gibidir:

[1] Cihaz Görünmüyor:
- Modülün LED’i yanmıyorsa, VCC bağlantısını kontrol edin.
- 5V yerine 3.3V bağlanmış olabilir.

[2] Eşleştirme Başarısız:
- Yanlış şifre girilmiş olabilir. (Varsayılan: 1234)
- Cihazı telefondan kaldırıp yeniden eşleştirin.

[3] Veri Gitmiyor:
- TX ve RX pinleri karışmış olabilir.
- RX hattında mutlaka direnç bölücü kullanın.

[4] HC-05 LED'i Sürekli Yanıp Sönüyor:
- Bu, bağlantı henüz kurulmadı anlamına gelir.
- Bağlantı kurulduğunda LED sabit yanacaktır.

Bu çözümlerle Arduino Bluetooth bağlantısı kararlı şekilde çalışacaktır.

10. Bluetooth Tabanlı Proje Fikirleri

Bluetooth modülünü kullanarak geliştirebileceğiniz projelerden bazıları:

1. Bluetooth Kontrollü Araba
   - Telefon uygulamasıyla yönlendirilen iki tekerlekli robot araba.

2. Kablosuz Lamba Kontrolü
   - Evdeki LED veya röle devresini Bluetooth ile açıp kapatma.

3. Akıllı Sera Sistemi
   - Nem, sıcaklık ve sulama bilgilerini telefondan kontrol etme.

4. Bluetooth ile Röle Kontrolü
   - 220V cihazları güvenli şekilde aç/kapa yapma.

5. Sensör Verisi İzleme
   - Arduino sensör verilerini (sıcaklık, nem vb.) anlık olarak telefona gönderme.

11. Teknik Özellikler (HC-05 ve HC-06)

Bluetooth modüllerinin temel teknik bilgileri sade metin olarak aşağıda verilmiştir:

[HC-05 / HC-06 Teknik Özellikler]
--------------------------------
Bağlantı Mesafesi  : 10 metre (engelsiz ortam)
Çalışma Voltajı    : 3.3V – 6V
Baud Hızı (varsayılan): 9600 bps
Frekans Bandı      : 2.4 GHz
Akım Tüketimi      : Yaklaşık 30–50 mA
Veri Arayüzü       : UART (seri iletişim)
--------------------------------

12. Sonuç: Kablosuz İletişimin İlk Adımı

Bu rehberde, Arduino ile Bluetooth bağlantısı kurmayı,
HC-05 ve HC-06 modüllerinin farklarını, bağlantı şemasını, örnek kodları ve hata çözümlerini öğrendiniz.
Artık bilgisayar, telefon veya diğer mikrokontrolcülerle kablosuz veri iletişimi kurabilirsiniz.
Bluetooth sayesinde robotlarınızı, lambalarınızı, sensörlerinizi ve daha birçok cihazı kolayca kontrol etmeniz mümkün.