2 Arduino'yu Bluetooth ile Haberleştirmek
Selamlar. Bügünkü yazıda iki adet arduino'yu bluetooth ile nasıl haberleştireceğimizi ve bir arduino'dan diğerine nasıl komut göndereceğimizi öğreneceğiz. Bluetooth'la cihazları haberleştirmeden önce bu cihazları eşleştirmemiz gerekir. Bu eşleşme ise master ve slave cihazlar arasında gerçekleşir.
HC-06 Bluetooth modülü sadece " slave " modunda çalışabiliyor iken HC-05 hem " slave " hem de " master " modda çalışabilmektedir. Modüllerin bağlantı kurabilmesi için master modülün etrafında slave bir modül bulunması gerekir. Buna göre diyebiliriz ki HC-06 kendi kendine bağlantı kuramazken HC-05, HC-06'ya yada HC-05'e bağlanarak iletişim kurabilir.
Haberleşmeyi sağlamak için bu modüller AT komutları ile konfigüre edilmelidir. AT komutları modülün hangi modda çalışacağına ( master/slave ), ismine, baud rate'ine, şifresine kadar birçok ayarını gerçekleştirmemizi sağlar. Bu AT komutlarını göstermeden önce Arduino ile bluetooh modülünün nasıl bağlanacağını göstermek istiyorum sizlere ;
VCC > 5V
Gnd > 0V
Tx > Rx
Rx > Tx
HC-05 "Mini AT" ve "Full AT" olmak üzere 2 adet AT moduna sahiptir. HC-05'in bazı komutları yalnızca " Full AT " modunda çalışır. Full AT moduna girmek için ise Hc-05'in 34. pini HIGH olmalıdır yani 3.3 V ile beslenmelidir. Fritzing şemasında gördüğünüz soldaki Arduino'ya giden HC-05 modülünü full AT moduna aldım.
Bluetooth modülü ile çalışan arkadaşlar bilir ki bluetooth modülünü mikroişlemciye bağlarken gerilim bölücü kullanmak gerekebilir. Ben bu modülle çok fazla çalışma yaptm ve gerilim bölücü kullanmaman bende bir soruna sebep olmadı. Kartımız yanmadı vs. ama siz emin olmak isterseniz gerilim bölücü kullanabilirsiniz.
2 tane Arduino Ide'si kullanmak bize 2 tane seri monitör verir ve kolaylık sağlar.
Şimdi AT komutlarına geçebiliriz ;
HC-05'i Kurmak ;
Hc-05 aşağıdaki değerlere ayarlanmış olarak gelir.
- ROLE = 0 ( Slave Mod )
- UART = 9600 ( iletişim baud hızı )
- CMODE = 0 ( Yalnızca eşleşmiş cihazlara bağlan )
- PSWD = 1234 ( Eşleştirme şifresi 1234 )
AT komutlarına girebilmek için HC-05'imizi bağladıktan sonra Arduino'ya şu kodları girelim. Buradaki SoftwareSerial kütüphanesi arduino içerisinde hazır bulunur, sizin eklemenize gerek yok.
HC-05'in bluetooth baud rate hızı 38400'e ayarlanmalıdır. Aksi taktirde çalışmaz. Buna dikkat edelim.
Bu kodda ayrıca Tx ve Rx pinleri Arduino'nun 2. ve 3. pinlerine tanımlanmıştır. Dolayısıyla haberleşme için kullanırken bluetooth üzerinden gelen haberleşme pinlerinin 2. ve 3. pinlere takılmasına dikkat edelim. Bu tanımlamaların yapılmasının sebebi normalde Arduino'muza kod yüklerken Tx ve Rx pinlerinin boşta olmasına dikkat ederiz. Aksi taktirde seri haberleşme pinleri dolu olması kodun yüklenmesini engeller. Biz burada bu pinlerin yerini değiştirince 2 Arduino haberleşirken bir taraftan Arduino'larımızın seri port'la haberleşmesini engellememiş oluruz.
Son olarak Hc-05 için seri monitörde " NL & CR ikisi de " seçeneğini seçmeyi unutmayın. Seri monitörde " AT " yazarsak " OK " cevabını alıyor olmalıyız. OK cevabını almıyorsak bir yerde sorun var demektir kodları ve bağlantıları kontrol edin.
HC-06'yı Kurmak
HC-06'ya AT komutlarını uygulayabilmek için gerekli kodları yükleyelim. Bu defa bluetooth'un baud rate hızının 9600 olmasına dikkat edelim.
HC-06 modülleri AT modunda başlar. Seri monitörü açtıktan hemen sonra komut girmeye başlayabiliriz. Bütün komutlar büyük harfle girilmelidir ve seri monitör " Satır sonu yok " şeklinde ayarlanmalıdır. Buna dikkat edelim. Yukarıdaki resimde gördüğünüz gibi kodları Arduino'ya yükledikten sonra seri monitöre "AT " yazdığım zaman OK cevabını aldım. Bu bluetooth'umuzun çalıştığı ve eşleşmeye hazır olduğu anlamına geliyor.
Hc-05'i Hc-06'ya Bağlamak
2 modülümüz de eşleşme için hazır hale geldiğine göre artık Hc-05'i Hc-06'ya bağlamak için gerekli adımları atabiliriz. Sırasıyla şu işlemleri uygulanacak ;
1 ) İki cihazda aynı Baud Rate'e ayarlanmalıdır.
AT+UART=9600,0,0
2 ) Her iki modülünde şifresi aynı olmalıdır.
AT+PSWD=1234
3 ) HC-06'nın adresi bulunmalıdır. Adresi bulmak için gerekli komutları HC-05'in bağlı olduğu seri monitöre yazacağız.
AT+RMAAD ( Önceden eşleştirilmiş tüm cihazları siler. )
AT+ROLE=1 ( Hc-05'i master moduna geçirir. )
AT+RESET ( Hc-05'i sıfırlar.)
AT+CMODE=0 ( Hc-05'in herhangi bir cihaza bağlanmasına izin verir.)
AT+INQM=0,5,9 ( 9 saniyeye kadar 5 cihazı arar. )
AT+INIT ( Spp profilini başlatır. Gereklidir. )
AT+INQ ( Diğer bluetooth cihazlarını arar. )
Bu komutlardan sonra Hc-05 etraftaki bluetooth cihazlarını sıralar. Listelenen cihazların hangisinin Hc-06 olduğunu öğrenmek için AT+RNAME? komutu kullanılır. Şekildeki resimde gördüğünüz gibi ;
AT+INQ komutu 3 değer döndürür. İlki adres, ikincisi cihazın sınıfı ve üçüncüsü ise sinyal gücüdür. Bu komut sadece HC-05 master moddaysa ve ondan önce AT+INIT komutu yazılmışsa çalışır.
4 ) Adresi öğrendikten sonra Hc-05'imizi Hc-06'ya bağlayabiliriz.
AT+PAIR=3014,10,171179,9 ( 9 saniye içinde eşleşme gerçekleşirse OK cevabı alırsınız.
5 ) Hc-0,6'yı Hc-05'e bağlayalım.
AT+BIND=3014,10,171179
6 ) Hc-05'i yalnızca eşleşmiş cihazlara bağlanacak şekilde ayarlayalım.
AT+CMODE=1
7 ) Hc-06'ya bağlantıyı tamamlayalım.
AT+LINK=3014,10,171179 ( Bu komuttan herşey tamamsa OK cevabı alırız. )
Bağlantı kurulduktan sonra Hc-05 her açıldığında otomatik olarak Hc-06'ya bağlanır. Hc-05 üzerindeki led 2 saniyede bir yanıp sönecek Hc-06 üzerindeki led ise sadece yanık duracak şekilde olmalıdır. Bu bağlantının kurulduğu anlamına gelir.
Haberleşmenin test edilmesini, komut yollanmasını ise bir başka yazıda açıklayacağım. Umarım faydalı olmuştur.
Kaynak : http://www.martyncurrey.com/connecting-2-arduinos-by-bluetooth-using-a-hc-05-and-a-hc-06-pair-bind-and-link/
Merhabalar iki adet Bluetooth modülünde sıkıntı yok ama master Bluetooth modülüne iki ve daha fazla slave Bluetooth modülünü nasıl bağlayabiliriz. Cevap verirseniz sevinirim.
YanıtlaSil