HC-06 Bluetooth Modülü Konfigürasyonunun Yapılması
Bu çalışmada robotik çalışmalarda sıkça kullanılan bluetooth modülü temel konfigürasyonunun nasıl yapıldığı ele alınmaktadır. Modüllerde isim ve şifre gibi temel değişiklikler ile etraftaki diğer modüllerle/cihazlarla karışıklık önlenebilmektedir.
Bluetooth modülü konfigürasyonu için “Arduino Nano Tabanlı Eğitim Robotu: myNanoBot” çalışmasında tercih edilen HC-06 modülü ve bu modül üzerinde yapılan değişikliklere örnek olarak yer verilmiştir.
Burada anlatılanlar HC-06 için geçerli olup modül ayarlarında 3 değişiklik yapılmıştır:
- Veri iletim hızı (baudrate) 115200 yapılmıştır
- Modül ismi değiştirilmiştir: myNanoBot
- Modül şifresi değiştirilmiştir: 5555
Bluetooth modülü ayarları “AT” komut modunda yapılmakta olup HC-05 modülü ile HC-06’nın “AT” modu geçişi ve “AT” komutları arasında farklılıklar vardır.
HC-06, “AT” modu ve iletişim modu olarak 2 moda sahiptir. HC-06 iletişim modunda değilken modül otomatik olarak “AT” modundadır. Yani modüle ilk güç verildiğinde üstündeki led sürekli yanıp sönüyor iken herhangi bir işleme gerek kalmadan “AT” komutları uygulanabilir.
“AT” komutları Arduino seri monitörden girilebilir ve sonuçları izlenebilir. HC-06 bluetooth modülü varsayılan baudrate değeri 9600‘dür. Modül Arduino’ya bağlandıktan sonra (detaylara şu çalışmadan bakılabilir) Arduino’ya yüklenecek kod şöyle olabilir:
//Arduino Uno, Nano vb için -Yazılımsal- //Bluetooth RX => Arduino TX (Pin 11) //Bluetooth TX => Arduino RX (Pin 10) #include <SoftwareSerial.h> SoftwareSerial myBluetooth(10, 11); // RX, TX void setup() { Serial.begin(9600); myBluetooth.begin(9600); Serial.println("AT Komutu Giriniz:"); } void loop() { if (Serial.available()) { myBluetooth.write(Serial.read()); //AT komutunu bluetooth'a gönder } if (myBluetooth.available()) { Serial.write(myBluetooth.read()); //Bluetooth'dan gelen yanıt } }
Arduino Mega için diğer fiziksel seri portlardan biri de kullanılabilir:
//Arduino Mega için //Bluetooth RX => Arduino TX2 (Pin 16) //Bluetooth TX => Arduino RX2 (Pin 17) void setup() { Serial.begin(9600); Serial2.begin(9600); //Bluetooth'un bağlı olduğu fiziksel port Serial.println("AT Komutu Giriniz:"); } void loop() { if (Serial.available()) { Serial2.write(Serial.read()); //AT komutunu bluetooth'a gönder } if (Serial2.available()) { Serial.write(Serial2.read()); //Bluetooth'dan gelen yanıt } }
“AT” komutları büyük harfle, çift tırnaksız, boşluksuz ve satır sonu karakterleri olmadan (\r\n) girilmelidir. Komutlar sınırlıdır, varsayılan modul ismi/veri iletim hızı görülmez. “AT” komutuna “OK” yanıtı; “AT” modunda çalışıldığını belirtir:
Aşağıdaki komutlar uygulanarak modül ayarları tamamlanmıştır:
Komut | Beklenen Sonuç | Açıklama |
AT+NAMEmyNanoBot | OKsetname | Modül ismi myNanoBot olarak değiştirildi |
AT+PIN5555 | OKsetPIN | Modül eşleşme pini 5555 oldu |
AT+BAUD8 | OK115200 | Veri iletim hızı 115200 oldu |
Tablodan görüldüğü gibi veri iletim hızını değiştirmek için sayılar kullanılmaktadır. 4 => 9600 (varsayılan) iken 8 => 115200’e karşılık gelmektedir. Diğer veri iletim hızı değerleri ve diğer bazı “AT” komutları için bu adresten yararlanılabilir.
Not: Modül ayarlarında tekrar değişiklik yapabilmek için bluetooth modülü seri iletişiminin artık 115200 bps üzerinden yapılması gerekir. ( myBluetooth.begin(115200); ) Aksi takdirde “AT” komutlarına yanıt alınmayacaktır.
Ayrıca modül ayarlarını tekrar değiştirmek için veri iletim hızının unutulmaması ve bilgisayarların desteklememesi nedeniyle 115200’den yüksek bir değere çekilmemesi birçok kaynakta belirtilmektedir.
Kaynakça
http://www.martyncurrey.com/hc-06-zg-b23090w-bluetooth-2-0-edr-modules/
https://www.instructables.com/id/AT-command-mode-of-HC-05-Bluetooth-module/
https://dergipark.org.tr/tr/download/article-file/1809070
https://erkanduran.wordpress.com/2018/01/04/arduino-seri-haberlesme-ve-bluetooth-uzerinden-led-yakma/
https://github.com/eduran10/myNanoBot
https://erkanduran.wordpress.com/2022/03/28/arduino-nano-tabanli-egitim-robotu-mynanobot/
https://erkanduran.wordpress.com/2022/03/28/arduino-nano-tabanli-bir-egitim-robotu-gelistirilmesi-mynanobot/
Merhabalar,
Bluetooth HC06 yı arduinoya bağladım, cep uygulamasından yazı gönderdiğimde arduino monitorunda görüyorum ve arduino monitorundan yazı gönderdiğimde cep ekranında görüyorum. Cep uygulamasından çıkıp arduino monitöründen AT komutunu gönderdiğimde hiç yanıt alamıyorum, AT komutlarına tepki yok neden?
Yardımcı olabilirseniz çok makbule geçer
Saygılar
Merhaba. Son kısımdaki not bölümüne dikkat ettiniz mi? Baudrate değerlerini doğru olarak ayarladınız mı?