- Gerekli malzemeler
- Devre şeması
- HC05 modüllerinin İlk Yapılandırması
- Arduino'dan Arduino'ya Bluetooth İletişim Testi
HC-05 Bluetooth Modülleri, herhangi bir Arduino projesi için ideal Bluetooth modülleridir! Arduino IDE'ye bağlanmak ve kodlamak kolaydır. Çoğu projede, genellikle HC05'e bir Arduino'ya bağlanır ve onu bir cep telefonu gibi başka bir akıllı cihazla kablosuz iletişim kurmak için kullanırız. Bu oldukça basit ve onunla Bluetooth Kontrollü Robot, Bluetooth Ses Kontrolü, Bluetooth Ev Otomasyonu vb. Gibi birçok ilginç proje oluşturduk. Ancak, hiç iki HC-05'i birbirine bağlamanız gerekti mi? Bir HC05'i bir akıllı telefona bağlamak kadar basit değil, bazı ek adımlar var. Bu eğitim, bu süreçte size yol gösterecektir. Hemen içeri atlayalım!
Gerekli malzemeler
- 2x Arduino (Herhangi bir model işe yarar; Arduino Uno R3 ve Arduino Nano kullanıyorum)
- 2x HC05 Bluetooth Modülleri
- Breadboard
- Atlama Telleri
- 2x 1kΩ direnç
- 2x 2.2kΩ direnç
Devre şeması
Bu temel devre şemasıdır. Bu devrelerden 2'sini bağlayın, biri ana diğeri köle için. Bağlantılar için burada yaptığımız tek şey HC05'i Arduino'ya bağlamak. HC05'in Alıcı (Rx) pini 0V ila 3.3V aralığında ve Arduino 0V ila 5V aralığında çalışır. Bu nedenle, HC05 modülüne zarar vermemek için Arduino'nun 5V çıkışını 3.3V'a düşürmek için bir voltaj bölücü oluşturmak için dirençleri (R1 ve R2) kullanacağız.
R1 için 1kΩ ve R2 için 2.2KΩ kullanıyorum, ancak R2, R1 değerinin yaklaşık iki katı olduğu sürece herhangi bir direnç değerini kullanabilirsiniz (R2 ≈ 2R1). Benzer şekilde, hem ana hem de bağımlı için devreyi tekrarlayın, Arduino Master Bluetooth Devresi ve Arduino Bağımlı Bluetooth Devresi aşağıda gösterilmiştir.
HC05 modüllerinin İlk Yapılandırması
Bu, iki HC05 modülünü birbirine bağlamak için gereken ek adımdır. HC05 Bluetooth Modülünün içindeki bazı ayarları değiştirmemiz gerekiyor, bunu yapmak için HC05 modülünün AT Komut Moduna girmemiz ve ona Arduino IDE'nin seri monitöründen komutlar göndermemiz gerekiyor. Bunu yapmak için, seri monitör üzerinden HC05'e komutlar göndermek için bir Arduino kodu yazmamız gerekiyor.
HC05 modülünü yapılandırmak için kod bu sayfanın alt kısmında bulunabilir, kod açıklaması aşağıdaki gibi olduğu
SoftwareSerial kitaplığını bu koda ekleyin.
#include < SoftwareSerial.h>
Gönderme (Tx) ve Alma (Rx) pin numaralarını tanımlayın. Tx için pin 2 ve Rx için pin 3 kullanıyorum.
#define tx 2 #define rx 3
Bluetooth bağlantısına bir ad verin (burada configBt kullanıyorum), ardından SoftwareSerial kitaplığına hangi pinin Tx ve hangi pinin Rx olduğunu bildirin. Sözdizimi bluetoothName (Rx, Tx) şeklindedir;
SoftwareSerial configBt (rx, tx); // RX, TX
Bluetooth modülünü yapılandırmak için Arduino'nun kendisine 38400 baud baud hızında komutlar göndermesi gerekir. Benzer şekilde, Bluetooth bağlantısının baud hızını 38400 baud olarak ayarladık. İletimi (Tx) çıkış pinine ve Alma (Rx) giriş pinine ayarlayın
geçersiz kurulum () { Serial.begin (38400); configBt.begin (38400); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Sonsuz döngünün içinde, kodun ana parçasına sahibiz. Buradaki fikir, seri monitördeki metin kutusuna yazılan her şeyi Arduino'nun Tx pininden HC05'e göndermektir. Ardından, HC05'in çıktısını seri monitörde görüntüleyin.
void loop () {if (configBt.available ()) // HC05 bir şey gönderiyorsa… { Serial.print (configBt.readString ()); // seri monitörde yazdır} if (Serial.available ()) // seri monitör bir şey çıktı veriyorsa… {configBt.write (Serial.read ()); // Arduino'nun Tx pinine yaz}}
Bu kodu önce ana HC05 modülüne bağlı Arduino'ya yükleyin. Kodu yükledikten sonra Arduino güç kablosunu fişten çekin. HC05 üzerindeki düğmeye basın ve basılı tutun. Şimdi, HC05 üzerindeki düğmeyi basılı tutarken Arduino güç kablosunu prize takın. Pekala, şimdi HC05 üzerindeki düğmeyi bırakabilirsiniz. HC05'in AT moduna bu şekilde girersiniz. Bunu doğru yapıp yapmadığınızı kontrol etmek için, HC05 üzerindeki kırmızı ışığın yaklaşık saniyede bir yanıp söndüğünden emin olun (yavaşça yanıp sönüyor!). Normalde, HC05 herhangi bir Bluetooth cihazına bağlanmadan önce, kırmızı ışığı çok yüksek bir frekansta yanıp söner (hızlı yanıp sönme!).
Ardından, seri monitörü açın (seri monitör düğmesi Arduino IDE'nin sağ üst tarafındadır). Seri monitör penceresinin sağ alt köşesinde, henüz yapmadıysanız, satır sonu ayarını "Hem NL hem de CL" ve baud hızını 38400 olarak ayarladığınızdan emin olun. Şimdi, seri monitöre AT yazın, her şey yolunda giderse, seri monitör penceresinde görüntülenen HC05'ten bir "Tamam" alacaksınız. Tebrikler! HC05 modülünün AT komut kipinde başarıyla oturum açtınız.
Şimdi, ana HC05 modülünü yapılandırmak için aşağıdaki tabloya aşağıdaki komutları girin :
COMMAND (bunu seri monitöre girin ve enter tuşuna basın) |
YANIT (seri monitörde gösterilen HC05'ten yanıt) |
İşlev (Bu komut ne işe yarar?) |
AT |
tamam |
Ölçek |
AT + CMODE? |
tamam |
CMODE veya Bağlantı Modunu kontrol edin ----------------------------- CMODE: 0 köle 1 usta |
AT + CMOD = 1 |
tamam |
CMODE Set için 1 biz yapılandırırken olarak ana HC05 |
AT + ADDR? |
+ ADRES: FCA8: 9A: 58D5 tamam * Bu, ana HC05'imin adresi. Adresiniz farklı olacak! |
HC05'in adresini verir, daha sonra ihtiyacımız olacağından bunu not edin ! |
Sonra bilgisayarınızı köle olan diğer HC05'e bağlayın :
COMMAND (bunu seri monitöre girin ve enter tuşuna basın) |
YANIT (seri monitörde gösterilen HC05'ten yanıt) |
İşlev (Bu komut ne işe yarar?) |
AT |
tamam |
Ölçek |
AT + CMODE? |
tamam |
CMODE veya Bağlantı Modunu kontrol edin ----------------------------- CMODE: 0 bir köle 1 usta |
AT + CMOD = 0 |
tamam |
CMODE Set için 0 biz yapılandırırken olarak köle HC05 |
AT + BIND = FCA8,9A, 58D5 * Ana HC05 adresindeki ":" yerine "," * Burada önceki tablodan not ettiğim ana HC05'in adresini kullanıyorum. Ana HC05'inizin adresini kullanmalısınız! |
tamam |
Bu bağımlı HC05'in açılışta otomatik olarak bağlanacağı ana HC05'in adresini ayarlama |
+ BIND? |
+ BAĞLANTI: FCA8: 9A: 58D5 tamam * Bu, ana HC05'imin adresi. Adresiniz farklı olacak! |
Slave'inizin bağlayıcı adresini kontrol edin. Ana HC05'inizin adresiyle eşleşirse, gitmekte fayda var! |
Arduino'dan Arduino'ya Bluetooth İletişim Testi
İlk olarak, hem ana hem de bağımlı HC05 modüllerine güç verin. Güç açıldıktan ve birkaç saniye geçtikten sonra, HC05 modüllerindeki kırmızı ışığa bakın.
Kırmızı ışığın yanıp sönme hızı |
Ne demek |
Çok yüksek bir frekansta yanıp sönme (hızlı yanıp sönme!) |
İyi değil! Bu, HC05 modüllerinizin birbirine bağlanmadığı anlamına gelir! Sorun giderme zamanı! |
Düşük frekansta yanıp sönme (yavaş yanıp sönme!) |
Güzel! Başardın! Ancak bu kurulumun çalıştığından emin olmak için yine de bir kontrol daha yapmamız gerekiyor! Devam et! |
Kırmızı ışıklarınız düşük bir frekansta yanıp söndüğünde (yavaşça yanıp söner!), Her iki HC05'inizin birbirine bağlı olduğundan emin olabilirsiniz, ancak verilerin ana ve ikincil arasında ileri geri gönderilip gönderilemeyeceğini test etmedik. Sonuçta, buradaki asıl amaç bu.
Aşağıdaki kodu Arduino'lardan birine yükleyin, bu vericiyi test etmek için koddur (Tx), yine hem verici hem de alıcı için tam kod bu sayfanın alt kısmında bulunabilir.
Önceki kodun ardından SoftwareSerial kütüphanesini bu koda ekleyerek gönderme (Tx) ve Alma (Rx) pin numaralarını tanımlıyoruz. Ardından Bluetooth bağlantısını isimlendirip Tx ve Rx pin numaralarını kütüphaneye aktarıyoruz.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
Kurulum işlevinde, Arduino seri monitör ve Bluetooth için baud hızını tekrar ayarlıyoruz. Önceki kodla karşılaştırıldığında burada farkı görüyor musunuz? 9600 baud'luk bir baud hızı kullanıyoruz. Bu, diğer Bluetooth cihazlarıyla iletişim kurarken HC05 Bluetooth modülünün varsayılan önceden ayarlanmış iletişim baud hızıdır. Bu nedenle, 38400 baud'un HC05'i AT komutlarıyla yapılandırmak için olduğunu ve 9600 baud'un HC05 modülünün varsayılan baud hızı olduğunu unutmayın. Son olarak, tıpkı Tx pinini output ve Rx pinini input olarak yapılandırmadan önceki gibi.
geçersiz kurulum () { Serial.begin (9600); bt.begin (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Sonsuz döngünün içinde, yaptığımız tek şey rastgele bir "123" değerini HC05 üzerinden iletmek.
boşluk döngü () {bt.write (123); }
Bu kodu diğer Arduino'ya yükleyin, bu almayı test etmek için koddur (Rx):
Önceki kodlarla tamamen aynı şekilde, SoftwareSerial kitaplığını yapılandırıyoruz.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
Kurulum işlevindeki kod, iletimi test etmek için kodla (Tx) tamamen aynıdır.
geçersiz kurulum () { Serial.begin (9600); bt.begin (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Sonsuz döngüde, gönderen Arduino'dan gönderdiklerimizi almamız yeterlidir. Alma arabelleği HC05'ten bazı veriler almışsa, seri monitörde alınan verileri görüntüleyin.
void döngü () {if (bt.available ()> 0) { Seri.println (bt.read ()); }}
İlgili kodları her Arduino'ya yükledikten sonra, Seri monitörü alıcı Arduino'ya açın. Seri monitörde baud hızını 9600 ve satır sonunu Newline olarak seçtiğinizden emin olun. Her şey yolunda giderse, 123'ü görmelisiniz.
Not: Hem verici hem de alıcı Arduino'ları aynı dizüstü bilgisayara bağladıysanız, ARAÇLAR> PORT altında doğru COM bağlantı noktasını seçtiğinizden emin olun. Alıcı Arduino'nun COM bağlantı noktasına bağlı olmalısınız.
Her şey yolunda giderse, iletişimin her iki yönde de gerçekleşebileceğinden emin olmak için HC05 modüllerini değiştirin ve BİTTİ!