Bluetooth, parowanie HC-05

Posiadając dwa moduły HC-05 postanowiłem  połączyć je w parę, by przekazywały między sobą informację. Wymyśliłem najprostszy z możliwych układów oparty na mikro-włączniku i diodzie LED. Naciśnięcie przycisku w jednym z układów powoduje zapalenie diody w drugim i odwrotnie.
Bardzo pomocny okazał się ten artykuł.

Aby wszystko odbyło się bez problemów należy najpierw przygotować oba moduły, gdyż jeden z nich musi pełnić rolę MASTER, drugi SLAVE. Przypisane role potrzebne są wyłącznie przy parowaniu obu modułów, potem nie ma znaczenia który moduł jest który. W każdym razie obecny stan mojej wiedzy na to wskazuje.

HC-05
Pierwsze co należy zrobić by móc skonfigurować moduł, to wejść w tryb komend AT. Pisałem już o tym tu.
Jeśli mamy podłączone tak jak tam oba moduły, możemy wysłać komendy.

Dla modułu, który pełni funkcję SLAVE:

  1. AT : Sprawdza połączenie (powinno zwrócić „OK”)
  2. AT+ORGL : Przywraca fabryczne ustawienia
  3. AT+ROLE: Wyświetla tryb pracy modułu (1=master/0=slave). Powinien być tryb 0. (AT+ROLE=0).
  4. AT+UART : Wyświetla prędkość transmisji. Powinna wynosić 38400. (AT+UART=38400,0,0)
  5. AT+ADDR : Wyświetla adres modułu. Kopiujemy i zapisujemy. Adres mojego modułu wyświetlił się tak: 21:13:1FA96.
  6. AT+RESET : Resetuje moduł i wychodzi z trybu AT

Dla modułu, który pełni funkcję MASTER:

  1. AT : Sprawdza połączenie
  2. AT+ORGL : Przywraca fabryczne ustawienia
  3. AT+ROLE: Wyświetla tryb pracy modułu (1=master/0=slave). Ustawiamy tryb 1. (AT+ROLE=1).
  4. AT+UART : Wyświetla prędkość transmisji. Powinna wynosić 38400. (AT+UART=38400,0,0)
  5. AT+CMODE=0 – powoduje że moduł HC-05 będzie się podłączał do konkretnego modułu, którego adres podamy w następnym kroku.
  6. AT+BIND=„zapisany wcześniej adres”.  Adres mojego modułu wpisuję tak: AT+BIND=21,13,1FA96. Dwukropki zamieniamy na przecinki.
  7. AT+RESET : Resetuje moduł i wychodzi z trybu AT

Teraz należy tylko podłączyć moduły do Arduino. Ja użyłem płytki Arduino Uno i Nano. Oto schemat połączeń:

połączenia HC-05 z płytkami Nano i Uno parowania

Rezystor o wartości 1k.

Wgrywamy program. Ten sam do obu modułów. Jak wgrać skecz do Nano V3.0 pisałem tu.

Kod:


#include <SoftwareSerial.h>
SoftwareSerial BTserial(10, 11);

int state = 0;
const int ledPin = 8;  
const int buttonPin = 2; 
int buttonState = 0;

void setup() {

  Serial.begin(9600);
  BTserial.begin(38400);

  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);

}

void loop() {

  buttonState = digitalRead(buttonPin);

  if (buttonState == HIGH) {

    BTserial.write('1');  //sends a 1 through the bluetooth serial link
    delay (1);
  }
  else {
    BTserial.write('0');
    delay(1);
  }

if (BTserial.available() > 0) { 
  state = BTserial.read(); //czytanie danych z BT
  }

  if (state == '1') {
    digitalWrite(8, HIGH); // LED ON
    state = 0;
  }
  else if (state == '0') {
    digitalWrite(8, LOW); // LED OFF
    state = 0;
  }

  
}

Po podłączeniu zasilania do obu płytek moduły powinny się sparować. Podwójne mignięcia diod na obu HC-05 oznaczają, że tak się stało.

Teraz, jeśli wszystko zostało podłączone prawidłowo, naciśnięcie przycisku na dowolnej płytce spowoduje wysłanie przez bluetooth informacji, odczytanie, czego efektem będzie zaświecenie diody na drugiej płytce.
I tyle.

Dodaj komentarz