Opis produktu Opis produktu

Moduł bluetooth HC-05. Oparty na chipsecie BC417. Pozwala na nawiązanie łączności bluetooth z dowolnym urządzeniem posiadającym interfejs bluetooth (komputer, smartfon, itd). Idealny we własnych projektach z procesorami AVR czy Arduino.

Dane techniczne:


- bluetooth V2.0+EDR
- napięcie zasilania 3,6 - 6V
- maksymalny pobór prądu 40mA
- zasięg ok. 10m 
- sygnalizacja diodą LED
-  wymiary 16 x 37 mm
 


Opis i sposób podłączenia modułu HC-05 we własnych projektach.

Opis ogólny HC-05.

hc-05-1.jpg

Rys.1 Moduł HC-05.

Moduł HC-05 jest oparty na chipie BC417 2.5GHz wraz z 8Mbit pamięcią flash. Moduł może pracować jako master lub slave. Moduł jako master inicjuje połączenie z modułami w trybie slave. Moduł HC-05 może pracować w dwóch trybach - Command Mode oraz Data Mode. Tryb Command Mode jest trybem w którym można dokonywać zmian konfiguracji modułu za pomocą komend AT. W trybie Data Mode moduł przesyła tylko dane. Domyślnie moduł HC-05 pracuje w trybie Data Mode. 
Moduł HC-05 posiada interfejs UART. Służy on do wprowadzenia do modułu danych które następnie zostaną wysłane radiowo do innego urządzenia Bluetooth oraz do odczytywania danych odebranych przez moduł. W trybie Command Mode, port UART służy do wprowadzania komend AT w celu konfiguracji modułu. Domyślnie moduł HC-05 ma port UART ustawiony w poniższy sposób:


- Baud Rate: 9600 bps,
- Data : 8 bits,
- Stop Bits: 1 bit,
- Parity : None,
- Handshake: None
 

Pierwsze podłączenie.


Aby przetestować poprawność działania modułu, podłączamy do niego zasilanie według poniższego rysunku.


Rys.2
 

Po podłączeniu zasilania dioda LED znajdująca się na module zacznie migać. W komputerze włączyć bluetooth i poczekać aż komputer znajdzie moduł. Moduł przedstawi się jako HC-05. Następnie należy sparować moduł z bluetoothem w komputerze używając domyślnego kodu parowania 1234. Po wpisaniu kodu parowania powinien się nam zainstalować moduł HC-05. Powstanie wirtualny port COM na którym będzie się komunikował nasz HC-05 z bluetoothem w komputerze. Numer portu COM należy sprawdzić we właściwościach danego urządzenia bluetooth HC-05. W tym przypadku jest to COM20 (rysunek poniżej).

1.jpg


Rys.3

Teraz za pomocą terminala RealTerm możemy podłączyć się do naszego HC-05. W tym celu w terminalu ustawiamy dane do podłączenia takie jakie wymaga domyślnie nasz HC-05:

- Baud Rate: 9600 bps,
- Data : 8 bits,
- Stop Bits: 1 bit,
- Parity : None,
- Handshake: None

31-307-4opis.jpg


Rys.4
 

Naciskając OPEN powinniśmy się podłączyć do modułu HC-05. Poprawne podłączenie zostanie zasygnalizowane zapaleniem się diody LED podłączonej do pinu STATE naszego modułu.
Następnie w terminalu RealTerm przechodzimy do zakładki Send, wpisujemy dowolny tekst i wciskamy Send ASCII. Na końcu danych które chcemy wysłać do naszego HC-05 muszą znajdować się znaki CR oraz LF. Należy dokonać stosownych ustawień w terminalu RealTerm według poniższego rysunku.

31-307-5opis.jpg



Rys.5

Ponieważ linie UART RX i TX zostały ze sobą połączone, to każda dana wysłana z terminala do modułu HC-05 natychmiast do niego wraca. Na terminalu widzimy napis TEST który został przez nas wysłany do HC-05.


Podłączenie dwóch modułów HC-05 ze sobą (bezprzewodowa magistrala UART).


Do wykonania bezprzewodowej magistrali UART wykorzystamy dwa moduły HC-05. Jeden z nich jako Master zostanie podłączony do płytki Arduino Uno R3. Zadaniem tego zestawu będzie nawiązanie połączenia z drugim HC-05 pracujacym jako slave i wysłanie do niego danych. Drugi moduł HC-05 zostanie połączony poprzez przejściówkę TTL - USB do komputera. Zadaniem tego HC-05 będzie odebranie danych z HC-05 pracującego jako master i wyświetlenie tych danych na terminalu RealTerm.

31-302-1.jpg


Rys.6. Przejściówka z portu UART do USB.


Pierwsza rzecz do sposób podłączenia modułów HC-05 do Arduino oraz do przejściówki UART - USB. Moduły HC-05 posiadają własny regulator napięcia 3,3V. Mogą one być zasilane napięciem z zakresu 3.3V - 6V jednak wyjścia UART pracują z napięciem 3,3V. Natomiast logika Arduino czy przejściówki UART-USB jest 5V. Podłączenie pinu TX modułu HC-05 do pinu RX Arduino czy przejściówki UART-USB jest dozwolone, gdyż poziom napięcia 3,3 V będzie odczytany przez Arduino lub przejście UART-USB jako stan logiczny 1. Jednak podłączenie pinu TX Arduino czy przejściówki do pinu RX HC-05 grozi już jego uszkodzeniem. W związku z tym należy zastosować układy konwertujące napięcie 3,3 - 5V. Zalecanym sposobem konwersji napięcia jest konwerter poziomów logicznych:

31-340-1.jpg


Rys.7. Konwerter poziomów logicznych 3,3 - 5V.


Innym sposobem konwersji napięć jest zastosowanie dzielnika napięcia za pomocą dwóch rezystorów 1k i 2k.
W naszym przykładzie zastosujemy oba sposoby konwersji napięć. HC-05 jako master zostanie podłączony do płytki Arduino po przez konwerter poziomów, a HC-05 jako slave do przejścia UART - USB za pomocą dzielnika rezystorów.

31-307-6opis.jpg




Rys.8. Podłączenie HC-05 do Arduino przez konwerter poziomów logicznych 3,3 - 5V. HC-05 w trybie master.

31-307-7opis.jpg



Rys.9. Podłączenie HC-05 do przejścia UART - USB przez dzielnik rezystorowy. HC-05 jako slave (tak samo podłącza się drugi HC-05 na czas skonfigurowania jako master).
 

Jak zostało wspomniane wcześniej, aby uzyskać połączenie dwóch modułów HC-05, należy skonfigurować jeden z modułów jako master. Domyślnie moduły są ustawione jako slave. Aby ustawić HC-05 jako master najprościej jest podłączyć go przez przejście UART - USB do komputera (jak na rysunku 9), uruchomić w trybie Command Mode i za pomocą komend AT dokonać odpowiedniej konfiguracji. Ponieważ to HC-05 podłączone do płytki Arduino ma być skonfigurowany jako master, więc na czas konfiguracji ten moduł HC-05 musimy podpiąć do komputera analogicznie jak moduł slave na rysunku 9.

Jest kilka sposobów na uruchomienie HC-05 w trybie Command Mode:

1. Przed podaniem zasilania na moduł, wcisnąć i trzymać mikroprzełącznik znajdujący się na module. Po naciśnięciu mikroprzełącznika podajemy zasilanie. Dioda LED czerwona powinna zacząć migać co ok 3 sekundy. Moduł jest uruchomiony w trybie Command Mode. Teraz uruchamiamy terminal RealTerm. W terminalu w zakładce Port ustawiamy numer portu na jakim zainstalowała nam się przejściówka UART - USB (w naszym przypadku jest to COM23). Prędkość transmisji Baud ustawiamy jako 38400. Nie ma możliwości zmiany prędkości transmisji. Uruchamiając HC-05 w trybie Command Mode w powyższy sposób zawsze prędkość transmisji na porcie UART jest 38400.

31-307-8opis.jpg


Rys.10

Teraz przystępujemy do właściwej konfiguracji za pomocą komend AT: W zakładce Send w RealTerm wpisujemy kolejno:

- AT - sprawdzamy czy jesteśmy poprawnie podłączeni. Na terminalu powinno się pojawić OK
- AT+UART? - sprawdzamy jaka jest ustawiona prędkość transmisji BlueTooth. Powinno się pojawić : +UART:9600,0,0. Jeżeli jest inaczej to wpisujemy AT+UART=9600,0,0 i sprawdzamy jeszcze raz komendą AT+UART?
- AT+ROLE=1 - ustawiamy tryb master. Sprawdzamy komendą AT+ROLE?. Powinno się pojawić +ROLE:1. Komenda AT+ROLE=0 ustawia z powrotem tryb slave.
- AT+CMODE=1 - powoduje że moduł HC-05 będzie się podłączał do jakiegokolwiek modułu slave który znajduje się w jego zasięgu (niezbyt bezpieczne połączenie ale o tym później). Sprawdzamy poprawność ustawień komendą AT+CMODE?. Powinno się pokazać  +CMODE:1. 

31-307-9opis.jpg


Rys.10

Mamy ustawiony HC-05 w trybie master.

2. Przed podaniem zasilania na moduł HC-05 podajemy napięcie 3,3V na pin 34 (patrz Rys 1). Następnie włączamy zasilanie modułu. Uzyskujemy dokładnie taki sam efekt jak w punkcie 1. Dalsza konfiguracja przebiega analogicznie jak w punkcie 1.

3. Po podaniu zasilania na moduł HC-05 wciskamy i trzymamy mikroprzełącznik. Jak długo będziemy trzymać wciśnięty mikroprzełącznik tak długo będziemy w trybie Command Mode. Jeżeli go puścimy, przejdziemy z powrotem do trybu Data Mode. Wchodząc do trybu Command Mode w ten sposób, port UART w naszym HC-05 będzie miał prędkość taką jaką mamy obecnie w module ustawioną (domyślnie lub za pomocą komendy AT+UART=xxxx,x,x ). Terminal RealTerm podłączamy zatem ustawiając prędkość 9600 baud (taka mamy domyślną w module i taką będziemy używać do naszej transmisji bezprzewodowej). Sposób konfiguracji do trybu master jest analogiczny jak w punkcie 1.

4. Po podaniu zasilania na moduł HC-05 podajemy napięcie 3,3V na pin 34 (patrz Rys.1). Jak długo napięcie 3,3V będzie występować na pinie 34, tak długo będziemy w trybie Command Mode. Ten tryb ma zastosowanie gdy np.  oprogramowanie sterujące pracą modułu HC-05 oprócz wysyłania danych przez bluetooth musi dokonać zmian w w jego konfiguracji. Sposób konfiguracji do trybu master jest analogiczny jak w punkcie 1.

Ok. Teraz skoro mamy już ustawiony jeden z naszych HC-05 jako master, możemy przetestować naszą komunikację bluetooth. Zatem skonfigurowany jako master HC-05 podłączamy jak na rysunku 8 do płytki Arduino przez konwerter napięć. HC-05 jako slave podłączamy jak na rysunku 9 do komputera.


Do naszego Arduino wgrywamy prosty program wysyłający dowolne dane przez port UART do naszego HC-05 w trybie master.

#include

SoftwareSerial BTserial (10, 11);  //RXD, TXD

void setup() {
  // put your setup code here, to run once:
  BTserial.begin (9600);
  
}

void loop() {
  // put your main code here, to run repeatedly:
  BTserial.write("Witamy ");
  delay(1000);
}

 

Po uruchomieniu obu modułów, powinny się zapalić diody LED podłączone do wyjść STATE. Jeżeli diody podłączone do obu modułów się zapalą oznacza to że połączenie modułów ze sobą zostało zakończone sukcesem.
Teraz tylko należy uruchomić RealTerm na porcie na którym mamy naszą przejściówkę UART - USB z podłączonym do niej modułem HC-05 jako slave  (COM23 w naszym przypadku). Prędkość transmisji oczywiście 9600. Na terminalu powinniśmy zobaczyć wyświetlający się co 1 sekundę napis "Witamy".

31-307-10opis.jpg

Program w Arduino po magistrali UART przesyła do HC-05 skonfigurowanego jako master dane w postaci napisu "Witamy". HC-05 master wysyła radiowo te dane do sparowanego ze sobą HC-05 skonfigurowanego jako slave. Następnie slave odebrane dane przesyła przez swój port UART do przejściówki UART - USB i dalej do komputera . Odebrane dane widzimy na konsoli terminala.

31-301
42 Przedmioty
Nowy
Do pobrania Do pobrania

Zestaw komend AT

(83.68KB) Do pobrania

Nota katalogowa BC417143B

(2.65MB) Do pobrania

Nota katalogowa

(897.42KB) Do pobrania