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.

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 to wszystko.

LINK

Dodaj komentarz