Arduino ve HC-05 Bluetooth Modülü ile İletişim: Detaylı Kullanım Rehberi
Arduino ile Bluetooth üzerinden kablosuz haberleşme sağlamak, HC-05 Bluetooth modülü kullanılarak oldukça basit ve etkilidir. Bu makalede, Arduino ile HC-05 modülünün nasıl kullanılacağını, bağlantılarının nasıl yapılacağını ve veri aktarımı için gerekli kodları detaylı bir şekilde inceleyeceğiz.
HC-05 Bluetooth Modülü Nedir?
HC-05, Bluetooth 2.0 destekli bir haberleşme modülüdür. Genel olarak düşük enerji tüketimi ile dikkat çeker ve UART (Universal Asynchronous Receiver-Transmitter) iletişim protokolü kullanarak, cihazlarla kablosuz veri aktarımı yapmanıza olanak tanır. Bu modül hem master (ana cihaz) hem de slave (alt cihaz) modunda çalışabilir.
HC-05 Pinleri:
- VCC: Güç pini (3.6V – 6V)
- GND: Toprak pini
- TXD (Transmitter): Veri gönderim pini
- RXD (Receiver): Veri alım pini
- KEY: Mod değiştirme pini (Bağlantı yaparken genellikle kullanılmaz)
- STATE: Bağlantı durumunu gösteren çıkış pini
Gerekli Malzemeler:
- Arduino (UNO, Mega vb.)
- HC-05 Bluetooth modülü
- Jumper kablolar
- 1KΩ ve 2KΩ dirençler (RX pini için gerilim düşürme amacıyla)
- Telefon ya da bilgisayar (Bluetooth özellikli)
Bağlantı Şeması
- HC-05 – Arduino Bağlantıları:
- VCC → Arduino 5V
- GND → Arduino GND
- TXD → Arduino RX (Dijital Pin 0)
- RXD → Arduino TX (Dijital Pin 1)
Not: Arduino’nun TX pini 5V, HC-05’in RX pini ise 3.3V ile çalışır. Bu nedenle, 1KΩ ve 2KΩ dirençler kullanılarak bir gerilim bölücü devresi yapılmalıdır. - KEY: Mod değiştirirken kullanılabilir, temel iletişim için gerekli değildir.
Gerilim Bölücü Devresi:
HC-05’in RX pini 3.3V ile çalışırken Arduino TX pini 5V verir. Bu uyumsuzluğu ortadan kaldırmak için gerilim bölücü devre yapılması önerilir. İki direnç kullanarak 5V’yi 3.3V’ye düşürmek için şu devre yapılabilir:
- Arduino TX → 1KΩ direnç → HC-05 RX
- HC-05 RX ile 1KΩ direncin arasına 2KΩ direnç bağlayın ve diğer ucunu GND’ye bağlayın.
Arduino Kodu
HC-05 ile Arduino arasında veri alışverişi için SoftwareSerial kütüphanesini kullanabiliriz. Bu kütüphane, yazılım tabanlı bir seri port oluşturarak, donanımsal TX ve RX pinlerinin kullanımını engellemeden Bluetooth haberleşmesi yapmamızı sağlar.
Arduino Kodu (HC-05 ile Temel İletişim):
#include <SoftwareSerial.h>
// RX ve TX pinlerini tanımlıyoruz
SoftwareSerial mySerial(10, 11); // (RX, TX)void setup() {
// Seri haberleşme başlatma
Serial.begin(9600); // Arduino’nun seri haberleşme hızı
mySerial.begin(9600); // HC-05 Bluetooth modülünün haberleşme hızıSerial.println(“Bluetooth bağlantısı başlıyor…”);
}void loop() {
// Eğer Bluetooth üzerinden veri geliyorsa
if (mySerial.available()) {
char c = mySerial.read(); // Gelen karakteri oku
Serial.print(c); // Konsola yazdır
}// Eğer seri monitörden veri geliyorsa
if (Serial.available()) {
char c = Serial.read(); // Gelen karakteri oku
mySerial.print(c); // Bluetooth üzerinden gönder
}
}
Açıklamalar:
- SoftwareSerial mySerial(10, 11);: Arduino’nun 10. ve 11. pinlerini, Bluetooth modülü ile haberleşme için kullanıyoruz.
- mySerial.begin(9600);: HC-05 modülü genellikle 9600 baud hızında haberleşir.
- mySerial.available(): Bluetooth modülünden veri gelip gelmediğini kontrol eder.
- Serial.available(): Seri monitörden veri alıp almadığımızı kontrol eder.
Bu kod ile Bluetooth üzerinden gönderilen veriler seri monitörde görüntülenir ve seri monitörden gönderilen veriler Bluetooth üzerinden dışarıya aktarılır.
HC-05’in Telefon veya Bilgisayarla Eşleştirilmesi
- Telefon Eşleştirme:
- Telefonunuzda Bluetooth’u açın.
- HC-05 modülünü arayın ve bulduktan sonra eşleştirin. Varsayılan eşleştirme şifresi genellikle “1234” ya da “0000”‘dır.
- Eşleştirdikten sonra, herhangi bir terminal uygulaması (örneğin, Android’de “Bluetooth Terminal” gibi) ile bağlantı kurabilirsiniz.
- Bilgisayar Eşleştirme:
- Bluetooth özelliği olan bir bilgisayar kullanıyorsanız, Bluetooth ayarlarına gidin ve HC-05 modülünü arayın.
- Bulduktan sonra eşleştirin ve terminal uygulaması ile veri alışverişi yapın.
Master ve Slave Modları
HC-05 modülü hem master hem de slave modlarında çalışabilir. Mod değiştirmek için AT komutları kullanılır. Örneğin, modülü master moda geçirmek için aşağıdaki adımları izleyebilirsiniz.
AT Moduna Geçiş:
- Arduino’ya bağlı iken, KEY pinini HIGH yaparak HC-05’i AT moduna geçirin.
- Aşağıdaki kodu kullanarak AT komutlarını gönderin:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
Serial.begin(9600);
mySerial.begin(38400); // AT modunda HC-05, 38400 baud hızında çalışır.Serial.println(“AT komutları için hazır”);
}void loop() {
if (mySerial.available()) {
Serial.write(mySerial.read()); // Bluetooth’tan gelen veriyi seri monitöre yaz
}if (Serial.available()) {
mySerial.write(Serial.read()); // Seri monitörden gelen veriyi Bluetooth’a yaz
}
}
AT Komutları:
- AT: HC-05’in çalışıp çalışmadığını kontrol eder.
- AT+ROLE=1: Modülü master moduna geçirir.
- AT+ROLE=0: Modülü slave moduna geçirir.
- AT+NAME=İSTEDİĞİNİZ_AD: Bluetooth cihazının adını değiştirir.
- AT+PSWD=XXXX: Eşleştirme şifresini değiştirir.
Sonuç
Arduino ve HC-05 modülü, projelerinizde kablosuz iletişim sağlamak için oldukça kullanışlı bir çözümdür. Bu rehberde, modülün nasıl bağlanacağını, veri alışverişi yapmanın temellerini ve AT komutlarıyla konfigürasyon yapmanın yollarını öğrendiniz. Bluetooth modülü kullanarak farklı cihazlar arasında kablosuz haberleşme sağlayabilir ve projelerinizi bir adım ileriye taşıyabilirsiniz.