Bluetooth Modülünün Master ve Slave cihazları olarak nasıl yapılandırılacağını, eşleştirileceğini ve iletişim kurulacağını öğreneceğiz. Öncelikle aşağıdaki videoyu izleyebilir ve sonra eğitimi okuyabilirsiniz.
Öncelikle her iki modülü de yapılandırmamız gerekiyor. Bunu yapmak için AT Komut Moduna geçmemiz gerekiyor ve bunu nasıl yapacağız? Öncelikle, aşağıda açıklanan devre şemasına bakarak Bluetooth modülünü Arduino'ya bağlamamız gerekiyor. Ek olarak yapmamız gereken, Bluetooth modülünün EN pinini 5 volta bağlamak ve Arduino Kartındaki TX ve RX pinlerini değiştirmek.
HC05 Bluetooth Modülü Slave Yapılandırması
Örneğin, bir test komutu olan sadece “AT” yazarsak, “OK” mesajını geri almalıyız. Sonra “AT + UART?” Yazarsak 38400 olan varsayılan baud hızını gösteren masajı geri almalıyız. Sonra “AT + ROLE?” yazarsak “+ ROLE = 0” masajını geri alacağız, bu da Bluetooth cihazının bağımlı modda olduğu anlamına geliyor. “AT + ADDR?” Yazarsak Bluetooth modülünün adresini geri alacağız ve şöyle görünmelidir: 98d3: 34: 905d3f.
Şimdi bu adresi, ana cihazı yapılandırırken ihtiyaç duyacağımız için yazmamız gerekiyor. Aslında, adresi almak için slave cihazı yapılandırırken ihtiyacımız olan; adı, baud hızı, eşleştirme şifresi ve benzeri gibi birçok farklı parametreyi değiştirebiliriz. Ancak bu makalemizde bunu yapmayacağız.
Ana Yapılandırma
Tamam şimdi devam edelim ve diğer Bluetooth modülünü ana cihaz olarak yapılandıralım. Öncelikle, slave cihazla aynı değerde(38400) olduğundan emin olmak için baud hızını kontrol edeceğiz. Ardından “AT + ROLE = 1” yazarak Bluetooth modülünü bir ana cihaz(master) olarak ayarlayacağız. Bundan sonra “AT + CMODE = 0” kullanarak bağlantı modunu “sabit adres” olarak ayarlayacağız ve “AT + BIND =” komutunu kullanarak daha önce yazdığımız slave cihazın adresini ayarlayacağız.
Burada adresi yazarken iki nokta üst üste yerine virgül kullanmamız gerektiğini unutmayın. Ayrıca, “AT + CMODE” komutunda “0” yerine “1” girersek önceki adımı atlayabileceğimize dikkat edin; Bu, master'ın iletim aralığındaki herhangi bir cihaza bağlanmasını sağlar, ancak bu daha az güvenli yapılandırmadır. Burada komutların ve parametrelerin tam bir listesini bulabilirsiniz: HC05 AT Komut Listesi Bununla birlikte, Bluetooth modüllerinin ana ve bağımlı cihazlar olarak çalışması için temel bir konfigürasyon için ihtiyacımız olan tek şey budur ve şimdi bunları normal, veri modunda yeniden bağlar ve modülleri yeniden çalıştırırsak, birkaç saniye içinde master ve köle(slave) bağlanır. Her iki modül de başarılı bir bağlantı olduğunu göstermek için her 2 saniyede bir yanıp sönmeye başlar.
İki HC05 Bluetooth Modülü Arasında İletişim
Pratik örnek için hazırız. Devre şemaları aşağıdadır. Slave'de bir servo motoru kontrol etmek için master'da bir potansiyometre kullanacağız. Ve tam tersi, master'da bir LED'i kontrol etmek için slave'de bir tact switch kullanacağız.
Arduino ile bluetooth modülleri arası iletişim için gerekli bileşenleri aşağıdaki linklerden satın alabilirsiniz:
Arduino Kaynak Kodları
Açıklama: Öncelikle program için gerekli olan pinleri ve bazı değişkenleri tanımlamamız gerekiyor. Kurulum bölümünde,
master'da LED pinini
OUT ve
LOW olarak ayarladık. Seri iletişimi 38400 baud hızında başlattık. Benzer şekilde,
slave'de de, düğme pimini
IN olarak ayarladık, pimin bağlı olduğu servoyu tanımladık ve seri iletişimi aynı baud hızında başlattık. Döngü bölümünde, her iki kodda,
Serial.available () işlevi ile okunacak seri bağlantı noktasında kullanılabilir veri olup olmadığını kontrol edeceğiz ve
Serial.read () işlevini kullanarak verileri okuyacağız. Böylece master da, düğme durumu
HIGH olduğunda veya düğmeye basıldığında
slave'den gönderilen '
1' karakterini alırsa, LED yanar. Karakter '
0' ise, LED söner. Servo motor kontrolüne gelince, önce
master'da, potansiyometre değerini okur ve servo için 0 ila 255 arasında uygun bir aralıkta eşleştiririz. Bu değer, servo motoru uygun şekilde döndürmek için kullanan
slave'e gönderilir. Şimdi Kod'a geçelim.
Master Kod:
/*
* How to configure and pair two HC-05 Bluetooth Modules
* by Dejan Nedelkovski, www.HowToMechatronics.com
*
* == MASTER CODE ==
*/
#define ledPin 9
int state = 0;
int potValue = 0;
void setup() {
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
Serial.begin(38400); // Default communication rate of the Bluetooth module
}
void loop() {
if(Serial.available() > 0){ // Checks whether data is comming from the serial port
state = Serial.read(); // Reads the data from the serial port
}
// Controlling the LED
if (state == '1') {
digitalWrite(ledPin, HIGH); // LED ON
state = 0;
}
else if (state == '0') {
digitalWrite(ledPin, LOW); // LED ON
state = 0;
}
// Reading the potentiometer
potValue = analogRead(A0);
int potValueMapped = map(potValue, 0, 1023, 0, 255);
Serial.write(potValueMapped); // Sends potValue to servo motor
delay(10);
}
Slave Kodu:
/*
* How to configure and pair two HC-05 Bluetooth Modules
* by Dejan Nedelkovski, www.HowToMechatronics.com
*
* == SLAVE CODE ==
*/
#include <Servo.h>
#define button 8
Servo myServo;
int state = 20;
int buttonState = 0;
void setup() {
pinMode(button, INPUT);
myServo.attach(9);
Serial.begin(38400); // Default communication rate of the Bluetooth module
}
void loop() {
if(Serial.available() > 0){ // Checks whether data is comming from the serial port
state = Serial.read(); // Reads the data from the serial port
}
// Controlling the servo motor
myServo.write(state);
delay(10);
// Reading the button
buttonState = digitalRead(button);
if (buttonState == HIGH) {
Serial.write('1'); // Sends '1' to the master to turn on LED
}
else {
Serial.write('0');
}
}
Hepsi bu kadar.
https://robocombo.com/arduino-maker-seti Ve Diğer Malzemeler:
Adım 2: HC05 Bluetooth Modülü Kablolama!
EN pimine bağlı küçük bir butonu arduinonun ön tarafına yerleştireceğiz. Butona sahip değilseniz, bir sonraki adıma geçin, ancak eğer buton varsa, yukarıdaki kablolamayı uygulayın. Adım Adım Yapılacaklar (NANO)
- Bluetooth modülünü nano'nun sağına doğru breadboard'a takın.
- Bluetooth modülünde 5V - VCC arası bağlantı kurun.
- Bluetooth modülünde GND pimini ilişkilendirin.
- D10 - TXD'yi ilişkilendirin.
- DX - RXD'yi ilişkilendirin.
- Bluetooth modülünü, breadboard'un ortasındaki buton ile köprüleyin.
- D2 pimini sağ üst düğme ile ilişkilendirin.
- Sol alt basma düğmesini 5V ile ilişkilendiren.
- 1k direnci sağ alttan basma düğmesinden GND'ye çıkarın.
- Led'i breadboard'a takın.
- D8 - LED pozitif.
- GND - LED negatif.
Adım Adım Yapılacaklar (UNO)
- Bluetooth modülünü nano karşısındaki breadboard'a takın.
- Bluetooth modülünde 5V - VCC arası bağlantı kurun.
- Bluetooth modülünde GND pimini ilişkilendirin.
- D10 - TXD'yi ilişkilendirin.
- DX - RXD'yi ilişkilendirin.
- Led'i breadboard'a takın.
- D8 - LED pozitif.
- GND - LED negatif.
Bir sonraki adıma atlayın!