Co to jest moduł bluetooth? Moduł Bluetooth hc 06, rozkład pinów

Jesteśmy zajęci tworzeniem aplikacji na Androida do kontrolowania obciążeń Arduino. Ale, jak wszyscy rozumiecie, po prostu nie można połączyć jednego z drugim - potrzebny jest kanał komunikacji, a jaki mamy najbardziej dostępny i najtańszy kanał? Oczywiście Bluetooth! Porozmawiamy o tym dalej.
Dziś rozwiązujemy problemy produkcyjne - podłączenie modułu Bluetooth HC-06. Główną różnicą w stosunku do HC-05 jest to, że jest uproszczony i zapewnia jedynie niezbędne minimalne możliwości.

Ogólnie rzecz biorąc, HC-06 można uznać za bezprzewodowy przedłużacz UART. Ponieważ łączymy się z nim z komputera PC przez Bluetooth, widzimy go jako port COM, a podłączając się do styków mamy czysty UART. Prawie wszystko, co przychodzi z jednej strony, wychodzi z drugiej. Z wyjątkiem poleceń AT z kontaktów.

Polecenia AT są dziedzictwem starych modemów z 1977 roku. Są to polecenia krótkie, np. „AT”, „AT-NAME”, „AT-PIN”. Zwykle wprowadzanie polecenia kończy się klawiszem Enter. Ale tym razem wszystko jest trochę inne i całe polecenie musi zostać odebrane w ciągu około jednej sekundy. Z tego powodu programy, które pozwalają nam pisać bezpośrednio z klawiatury na port, nie nadają się do konfiguracji (można spróbować ze schowka, ale jest szansa, że ​​będzie kiepsko). Potrzebujemy możliwości przesłania całego ciągu znaków na sygnał.

Uzbrojony Zestaw narzędzi portu COM, ustawiamy prędkość na 9600 i odpowiedni numer portu. Następnie przygotowujemy pierwszą linię „AT”. Wysyłamy go i otrzymujemy odpowiedź „OK”. To już jest dobry znak. Nie pomyliliśmy RX z TX i nie pomyliliśmy się z prędkością. Następnie prawdopodobnie będziesz chciał nadać swojemu modułowi nazwę. Piszemy: „AT-NAMEhome” i w odpowiedzi otrzymujemy coś w rodzaju „OKhome”. Zmieniamy kod dostępu w następujący sposób: „AT-PIN010203” i otrzymujemy: „OKsetpin”
No więc. To kończy wstępną konfigurację.

Nie przegap aktualizacji! Zapisz się do naszej grupy

Moduł Bluetooth HC-05 łączy się poprzez magistralę UART i może wykonywać polecenia AT. Komenda AT to ciąg znaków zaczynający się od liter „AT” (z j Na uwaga – „uwaga”). Moduł wykonuje otrzymane polecenie i odsyła odpowiedź (wynik polecenia), która jest jednocześnie ciągiem znaków. W modułach Bluetooth HC-05 każde polecenie (jak również odpowiedź) musi kończyć się znakami nowej linii „\r\n”.

Połączenie:

  • Modułem Bluetooth HC-05 można sterować zarówno z komputera, jak i poprzez mikrokontroler np. Arduino. Pin RX modułu łączymy z pinem TX, natomiast pin TX modułu łączymy z pinem RX urządzenia, z którego będzie on sterowany.
  • Aby podłączyć moduł do komputera(bez mikrokontrolerów) potrzebny będzie adapter USB-UART lub adapter RS232-UART lub programator z pinami TX RX, zamiast adaptera USB-UART można zastosować płytkę Arduino zgodnie z opisem w artykule. Aby wysyłać polecenia do modułu należy zainstalować program terminalowy. Jednym z tych terminali jest swobodnie rozpowszechniany program Termite z obsługą języka rosyjskiego.
  • Aby podłączyć moduł do Arduino Można wykorzystać sprzętową lub programową magistralę UART. W przypadku korzystania z magistrali sprzętowej moduł podłącza się do wskazanych na płytce pinów TX i RX. W przypadku korzystania z magistrali programowej moduł podłącza się do przypisanych pinów TX i RX Arduino.

Ustawienie:

Moduł Bluetooth HC-05 będzie mógł odbierać polecenia tylko wtedy, gdy poprawnie skonfigurowane zostaną następujące parametry portu szeregowego:

  • NumerPort: Można to sprawdzić eksperymentalnie, odłączyć przejściówkę lub Arduino, sprawdzić jakie porty są dostępne. Podłącz adapter lub Arduino i ponownie sprawdź, jakie porty są dostępne. Port, który się pojawi, jest ten sam.
  • Prędkość przesyłu danych: W trybie normalnym moduł Bluetooth HC-05 zachowuje ostatnio ustawioną prędkość transmisji danych, ale domyślnie jest to 38400 bps (rzadko 9600 bps). Jeśli obie prędkości nie są odpowiednie, zapoznaj się z uwagą na końcu artykułu.
  • Parametry transmisji danych: Moduł zapamiętuje ostatnio ustawione parametry transmisji danych. Domyślne wartości parametrów: liczba bitów w pakiecie - 8, rozmiar bitu stopu = 1, brak kontroli parzystości.
  • Przesłany tekst: Musisz ustawić opcję „dodaj znaki CR i LF(NL)” są to znaki nowego wiersza „\r\n”, których nie możesz umieścić na końcu poleceń AT.

Aby skonfigurować te parametry w programie Termite należy kliknąć na przycisk „Ustawienia”. W tym samym oknie możesz ustawić język rosyjski.

W przypadku korzystania z Arduino numer portu wskazany jest w zakładce „Narzędzia”. Domyślnie używane są ustawienia przesyłania danych. Aby dodać znaki NL i CR, użyj menu w prawym dolnym rogu monitora szeregowego.

Badanie:

Po każdym podłączeniu zasilania lub ponownym uruchomieniu modułu, przed wysłaniem poleceń należy krótko nacisnąć przycisk modułu. Jeżeli moduł nie posiada przycisku należy na krótko podać poziom wysoki na pin K. Po czym moduł pozostanie w trybie normalnym, ale będzie akceptował polecenia AT. Oprócz trybu normalnego moduł może pracować w trybie poleceń AT. Sposób wejścia w ten tryb i czym różni się on od trybu normalnego opisano poniżej w sekcji uwag.

Aby sprawdzić komunikację z modułem Bluetooth należy wysłać polecenie testowe NA(Wprowadź tekst NA i naciśnij Enter). Jeżeli połączenie zostanie nawiązane poprawnie moduł odpowie OK. Następnie możesz wysyłać inne polecenia AT.

Komendy AT:

Jeśli program terminala wymaga dodania symboli CR i LF lub NL i CR, to nie ma potrzeby wstawiania symboli „\r\n” w poleceniach!
Polecenia mogą być zwykłe: AT+COMMAND\r\n , zapytania: AT+COMMAND?\r\n lub ustawienia: AT+COMMAND=PARAMETER(S)\r\n .

Polecenie AT: Odpowiedź: Zamiar:
NA NA\r\n OK\r\n Polecenie testowe:
Służy do sprawdzania komunikacji z modułem.
RESETOWANIE W+RESETUJ\r\n OK\r\n Polecenie miękkiego resetu modułu:
Moduł zachowuje się jak po krótkiej przerwie w dostawie prądu.
WERSJA W wersji+?\r\n +WERSJA: WERSJA\r\n
OK\r\n
Zapytanie o wersję oprogramowania modułu:
Moduł zwraca wersję jako ciąg znaków o długości do 32 bajtów.
Przykładowa odpowiedź: +VERSION:hc01.comV2.1\r\n OK\r\n
W+ORGL W+ORGL\r\n OK\r\n Resetowanie ustawień użytkownika:
Moduł resetuje następujące ustawienia:
KLASA=0, IAC=9e8b33, ROLA=0, CMODE=0, UART=38400,0,0, PSWD=1234, NAZWA=hc01.com.
ADRES AT+ADDR?\r\n +ADRES: ADRES\r\n
OK\r\n
Zapytanie o adres modułu:
Moduł zwraca trzy części swojego adresu NAP:UAP:LAP oddzielone dwukropkiem.
Każda część składa się z cyfr szesnastkowych.
Przykładowa odpowiedź: +ADDR:1234:56:789ABC\r\n OK\r\n
NAZWA W+NAZWA?\r\n +NAZWA: NAZWA\r\n
OK\r\n
Nazwa modułu zapytania/ustawienia:
Nazwa modułu jest reprezentowana jako ciąg znaków o długości do 32 bajtów.
Przykładowa odpowiedź: +NAME:iArduino\r\n OK\r\n
Przykład instalacji: AT+NAME=iArduino\r\n
Niektóre moduły reagują na polecenie AT+NAME?\r\n tylko po naciśnięciu przycisku modułu lub wejściu K w stanie wysokim.
W+NAZWA= NAZWA\r\n OK\r\n
NAZWA AT+RNAME? ADRES\r\n +NAZWA: NAZWA\r\n
OK\r\n
Żądanie nazwy znalezionego urządzenia Bluetooth:
Adres wprowadza się po spacji, a części adresu (NAP,UAP,LAP) oddziela się przecinkiem. Moduł zwraca nazwę znalezionego urządzenia Bluetooth w obszarze zasięgu, którego adres znajdował się w żądaniu.
Przykład zapytania: AT+NAME? 1234.56.789ABC\r\n
Przykładowa odpowiedź: +RNAME:iArduino\r\n OK\r\n
ROLA W+ROLA?\r\n +ROLA: ROLA\r\n
OK\r\n
Żądaj/ustaw rolę modułu:
Rolę modułu reprezentuje liczba:
0 - slave, 1 - master, 2 - slave w cyklu*.
Przykładowa odpowiedź: +ROLA:1\r\n
Przykład instalacji: AT+ROLE=0\r\n
W+ROLA= ROLA\r\n OK\r\n
KLASA W+KLASY?\r\n +KLASA: TYP\r\n
OK\r\n
Zapytanie/ustawienie typu urządzenia:
Typ urządzenia reprezentowany jest przez 32-bitową liczbę, za pomocą której można określić przeznaczenie modułu: klawiatura Bluetooth, mysz Bluetooth, zestaw słuchawkowy...
Przykład ustawienia: AT+CLASS=0\r\n
W+KLASA= TYP\r\n OK\r\n
IAC AT+IAC?\r\n +IAK: KOD\r\n OK\r\n Żądanie/ustawianie współdzielonego kodu dostępu GIAC:
Kod jest reprezentowany jako liczba 32-bitowa i służy do wykrywania urządzeń Bluetooth.
W roli mastera przy pomocy tego hasła moduł uzyska dostęp do innych urządzeń Bluetooth w celu ich wyszukiwania (odpytywania), a w roli slave przy pomocy tego hasła będzie zapewniony dostęp do odpytywania modułu przez inne mistrzowie.
Przykładowa odpowiedź: +IAC:9e8b33\r\n OK\r\n
Przykład instalacji: AT+IAC=9e8b33\r\n
AT+IAC= KOD\r\n OK\r\n
Lub
NIEPOwodzenie\r\n
INQM AT+INQM?\r\n +INQM: TRYB,PRZEŁĘCZ,CZAS\r\n
OK\r\n
Zapytanie / Ustaw tryb odpytywania modułu:
Używane parametry to ustawienia polecenia wyszukiwania (odpytywania) dla innych urządzeń Bluetooth.
- Tryb wyszukiwania jest reprezentowany przez liczbę:
0-standard, 1-wyszukiwanie według intensywności sygnału.
- Ilość jest reprezentowana przez liczbę określającą maksymalną liczbę znalezionych urządzeń Bluetooth, po przekroczeniu której należy przerwać wyszukiwanie.
- Czas wyszukiwania określa limit czasu, po którym wyszukiwanie zostaje zatrzymane. Rzeczywisty czas wyszukiwania w sekundach jest równy określonej liczbie pomnożonej przez 1,28.
Przykładowa odpowiedź: +INQM:1,1,48\r\n OK\r\n
Przykład instalacji: AT+INQM:1,1,48\r\n
AT+INQM= TRYB, LICZBA, CZAS\r\n OK\r\n
Lub
NIEPOwodzenie\r\n
PSWD AT+PSWD?\r\n +PSWD: KOD\r\n
OK\r\n
Żądanie/ustawienie kodu PIN:
Kod dostępu jest reprezentowany jako ciąg znaków o długości do 16 bajtów.
Kod modułu w roli slave jest hasłem dostępu do aktualnego modułu.
Kod modułu jako urządzenia master jest hasłem dostępu do zewnętrznych urządzeń Bluetooth.
Przykładowa odpowiedź: +PSWD:1234\r\n OK\r\n
Przykład instalacji: AT+PSWD=1234arduino\r\n
AT+PSWD= KOD\r\n OK\r\n
UART AT+UART?\r\n +UART: SKOR,ZATRZYMYWAĆ SIĘ,PROW\r\n
OK\r\n
Zapytanie/ustawienie szybkości UART:
Prędkość jest reprezentowana przez liczbę bitów/s
Bit stopu jest reprezentowany przez liczbę: 0 - jeden, 1 - dwa
Czek jest reprezentowany przez liczbę: 0 - brak czeku,
1 - nieparzysta kontrola parzystości, 2 - parzysta kontrola parzystości.
Przykładowa odpowiedź: +UART:38400,0,0\r\n OK\r\n
Przykład instalacji: AT+UART=38400,0,0\r\n
AT+UART= PRĘDKOŚĆ, ZATRZYMAJ, SPRAWDŹ\r\n OK\r\n
CMODE AT+CMODE?\r\n +CMOD: TRYB\r\n
OK\r\n
Żądaj/ustaw tryb połączenia:
Tryb jest reprezentowany przez liczbę:
0 - moduł jako master łączy się tylko z urządzeniem Bluetooth, którego adres jest podany komendą AT+BIND.
1 - moduł jako master łączy się z dowolnym urządzeniem slave Bluetooth.
2 - moduł jako slave pracuje w cyklu*
Przykładowa odpowiedź: +CMOD:0\r\n OK\r\n
Przykład instalacji: AT+CMOD=1\r\n
AT+CMODE= Nowoczesny OK\r\n
WIĄZAĆ AT+WIĄZANIE?\r\n +WIĄZANIE: ADRES\r\n
OK\r\n
Poproś/ustaw stały adres:
Jeżeli moduł pełni rolę mastera (ROLE=1) i ustawiony jest tryb połączenia na stały adres (CMODE=0), to połączy się tylko z urządzeniem Bluetooth, którego adres zostanie określony tą komendą.
Wprowadzane są części adresu: przy ustawianiu - oddzielone przecinkiem, a przy odbieraniu - oddzielone dwukropkiem.
Przykładowa odpowiedź: +BIND:1234:56:789ABC\r\n OK\r\n
Przykład instalacji: AT+BIND=0,0,0\r\n
AT+WIĄZANIE= ADRES\r\n OK\r\n
POLARNY AT+POLAR?\r\n +POLARNY: DZIENNIK,DZIENNIK\r\n
OK\r\n
Zapytanie/ustawienie aktywnego poziomu logicznego, aby włączyć diody LED:
Polaryzacja jest reprezentowana przez liczbę 0 lub 1 odpowiadającą aktywnemu poziomowi logicznemu.
Pierwszy parametr określa poziom logiczny załączenia diody LED podłączonej do pinu PIO8 (wyświetla tryb pracy), drugi zaś dla diody LED podłączonej do pinu PIO9 (wyświetla stan połączenia).
Przykładowa odpowiedź: +POLAR:1,1\r\n OK\r\n
Przykład instalacji: AT+POLAR=1,1\r\n
W+POLARNY= LOG,LOG\r\n OK\r\n
PIO AT+PIO= LICZBA,POZIOM\r\n OK\r\n Ustawianie poziomu logicznego PIO:
Umożliwia ustawienie poziomu logicznego na pinie PIO. Numer PIN jest reprezentowany przez liczbę od 2 do 11, z wyjątkiem 8 i 9. Poziom jest reprezentowany przez liczbę 0 lub 1.
Przykład instalacji: AT+PIO=11.0\r\n
MPIO AT+MPIO?\r\n +MPIO: NUMER\r\n
OK\r\n
Zapytanie/ustawienie poziomów logiki PIO:
Umożliwia sprawdzenie lub ustawienie poziomów logicznych na wszystkich pinach PIO jednocześnie.
Poziomy są reprezentowane przez liczbę szesnastkową, której każdy bit odpowiada poziomowi pinów PIO.
Przykładowa odpowiedź: +MPIO:1F0\r\n OK\r\n
Przykład instalacji: AT+MPIO:CFC\r\n
AT+MPIO= NUMBER\r\n OK\r\n
IPSCAN AT+IPSCAN?\r\n +IPSCAN: A,B,W,G\r\n
OK\r\n
Żądaj/ustaw parametry skanowania IP:
A - interwał skanowania
B - czas skanowania
B - odstępy między stronami
G - liczba stron
Przykładowa odpowiedź: +IPSCAN:1024,512,1024,512\r\n OK\r\n
Przykład instalacji: AT+IPSCAN:1024,512,1024,512\r\n
AT+IPSCAN= A, B, C, D\r\n OK\r\n
POWĄCHAĆ AT+SNIF?\r\n +WĄCH: A,B,W,G\r\n
OK\r\n
Żądanie/ustawianie parametrów trybu oszczędzania energii:
A - maksymalny czas
B - czas minimalny
B - okres powtarzania
G - przekroczenie limitu czasu
Przykładowa odpowiedź: +SNIFF:0,0,0,0\r\n OK\r\n
Przykład instalacji: AT+SNIFF=0,0,0,0\r\n
W+SNIFF= A, B, C, D\r\n OK\r\n
ENSNIFF W+ENSNIFF= ADRES\r\n OK\r\n Przejście do trybu oszczędzania energii:

Przykładowe polecenie: AT+ENSNIFF=1234,56,789ABC\r\n
EXSNIFF AT+EXSNIFF= ADRES\r\n OK\r\n Wychodzenie z trybu oszczędzania energii:
Części adresu wprowadzane są oddzielone przecinkami (NAP,UAP,LAP)
Przykładowe polecenie: AT+EXSNIFF=1234,56,789ABC\r\n
SENM AT+SENM?\r\n +SENM: SEKRET,SZYFR\r\n
OK\r\n
Zapytanie/ustawienie parametrów bezpieczeństwa:
Tryb prywatności jest reprezentowany przez liczbę:
0 - wyłączone
1 - połączenie niezabezpieczone
2 - ochrona na poziomie usługi
3 - zabezpieczenie poziomu połączenia
4 - tryb nieznany
Tryb szyfrowania jest reprezentowany przez liczbę:
0 - brak szyfrowania
1 - szyfrowany jest tylko ruch PTP
2 - cały ruch jest szyfrowany
Przykładowa odpowiedź: +SENM:0,0\r\n OK\r\n
Przykład instalacji: AT+SENM:0,0\r\n
AT+SENM= TAJEMNICA, SZYFR\r\n OK\r\n
PMSAD AT+PMSAD= ADRES\r\n OK\r\n Usuwanie urządzenia z listy parowania:
Usunięcie urządzenia Bluetooth z listy spowoduje konieczność ponownego sparowania, aby się z nim połączyć.
Części adresu urządzenia, które mają zostać usunięte, wpisujemy oddzielone przecinkami (NAP,UAP,LAP)
Przykładowe polecenie: AT+PMSAD=1234,56,789ABC\r\n
RMAAD AT+RMAAD\r\n OK\r\n Usuwanie wszystkich urządzeń z listy par:
Wyczyszczenie tej listy spowoduje konieczność ponownego sparowania z urządzeniami Bluetooth, aby się z nimi połączyć.
FSAD AT+FSAD= ADRES\r\n OK\r\n
Lub
NIEPOwodzenie\r\n
Wyszukiwanie urządzenia na liście par:
Jeżeli na liście znajduje się urządzenie Bluetooth o podanym adresie moduł zwróci OK\r\n w przeciwnym razie FAIL\r\n .
Części adresu wprowadzane są oddzielone przecinkami (NAP,UAP,LAP)
Przykładowe żądanie: AT+FSAD=1234,56,789ABC\r\n
ADCN AT+ADCN?\r\n +ADCN: ILOŚĆ\r\n
OK\r\n
Zapytanie o liczbę urządzeń na liście par:
W przypadku utworzenia pary master-slave dane o tej parze automatycznie umieszczane są na liście par i przy kolejnych połączeniach (nawet po zaniku zasilania) nie ma konieczności ponownego zestawiania pary.
Przykładowa odpowiedź: +ADCN:10\r\n OK\r\n
MRAD AT+MRAD?\r\n +MRAD: ADRES\r\n
OK\r\n
Żądanie adresu urządzenia z listy par:
Moduł zwróci adres urządzenia Bluetooth z listy par, z którymi nastąpiło ostatnie pomyślne połączenie.
Części adresu są oddzielone dwukropkiem (NAP:UAP:LAP)
Przykładowa odpowiedź: +MRAD:1234:56:789ABC\r\n OK\r\n
PAŃSTWO AT+STAN?\r\n +STAN: STATUS\r\n
OK\r\n
Zapytanie o status modułu:
Moduł zwróci swój aktualny stan w postaci ciągu znaków:
INICJALIZOWANY - inicjalizacja
GOTOWE - gotowe
PAIRABLE - tworzenie par
PAROWANE - powstaje para
PYTANIE - prośba
ŁĄCZENIE - połączenie
POŁĄCZONY - połączony
ODŁĄCZONY - rozłączony
NUKNOW – stan nieznany
Przykładowa odpowiedź: +STAN:POŁĄCZONY\r\n OK\r\n
W TYM AT+INIT\r\n OK\r\n
Lub
NIEPOwodzenie\r\n
Inicjowanie profilu SPP:
Profil SPP emuluje port szeregowy.
INQ AT+INQ\r\n +INQ:ADRES,TYP,SYGNAŁ\r\n
+INQ:ADRES,TYP,SYGNAŁ\r\n
...
+INQ:ADRES,TYP,SYGNAŁ\r\n
Wyszukaj (ankieta) urządzenia Bluetooth:

Moduł wyszukuje urządzenia Bluetooth w zasięgu i wyświetla każdy znaleziony moduł w nowej linii. Tryb wyszukiwania (odpytywania) ustawia się komendą AT+INQM, kod zapytania ustawia się komendą AT+IAC, typ wyszukiwanych urządzeń wskazuje się komendą AT+CLASS. Wyszukiwanie kończy się po osiągnięciu maksymalnej liczby znalezionych urządzeń Bluetooth, przekroczeniu limitu czasu lub po wydaniu polecenia AT+INQC.
Przykładowa odpowiedź: +INQ:1234:56:789ABC,240404,7FFF
INQC AT+INQC\r\n OK\r\n Zakończ wyszukiwanie (ankietę) urządzeń Bluetooth:
Kończy wyszukiwanie urządzeń Bluetooth inicjowane poleceniem AT+INQ przed terminem
PARA AT+PARA= ADRES, LIMIT CZASU\r\n OK\r\n
Lub
NIEPOwodzenie\r\n
Sparuj z urządzeniem Bluetooth:
Parowanie lub parowanie urządzeń Bluetooth jest inicjowane przez urządzenie główne.
Limit czasu jest podawany jako liczba dziesiętna w sekundach.
Jeżeli para zostanie utworzona to informacja o niej zostanie automatycznie wpisana na listę par, moduł odpowie OK\r\n i wtedy będzie można podłączyć urządzenie Bluetooth komendą AT+LINK. Jeżeli para nie zostanie utworzona (np. kod PIN nie pasuje lub upłynął limit czasu), moduł odpowie FAIL\r\n .
Przykładowe polecenie: AT+PAIR=1234,56,789ABC,10\r\n
POŁĄCZYĆ W+LINK= ADRES\r\n OK\r\n
Lub
NIEPOwodzenie\r\n
Połącz się z urządzeniem Bluetooth:
Po wykonaniu tego polecenia można komunikować się z podłączonym urządzeniem Bluetooth.
Polecenie dostępne jest dla modułu jako lidera.
Przykładowe polecenie: AT+LINK=1234,56,789ABC\r\n
DYSK AT+DYSK\r\n +DYSK: WYNIK\r\n
OK\r\n
Odłącz od urządzenia Bluetooth:
Polecenie nakazuje modułowi rozłączenie się z urządzeniem Bluetooth, z którym nawiązano połączenie. Po odłączeniu urządzenia Bluetooth informacja o nim zostaje zapisana na liście par. Jeśli zajdzie potrzeba ponownego połączenia się z tym urządzeniem, parowanie nie będzie konieczne (chyba że urządzenie Bluetooth zostanie celowo usunięte z listy par).
Po wykonaniu polecenia moduł odpowie wynikiem jego wykonania:
SUKCES - sukces
LINK_LOSS – połączenie utracone
NO_SLC - brak SLC
TIMEOUT - upłynął limit czasu
BŁĄD - błąd
Przykładowa odpowiedź: +DYSK:SUCCESS\r\n OK\r\n

* Niewolnik w pętli- jest to rola modułu slave w której odsyła wszystko co otrzyma od mastera.
** Moduł reaguje na niektóre polecenia dopiero po naciśnięciu przycisku modułu lub gdy na pinie K występuje wysoki poziom.

Opis błędów generowanych przez moduł:

Jeśli wyślesz polecenie, którego moduł nie zna, nie może wykonać lub polecenie ma nieprawidłowe argumenty, moduł zwróci ciąg „BŁĄD:( NUMER)”, gdzie po podanej liczbie szesnastkowej można określić na co moduł „przysięga”.

Błąd nr. Opis błędu
0 Nieprawidłowe polecenie AT (nie ma takiego polecenia)
1 Domyślny wynik
2 Błąd podczas zapisywania hasła
3 Nazwa urządzenia jest za długa (więcej niż 32 bajty)
4 Nie określono nazwy urządzenia
5 Część adresu NAP jest za długa (więcej niż 4 cyfry szesnastkowe)
6 Część adresu UAP jest za długa (więcej niż 2 cyfry szesnastkowe)
7 Część adresu LAP jest za długa (więcej niż 6 cyfr w formacie szesnastkowym)
8 Nie określono maski portu PIO
9 Nie określono numeru PIN PIO
A Nie określono typu urządzenia (klasy).
B Typ urządzenia (klasa) jest za długi
C Ogólny kod dostępu IAC (Inquire Access Code) nie jest określony
D IAC (Inquire Access Code) jest za długi
mi Nieprawidłowy kod dostępu zapytania
F Nie określono hasła (lub hasło jest puste)
10 Hasło jest za długie (więcej niż 16 bajtów)
11 Nieprawidłowa rola modułu
12 Nieprawidłowa szybkość transmisji
13 Nieprawidłowy rozmiar bitu stopu
14 Nieprawidłowe ustawienie bitu parzystości
15 Urządzenia nie ma na liście par (lista sparowanych urządzeń Bluetooth)
16 Nie zainicjowano profilu portu szeregowego (SPP).
17 Ponowna inicjalizacja profilu SPP (SPP, profil portu szeregowego)
18 Nieprawidłowy tryb odpytywania urządzenia Bluetooth
19 Czas odpytywania jest za długi
1A Nie określono adresu urządzenia Bluetooth
1B Nieprawidłowy tryb bezpieczeństwa (tajność)
1C Nieprawidłowy tryb szyfrowania

Notatka:

Jeżeli od razu po włączeniu modułu (doprowadzenie zasilania) zostanie naciśnięty przycisk lub zostanie podany wysoki poziom na wejście K, moduł przejdzie w tryb poleceń AT. W tym trybie moduł nie będzie się łączył z innymi modułami, jednak tryb ten ma stałą prędkość = 38400 bps. Jeżeli podczas konfiguracji, w normalnym trybie pracy modułu, nie udało Ci się określić prędkości modułu, możesz wejść w ten tryb i ustawić nową prędkość. Nowo ustawiona prędkość będzie obowiązywać tylko w trybie normalnym, w tym celu należy zrestartować moduł bez przytrzymywania przycisku i bez podawania wysokiego poziomu na wejście K w momencie załączenia. Pamiętaj, że w trybie normalnym nie wcześniej niż pół sekundy po włączeniu zasilania (lub ponownym uruchomieniu) należy krótko nacisnąć przycisk lub podać krótkotrwały wysoki poziom na wejście K modułu, w przeciwnym razie nie przyjmie AT polecenia.

Jeśli chcesz mieć możliwość programowego „wciśnięcia” przycisku, ale Twój moduł nie posiada pinu K, użyj polecenia AT+PIO=11,POZIOM\r\n , gdzie poziom jest reprezentowany przez cyfrę 1 lub 0 odpowiadającą ustawionemu poziomowi logicznemu. ( AT+PIO=11,0\r\n – przycisk zwolniony , AT+PIO=11,1\r\n – przycisk wciśnięty).

Niektóre moduły mają pin En, który steruje zasilaniem i jest podłączony do Vcc. Jeśli do pinu En zostanie przyłożony niski poziom logiczny, zasilanie chipów zostanie wyłączone. Ten pin może zostać użyty do programowego wejścia w tryb poleceń AT. Jeżeli od razu po usunięciu poziomu niskiego z pinu En wydamy komendę AT+PIO=11,1\r\n będzie to równoznaczne z włączeniem modułu z wciśniętym przyciskiem.

Tworzenie urządzenia podrzędnego oczekującego na połączenie urządzenia głównego:

  • AT+DYSK
  • W+ORGL
  • AT+RMAAD\r\n - Wyczyść listę par (urządzeń autoryzowanych), aby to, które zostało odłączone, nie łączyło się z modułem.
  • W+NAZWA= iArduino\r\n - Ustaw nazwę modułu (maks. 32 znaki).
  • AT+PSWD= 1234\r\n - Ustaw kod PIN umożliwiający połączenie z modułem (nie więcej niż 16 znaków).
  • AT+ROLA=0\r\n - Ustaw moduł w roli slave (jeśli nie został zainstalowany podczas resetowania ustawień użytkownika).
  • W+RESETUJ\r\n — Załaduj ponownie moduł.

Nie wcześniej niż pół sekundy po ponownym uruchomieniu (za pomocą polecenia W+RESETUJ\r\n ) należy krótko nacisnąć przycisk lub podać krótkotrwały wysoki poziom na wejście K modułu, w przeciwnym razie moduł nie przyjmie nowych poleceń AT.

Jeśli moduł pełniący rolę wiodącą jest połączony z modułami podrzędnymi po adresie, a nie po nazwie, to adres tego modułu (podrzędnego) można znaleźć uruchamiając komendę AT+ADDR?\r\n.

Tworzenie mastera z połączeniem z slavem:

  • AT+DYSK\r\n - Przerwij połączenie (jeśli moduł jest podłączony).
  • W+ORGL\r\n — Zresetuj ustawienia użytkownika do wartości domyślnych.
  • AT+RMAAD\r\n - Wyczyść listę par (autoryzowanych urządzeń), aby moduł nie próbował połączyć się z tym, od którego został odłączony.
  • AT+WIĄZANIE= ADRES\r\n - Ustaw stały adres połączenia (podaj adres urządzenia podrzędnego Bluetooth)
  • AT+CMODE=0\r\n - Mówimy modułowi, aby łączył się tylko ze stałym adresem
  • W+ROLA=1\r\n — Ustaw moduł jako urządzenie główne
  • AT+PSWD= 1234\r\n — Zapamiętaj kod PIN urządzenia podrzędnego Bluetooth
  • AT+PARA= ADRES,10\r\n - Sparuj z podrzędnym urządzeniem Bluetooth, podając jego adres i limit czasu 10 sekund
  • .

Arduino posiada dużą liczbę różnych modułów, które mogą znacznie rozszerzyć funkcjonalność mikrokontrolera. Odrębną klasę stanowią chipy do transmisji danych, zarówno na duże odległości, na przykład do komunikacji poprzez bezprzewodowy Internet, jak i na krótkie odległości, takie jak moduł Bluetooth. Urządzenie takie przeznaczone jest do nawiązywania dwukierunkowej łączności radiowej z wykorzystaniem protokołu o tej samej nazwie.

Arduino bluetooth będzie wygodne do zdalnego sterowania Twoim urządzeniem opartym na mikrokontrolerze, ale przyjrzyjmy się, czym jest i jakie są cechy modułów Bluetooth hc 05 i hc 06.

Protokół Bluetooth jest niezbędny do szybkiego przesyłania danych na małe odległości. Jednak znacznie częściej stosuje się go w projektach w celu ustalenia kontroli mikrokontrolera z bliskiej odległości. W związku z tym wygodne będzie budowanie tych samych inteligentnych domów, jeśli uzupełnisz komponent sprzętowy aplikacją na smartfonie.

Zatem podstawowym i głównym celem Arduino Bluetooth jest komunikacja z komputerem PC i/lub systemem Android przy użyciu odpowiedniego protokołu. Pozwala to nie tylko sterować różnymi czujnikami mikrokontrolera, ale także, jeśli to konieczne, aktualizować oprogramowanie układowe.

Za jego pomocą nie będzie możliwe całkowite przeflashowanie urządzenia. Dodatkowo, Android Arduino Bluetooth może zapewnić komunikację pomiędzy kilkoma mikrokontrolerami i urządzeniami. Oczywiście w tym celu na każdym z nich należy zainstalować niezależny moduł. HC-05 pozwala na ułożenie kilku mostków wykorzystując typ USAR-bluetooth-USART. W takim przypadku samo urządzenie będzie postrzegane jako odpowiadające USART. Komunikacja będzie zorganizowana przez sprzęt Twojego projektu.


Moduł bluetooth dla Arduino ma kilka zalet w stosunku do standardowych dodatków do innych mikrokontrolerów:

  1. Inżynier nie musi studiować technologii protokołu Bluetooth, aby pisać oprogramowanie lub zacząć korzystać z gotowych bibliotek.
  2. Ogólna łatwość użycia. Nie będziesz musiał lutować osobnej płytki do dystrybucji zasilania, wystarczy podłączyć urządzenie do gotowego MK za pomocą pinów.
  3. Szeroki wybór bibliotek. Ponieważ Arduino ma niski próg wejścia, można znaleźć dużą liczbę bibliotek do różnych celów dla wszystkich jego modułów. Warto jednak zauważyć, że znaczna część z nich jest bezużyteczna, ponieważ nie działają lub działają wyjątkowo słabo. Przecież pisze je społeczność, która nie przestudiowała podstaw algorytmizacji i w większości jest w zasadzie słabo zorientowana w programowaniu. Z tego powodu w wielu sytuacjach zwykła modyfikacja cudzego oprogramowania nie jest najlepszym rozwiązaniem i znacznie łatwiej jest napisać własne.

Zakres zastosowania Bluetooth samochodu RC Arduino jest ogromny i ograniczony jedynie Twoją wyobraźnią. Możesz na przykład kupić zwykły chiński zestaw słuchawkowy, przylutować do niego kilka modułów dla Arduino, ponieważ mogą one działać bez MK, i załadować jedną z gotowych bibliotek. Po takich manipulacjach słuchawki będą mogły być używane bezprzewodowo i zniknie problem splątanych czy zagiętych przewodów. Jest to jeden z banalnych problemów związanych z implementacją tego protokołu w projekcie, w rzeczywistości są ich tysiące.

Moduł audio Bluetooth przeznaczony jest do użytku domowego i komercyjnego, co ułatwiają jego właściwości. Warto również wziąć pod uwagę, że jeśli w przyszłości będziesz komunikować się z komputerem za pomocą protokołu o tej samej nazwie, to na większości nowoczesnych urządzeń będziesz musiał kupić Bluetooth przez USB. Ale możesz go też przylutować z MK, tworząc własny moduł Bluetooth dla swojego komputera. Nie dotyczy to oczywiście laptopów, w których montowane są przetworniki o tej samej nazwie i nie ma potrzeby ich w żaden sposób modyfikować.

Układ pinów HC-05 i HC-06

Kołki na tablicach odpowiadają za:

Charakterystyka

Przyjrzyjmy się bliżej, jakie cechy ma taki moduł Bluetooth dla komputerów PC i różnych projektów. Sami twórcy twierdzą, że spełnili komercyjny standard w hc 05. W związku z tym do sterowania urządzeniem wystarczy specjalny program na smartfonie lub komputerze, który umożliwi wysyłanie i odbieranie danych z czujnika. Istnieje jednak ograniczenie w zakresie zastosowań, ponieważ stabilny sygnał, bez użycia wzmacniaczy, można złapać zaledwie 9 metrów od chipa. Należy pamiętać, że są to liczby surowe i nie uwzględniają przeszkód na drodze fal.

Same chipy hc są w pełni kompatybilne z dowolnymi adapterami obsługującymi SPP. Na samej płytce urządzenia znajduje się niewielka antena, przylutowana do górnej warstwy w formie węża. Charakterystyka urządzenia jest określona w następujący sposób:

  1. Aktywne częstotliwości radiowe mieszczą się w zakresie 2,4-2,48 GHz.
  2. Kanał przystosowany jest do przełączania adaptacyjnego.
  3. Konwencjonalny zasięg komunikacji wynosi 10 metrów, ale liczba ta nie uwzględnia przeszkód i zakłóceń.
  4. Maksymalna prędkość wymiany informacji wynosi 115300 bodów.
  5. Chip można przechowywać w zakresie temperatur od -40 do +85 stopni, ale używać - od -20 do +70.
  6. Do działania potrzebne będzie napięcie 3,3 V, któremu przyjrzymy się poniżej.

Połączenie

Płytka drukowana ma kilka styków lutowniczych na końcach urządzenia. Nie należy jednak podłączać przewodów bezpośrednio do styków urządzenia, ponieważ na płytce zastosowano specjalną technologię, która pozwala wcisnąć wymiary urządzenia w system tak kompaktowo, jak to możliwe.

Moduł musi być zamontowany na tyle szczelnie, do czego nadają się standardowe płytki MK lub specjalne płytki wykorzystujące złącza wtykowe. Można jednak kupić oddzielną płytkę do urządzeń z serii hc lub wykonać ją samodzielnie, jeśli posiada się umiejętności projektowania i tworzenia płytek elektronicznych.

Takie urządzenie musi posiadać złącze przyłączeniowe/specjalne otwory na okablowanie, a także diody LED, które pomogą określić, czy płynie prąd i czy urządzenie działa. Na Twoje życzenie potrzebne będą między innymi stabilizatory, specjalny przełącznik do resetowania oprogramowania oraz konwertery interfejsu.

Podczas pierwszego podłączenia ważne jest sprawdzenie funkcjonalności, do tego nadaje się smartfon lub komputer. Wystarczy zasilić moduł prądem i zeskanować go odpowiednimi urządzeniami.

Ustawienia

Aby skonfigurować chip, konieczne będzie ustanowienie parowania przez USART-bluetooth, gdzie pin 34 zostanie podłączony do wspólnego przewodu. Następnie możesz wydawać standardowe polecenia AT lub przeflashować mikrochip, według własnego uznania.

Po wyjęciu z pudełka hasło do podłączenia interfejsu to 1234, ale prędkość wymiany danych jest ograniczona do 38400 bodów. Gotowych bibliotek dla HC 05 nie ma wiele, jednak kierunek ich zastosowania jest dość wąski, co pozwala na dostosowanie dowolnego istniejącego oprogramowania do własnych potrzeb.

Aby bezprzewodowo wymieniać informacje pomiędzy różnymi urządzeniami na krótkich dystansach, można wykorzystać technologię Bluetooth. W tym celu chiński przemysł produkuje różne moduły Bluetooth, wśród których dużą popularnością cieszą się modele HC-05 i HC-06. Swego czasu zakupiłem na Aliexpress HC-06, na którym będę przeprowadzał dalsze eksperymenty, a także podłączam go do mojego chińskiego odpowiednika Arduino.

Bezpośrednio sam moduł Bluetooth. W takiej postaci można go stosować w różnych urządzeniach, gdzie wlutowuje się go bezpośrednio w płytkę. Moduł posiada 34 piny, w tym: piny do podłączenia do komputera poprzez UART, transmisję dźwięku metodą PCM (modulacja impulsowo-kodowa), wejście i wyjście analogowe, piny do podłączenia do złącza USB, interfejs SPI, a także ogólne- porty celowe. Tak naprawdę nie wszystkie z tych pinów są dostępne do wykorzystania; dostęp do pinów transmisji audio (5-8), wejścia i wyjścia analogowego (9, 10), a także do grupy styków do podłączenia do USB (15, 20) jest zablokowany.

HC-06 zbudowany jest na chipie BC417 (urządzenie zewnętrzne BlueCore4), ze specyfikacją Bluetooth V2.0. Na pokładzie znajduje się także kwarc 26 MHz i 8 MB pamięci flash. Zasilanie dostarczane jest z napięcia 3,3V.

W przypadku twoich projektów najwygodniej jest zastosować moduł z płytką stykową, na której wyświetlane są niezbędne styki do połączeń, a także stabilizator napięcia, który umożliwia zasilanie z 5 woltów.
Kupując takie moduły, możesz spotkać się z różnymi oznaczeniami. Zasadniczo jest to to samo urządzenie, różniące się oprogramowaniem określającym tryb pracy modułu (master/slave).

Różnica pomiędzy HC-05 i HC-06 polega na tym, że HC-05 może być używany jako master lub slave. Tryby te ustawia się za pomocą poleceń AT. Przycisk na płycie modułu przełącza go w tryb wprowadzania poleceń AT. Tryb master pozwala modułowi samodzielnie wykryć takie urządzenie i zorganizować z nim komunikację. Moduł HC-06 może pracować tylko w jednym stałym trybie slave.

Istnieją również modele HC-03 i HC-04, ale są one produkowane do celów przemysłowych.

Oznaczenie styków na płytce HC-06.

PAŃSTWO- sprawdzenie stanu modułu. Pin ten powiela sygnał wyświetlany przez diodę LED wbudowaną w płytkę. Jeśli miga bardzo szybko, moduł jest w stanie aktywnym. W trybie komunikacji prąd wynosi 30-40 mA. Gdy moduł nawiąże komunikację z innym urządzeniem, dioda LED po prostu zapala się. W trybie przesyłania danych prąd wynosi 8 mA.
RX- odbieranie danych.
Teksas- transfer danych.
GND- łączy się z ziemią.
+5 V- zasilanie +5 V
PL- włącz/wyłącz moduł. Jeśli zastosujesz logiczną 1 (5 woltów) do tego styku, moduł się wyłączy; jeśli zastosujesz logiczne 0 lub nie połączysz się z tym stykiem, moduł będzie działał.

Domyślnie HC-06 ma nazwę do wykrycia przez inne urządzenia „ HC-06„, z kodem PIN” 1234 ».

Aby zmienić te dane należy podłączyć moduł do komputera i wprowadzić komendy AT przy pomocy programu terminalowego. Można to zrobić za pomocą adaptera USB na COM z poziomami TTL. Do tych celów odpowiedni jest adapter do PL2303HX, CH340G lub inny podobny. Do tego czasu na komputerze powinien być już zainstalowany sterownik adaptera USB.

Łączymy kontakty w następujący sposób:

HC-06 Adapter USB na COM
+5 V +5 V
GND GND
RX Teksas
Teksas RX

Po podłączeniu tego zestawu do komputera czerwona dioda LED na płycie modułu Bluetooth zacznie szybko migać. Do wprowadzania poleceń AT można użyć dowolnego programu terminalowego, ja używam do tego Arduino IDE.

W ustawieniach wybieramy numer wirtualnego portu COM, do którego podłączona jest przejściówka USB, w moim przypadku jest to COM44. Otwórzmy okno” Monitor portu szeregowego».

Wpisz polecenie wielkimi literami „ NA„, jeśli urządzenie zostało pomyślnie podłączone, odpowiedź powinna wrócić” OK" Domyślna szybkość wymiany danych wynosi 9600 bodów.

Aby sprawdzić wersję oprogramowania, wpisz polecenie „ W wersji+„, w moim przypadku odpowiedź przyszła” OKlinvorV1.8».

Zespół " AT+NAMEyyy", Gdzie Wow- dowolny zestaw znaków w języku łacińskim, możemy zmienić nazwę pod jaką zostanie odnaleziony nasz moduł urządzenia bluetooth (domyślnie HC-06). W moim przykładzie wpisałem „ AT+NAMEfox", zwracana jest odpowiedź OKnazwa zestawu.

Zespół " AT+PINxxxx", Gdzie xxx– losowy zestaw cyfr, istnieje możliwość zmiany kodu PIN (domyślnie 1234). Odpowiedź wraca” OKustaw PIN».

Zespół " AT+BAUDx", Gdzie X– wartość od 1 do 9, można zmienić prędkość transmisji (domyślnie 9600).

1 - 1200
2 - 2400
3 - 4800
4 - 9600
5 - 19200
6 - 38400
7 - 57600
8 - 115200
9 - 230400

Na przykład, jeśli uruchomimy polecenie „ AT+BAUD8", gdzie 8 to prędkość 115200 bodów, odpowiedź zwróci " OK115200».

Podłączenie HC-06 do Arduino.

Przykład 1. Wrzućmy do Arduino szkic, za pomocą którego będziemy włączać i wyłączać diodę LED wlutowaną na pin 13 Arduino, poprzez moduł Bluetooth.

dane int;
int dioda = 13;
unieważnij konfigurację()
{
Serial.begin(9600);
tryb pin(LED, WYJŚCIE);
digitalWrite(LED, WYSOKI);
}
pusta pętla()
{
if (Serial.available())
{
dane = Serial.read();
if (dane == "1")
{
digitalWrite(LED, WYSOKI);
}
if (dane == "0")
{
digitalWrite(LED, NISKI);
}
}
}

Jeżeli nie masz tej diody na płytce to podłącz ją do pinu 13 zgodnie ze schematem; wartości rezystorów można przyjmować od 220 Ohm do 1 kOhm.

Odłącz zasilanie Arduino i podłącz HC-06. Kontakt Teksas podłącz moduł do styku RX Arduino (pin 0 na płycie UNO) i pin RX, skontaktować się Teksas(pin 1). Łączność +5 V I GND, podłącz do odpowiednich pinów Arduino.

Zmontowana konstrukcja. Po włączeniu zasilania Arduino dioda LED na HC-06 powinna szybko migać.

Sterowanie Arduino poprzez HC-06 za pomocą komputera.

Pokażę przykład w systemie Windows XP. Dowolny adapter USB Bluetooth musi być podłączony do komputera i mieć zainstalowane na nim sterowniki.

W moim przypadku użyłem tego adaptera.

Po podłączeniu do komputera PC, w zasobniku (obok zegara) pojawia się odpowiednia ikona.

Kliknij tę ikonę prawym przyciskiem myszy i wybierz „ Dodaj urządzenie Bluetooth».

Ustaw przełącznik " Urządzenie jest zainstalowane i gotowe do odkrycia" i kliknij " Dalej».

Nasz moduł Bluetooth pojawi się na liście wykrytych urządzeń pod nową nazwą, którą wcześniej zmieniłem. Wybierz i kliknij „ Dalej».

W kolejnym oknie wprowadź kod PIN, aby połączyć się z modułem wybierając „ Użyj klucza dostępu z dokumentacji:». Wartość domyślna to „1234” ale zmieniłem go na „9999”. Kliknij " Dalej».

Moduł Bluetooth pomyślnie skomunikował się z komputerem, co widać w odpowiednim oknie. Należy pamiętać, że po nawiązaniu połączenia pomiędzy dwoma urządzeniami Bluetooth w komputerze zostaną utworzone dwa nowe wirtualne porty COM (będą wyświetlane w menedżerze urządzeń), jeden dla danych wychodzących, drugi dla danych przychodzących. Przydałby nam się port na dane wychodzące, w moim przypadku jest to COM45.

Otwórzmy ponownie jakiś program terminalowy, użyję Arduino IDE. W ustawieniach wybierz port wychodzący (mam COM45), otwórz „ Monitor portu szeregowego", wprowadź polecenia " 1 " I " 0 " Po wydaniu polecenia „1” dioda LED zapala się, przy „0” gaśnie.

Steruj Arduino poprzez HC-06 za pomocą smartfona.

Prawdopodobnie wszystkie współczesne smartfony mają już wbudowany moduł Bluetooth. Pozostaje tylko zainstalować program terminalowy. W moim przypadku został wykorzystany Lumię 640DS, z zainstalowanym Windows mobilny 10. Używam „” jako programu terminalowego. Na smartfonach z Androidem wszystko jest podobne, możesz użyć „ Terminal Bluetooth».

W przypadku posiadaczy smartfonów Apple nie będzie możliwa współpraca z modułami Bluetooth HC-05 i HC-06 (Bluetooth V2.0), w przypadku nich konieczne będzie użycie adapterów z technologią BLE (Bluetooth low Energy), specyfikacją Bluetooth 4.0 . Wybitnym przedstawicielem jest moduł HM-10.

Parujemy HC-06 z Bluetoothem smartfona.

1 w " Parametry» smartfon wybierz element « Urządzenia».
2. Dalej” Bluetooth i inne urządzenia».
3. Włącz suwak Bluetooth w smartfonie i kliknij „ plus do kwadratu» wyszukać i dodać nowe urządzenie Bluetooth, w naszym przypadku HC-06.

4. W dziale „ Dodaj urządzenie"wybierać "".
5. Smartfon wyszuka urządzenia Bluetooth w okolicy i wyświetli ich nazwy. W moim przykładzie znaleziono moduł HC-06, którego nazwę zmieniłem na „ lis».

6. Wprowadź kod PIN urządzenia, z którym się łączymy, naciśnij przycisk „ Łączyć».

Zainstaluj i uruchom program terminalowy „”. Na liście wyświetli się moduł HC-06 podłączony do smartfona, należy go wybrać.

Pojawi się pole do wpisania poleceń oraz przycisk do wysłania. Wpisz naprzemiennie” 1 " I " 0 " i obserwuj diodę LED na pinie 13, która zaświeci się lub zgaśnie.

Przykład 2. Podłączmy do Arduino trzy diody LED i spróbujmy sterować nimi poprzez moduł Bluetooth HC-06.

Diody LED podłączyłem do pinów 9, 11 i 13, jeśli używasz innych pinów, należy je zaznaczyć na szkicu.

dane int;
int LED1 = 9;
int LED2 = 11;
int LED3 = 13;
unieważnij konfigurację()
{
Serial.begin(9600);
tryb pin(LED1, WYJŚCIE);
tryb pin(LED2, WYJŚCIE);
tryb pin(LED3, WYJŚCIE);
digitalWrite(LED1, WYSOKI);
digitalWrite(LED2, WYSOKI);
digitalWrite(LED3, WYSOKI);
}
pusta pętla()
{
if (Serial.available())
{
dane = Serial.read();
if (dane == "1")
{
digitalWrite(LED1, WYSOKI);
}
if (dane == "2")
{
digitalWrite(LED1, NISKI);
}
if (dane == "3")
{
digitalWrite(LED2, WYSOKI);
}
if (dane == "4")
{
digitalWrite(LED2, NISKI);
}
if (dane == "5")
{
digitalWrite(LED3, WYSOKI);
}
if (dane == "6")
{
digitalWrite(LED3, NISKI);
}
}
}

Podczas przesyłania szkicu należy odłączyć moduł HC-06 od Arduino, ponieważ zarówno komputer, jak i Bluetooth działają poprzez UART. Arduino nie może współpracować z kilkoma urządzeniami na jednym UART.

Uruchamiamy program terminalowy i wypróbowujemy szkic w akcji. Znaczenie sterowania diodami LED jest następujące: istnieją trzy diody LED, z których każda może być włączona lub wyłączona. Okazuje się, że 6 drużyn. Zespoły mają numery od 1 do 6 ( 1, 3, 5 - zapalają się 1, 2 i 3 diody LED. 2, 4, 6 - odpłacić). Liczby można wprowadzać pojedynczo lub w kombinacjach. Na przykład: 145 - zapal pierwszą, zgaś drugą, zapal trzecią.

Przykład 3. Podłączmy moduł przekaźnika z artykułu „” do Arduino i spróbujmy sterować potężnym obciążeniem przez Bluetooth. W istocie będziemy mieli „inteligentne gniazdo”. Do modułów przekaźnikowych można podłączyć różne obciążenia (żarówki, pompy, wentylatory) i zdalnie nimi sterować.

Wkrótce pojawi się szkic tego przykładu.

Bluetooth w Arduino umożliwia bezprzewodowe łączenie różnych urządzeń. Możesz przesyłać wiadomości z czujników i kontrolerów Arduino do urządzeń z systemem Android i odwrotnie, odbierać polecenia ze smartfonów za pośrednictwem Bluetooth. W tym artykule dowiemy się, jak zorganizować bezprzewodową pracę Twojego projektu Arduino za pomocą popularnych i niezbyt niedrogich modułów Bluetooth HC05 i HC06. Nie uwierzysz, ale podłączenie i programowanie modułów Bluetooth nie jest wcale trudnym zadaniem i jest dostępne nawet dla początkujących. Upewnijmy się o tym.

Często projekty wymagają zdalnego sterowania lub przesyłania danych z telefonu lub innego urządzenia. Jedną z najpopularniejszych i najwygodniejszych metod jest wymiana danych poprzez Bluetooth. Interfejs UART (Serial) służy do komunikacji pomiędzy płytką Arduino a komputerem. Ponieważ każda płytka Arduino posiada co najmniej 1 port szeregowy UART, do podłączenia modułu Bluetooth nie są wymagane żadne specjalistyczne biblioteki i obwody.

Najpopularniejszymi modułami są urządzenia bazujące na chipie BC417. Ta seria nazywa się HC. Moduły HC-03 i HC-05 mogą być zarówno serwerem połączeń, jak i klientem, posiadają szeroką gamę poleceń AT.

Do połączenia z komputerem PC potrzebny będzie moduł Bluetooth, płytka Arduino, przewody połączeniowe oraz komputer. Schemat sterowania płytką Arduino za pomocą smartfona i komputera będzie taki sam, ponieważ w obu przypadkach dane będą przesyłane do mikrokontrolera za pośrednictwem protokołu UART. Schemat podłączenia modułu Bluetooth do płytki pokazano na rysunku. Pin RX w Arduino jest podłączony do TDX, TX do RDX, GND do GND, 5 V do VCC.

Podczas przesyłania szkicu należy wyłączyć moduł Bluetooth, w przeciwnym razie pojawi się błąd podczas dostępu do Arduino. Aby przesyłać dane do modułu, należy także zainstalować aplikację na smartfonie lub tablecie obsługującym system operacyjny Android. Po zainstalowaniu aplikacji należy pobrać szkic i podłączyć moduł do płytki Arduino. Przykład kodu flash LED:

Wartość całkowita; void setup() ( Serial.begin(9600); pinMode(13, OUTPUT); // Pin 13 to dioda LED zadeklarowana jako wyjście ) void pętli() ( if (Serial.available()) // sprawdzanie przesłanych poleceń ( val = Serial.read(); if (val == "1") (digitalWrite(13, HIGH);) // przy 1 dioda LED włącza się if (val == "0") (digitalWrite(13, LOW );) / / przy 0 dioda gaśnie ) )

Teraz należy skonfigurować połączenie pomiędzy telefonem a modułem. Aby nawiązać połączenie należy przejść do ustawień telefonu i włączyć Bluetooth. Po znalezieniu urządzenia należy wprowadzić hasło - zwykle „1234” lub „0000”. Następnie przejdź do aplikacji, kliknij przycisk „połącz Bluetooth” i wybierz żądane urządzenie. Jeżeli parowanie się powiedzie, dioda LED na module zacznie migać wolniej, mniej więcej raz na 2 sekundy.

Na szkicu dioda LED włącza się i gaśnie po odebraniu cyfr „1” i „0”. Oprócz cyfr można także używać liter alfabetu łacińskiego, z uwzględnieniem wielkości liter.

W ten sam sposób można połączyć się z modułem za pomocą komputera. Aby to zrobić, istnieją różne programy, które będą łączyć się z portem COM. Po uruchomieniu program pyta o numer portu, prędkość i typ połączenia. Jeżeli połączenie się powiedzie, na ekranie pojawi się pole terminala, w które należy wpisać cyfry/litery z klawiatury, która zaświeci diodę LED.

Opis modułu Bluetooth HC 06

Wszystkie istniejące typy modułów Bluetooth mają swoje własne cechy, ale są podobne pod względem funkcji i działania. Jednym z typów modułów jest Bluetooth HC 06. Od strony Arduino moduł wygląda jak zwykły interfejs szeregowy, dzięki czemu można od razu nawiązać interakcję z urządzeniem na swoim komputerze.

Główne cechy modułu:

  • Zasilanie 3,3 V – 6 V;
  • Maksymalne napięcie wejściowe 5 V;
  • Maksymalny prąd 45 mA;
  • Szybkość przesyłania danych 1200–1382400 bodów;
  • Częstotliwości robocze 2,40 GHz – 2,48 GHz;
  • Obsługuje wersję specyfikacji Bluetooth 2.1;
  • Niskie zużycie energii;
  • Wysoki poziom ochrony danych;
  • Zasięg komunikacji 30 m;
  • Do połączenia ze smartfonem wykorzystywane są następujące dane - hasło „1234”, szybkość transmisji danych 9600, nazwa modułu HC-06.

Moduł posiada następujące styki:

  • VCC, GND – plus i minus zasilania;
  • RX i TX – odbiornik i nadajnik;
  • MCU-INT – wyświetla status;
  • Clear (Reset) – reset i restart modułu. Ostatnie dwa piny zwykle nie są używane podczas pracy, dlatego obecnie produkowane są moduły bez tych pinów.

Moduł HC-06 używany jest wyłącznie w trybie slave, czyli nie ma możliwości samodzielnego łączenia się z innymi urządzeniami Bluetooth. Wszystkie ustawienia połączenia „hasło, prędkość przesyłania danych” można zmienić za pomocą poleceń AT.

Opakowanie modułu nie zawiera przewodów połączeniowych.

Porównanie modułów Bluetooth HC 05 i HC 06

Najczęściej używane są moduły HC 05 i HC 06, które można znaleźć w sprzedaży częściej niż inne. Zasada działania tych modułów jest podobna, oba moduły oparte są na tym samym chipie, jednak są też istotne różnice. Przede wszystkim moduł HC 05 może pracować w dwóch trybach pracy – zarówno jako master, jak i jako slave.

Obydwa moduły to dwie lutowane płytki. Jeden z nich jest fabrycznie zainstalowany z mikroukładem, drugi jest potrzebny do domowych urządzeń, wyposażony jest w piny GPIO o standardowym rastrze 2,54 mm i stabilizator napięcia.

Moduł HC-05 jest nieco droższy, ale ma więcej przydatnych funkcji obsługi.

Pinout modułu HC-05:

  • PL – zarządzanie energią;
  • Zasilanie VCC;
  • RX, Teksas;
  • STAN – wskazanie;
  • KLUCZ – aktywuje tryb sterowania za pomocą poleceń AT. Gdy KLUCZ=0 – przesyłanie danych, gdy KLUCZ=1 – komendy AT.

Domyślna szybkość transmisji poleceń AT dla HC-05 wynosi 38400, dla HC-06 – 9600. Ważne jest to, że na końcu poleceń AT dla HC-05 muszą znajdować się znaki CRLF.

Główne cechy HC-05:

  • Częstotliwości robocze 2,4 – 2,48 GHz;
  • Moc transmisji 0,25 – 2,5 mW;
  • Zasięg 10 m;
  • Maksymalna szybkość wymiany danych 115200 bodów;
  • Zasilanie 3,3 V;
  • Prąd 30-40 mA;
  • Temperatury pracy od -25C do 75C.

Podłączenie obu modułów do płytki Arduino jest takie samo.

Możliwość podłączenia modułu za pomocą dzielnika.Opcja prezentowana jest dla Arduino Nano, ale będzie działać również z płytką Uno.

Wniosek

W tym artykule przyjrzeliśmy się opcjom łączenia i pracy z niektórymi najpopularniejszymi modułami Arduino Bluetooth HC05, HC06. Nie powinieneś mieć żadnych szczególnych trudności z tymi modułami - wystarczy podłączyć go do pinów sprzętowym lub programowym UART, a następnie skorzystać z tradycyjnych bibliotek (Serial dla modułu podłączonego do pinów 0, 1, SoftwareSerial w przypadku łączenia z innymi).

Podłączenie Bluetooth do projektu Arduino może znacznie zwiększyć możliwości komunikacji z innymi urządzeniami. Będziesz mógł monitorować stany czujników i zmieniać parametry systemu bez konieczności ponownego uruchamiania sterownika. No i oczywiście w prosty sposób można tworzyć roboty i samochody za pomocą Arduino, sterowane poprzez Bluetooth ze smartfona. Mamy nadzieję, że po przeczytaniu tego artykułu uda Ci się stworzyć swój pierwszy projekt.