Autor: Dondu
Artykuł jest częścią cyklu: Bluetooth + mikrokontroler
W poprzednich artykułach tego cyklu opisałem nieco od strony praktycznej standard Bluetooth oraz moduł HC-05.
W niniejszym artykule zajmiemy się testem komunikacji modułu HC-05 z komputerem. W tym celu wykorzystamy terminal RealTerm.
Na końcu artykułu załączyłem film pokazujący treść artykułu "na żywo".
Przygotowanie modułu HC-05
W pierwszej kolejności musimy przygotować moduł HC-05 do przeprowadzenia testów. Moduł który wykorzystałem do niniejszego artykułu jest zaopatrzony w adapter wraz z regulatorem napięcia 3,3V (o czym pisałem w poprzednim artykule) i wygląda następująco:
Moduł ten zasiliłem za pomocą zasilacza 5V.
Do zaobserwowania komunikacji utworzyłem pętlę zwrotną łącząc wyjście TxD z wejściem RxD. W ten sposób każdy otrzymany przez moduł bajt danych będzie natychmiast przez niego wysłany z powrotem do komputera:
W związku z tym schemat podłączenia modułu HC-05 wyglądać będzie następująco:
Do pobrania schemat oraz biblioteka programu Eagle: HC-05.zip
Do wyjścia statusu (pin STATE) dołączona została zielona dioda LED wraz z szeregowym rezystorem 1k. Jej zadaniem będzie pokazanie momentu, w którym następuje poprawne połączenie komputera z modułem HC-05 (dioda zaświeci się).
Standardowo zamiast diody LED stan tego pinu może być sprawdzany przez mikrokontroler wykorzystujący moduł HC-05 do komunikacji. Innymi słowy podłączenie pinu statusu do wybranego pinu mikrokontrolera pozwala stwierdzić mikrokontrolerowi, czy połączenie jest nawiązane poprawnie, czy też nie i odpowiednią reakcję.
Test komunikacji z komputerem
Poniżej znajdziesz przykład testowania modułu z systemem Windows XP. W innych systemach zasada testowania jest taka sama, choć okienka z opcjami dot. Bluetooth mogą się różnić.
Krok 1 - Parowanie
Jak już wiesz z poprzednich artykułów tego cyklu, aby komunikacja pomiędzy komputerem, a modułem HC-05 mogła się odbywać niezbędne jest dokonanie parowania (dobranie w pary dwóch urządzeń komunikujących się w systemie Bluetooth).
W tym celu podłączamy moduł zgodnie z powyższym schematem i włączamy zasilanie. W rezultacie powinniśmy zauważyć szybkie miganie diody modułu HC-05 (o ile moduł jest w nią wyposażony). W moim przypadku dioda ta ma kolor czerwony.
Następnie otwieramy Panel sterowania i klikamy na liście Urządzenia Bluetooth:
w wyniku czego otworzone zostanie okno zarządzania urządzeniami Bluetooth:
Jeżeli masz już zainstalowane jakieś urządzenia wykorzystujące technologię Bluetooth, zobaczysz je w w/w okienku.
Upewnij się że w zakładce Opcje masz ustawienia zgodne z poniższym przykładem:
Następnie w zakładce Urządzenia klikamy przycisk Dodaj i oczom naszym ukaże się okienko Kreatora dodawania urządzeń Bluetooth, dzięki któremu rozpoczniemy proces parowania komputera i modułu HC-05:
Zaznaczamy checkbox gotowości naszego urządzenia (czyli modułu HC-05) i klikamy przycisk Dalej.
Oczekujemy aż komputer odnajdzie nasze urządzenie, co może potrwać nawet kilkadziesiąt sekund. Rezultatem powinno być pokazanie się na liście naszego modułu HC-05 jako nowego urządzenia:
Klikamy kursorem myszki moduł HC-05 na liście, a następnie przycisk Dalej (równie dobrze możemy wykonać dwuklik na nazwie modułu) i otrzymujemy kolejne okienko:
w którym zaznaczamy opcję wprowadzania klucza dostępu i uzupełniamy pole po prawej fabryczną wartością 1234 (lub inną jeżeli jest ustawiona w HC-05). Pisałem o tym w artykule: HC-05 (Bluetooth) - Informacje podstawowe
Następnie klikając przycisk Dalej, dzięki czemu dokończona zostanie procedura parowania, a w jej trakcie (może trwać dość długo) powinieneś zobaczyć ekran:
W tym czasie powinieneś na pasku zadań otrzymywać komunikaty:
Od momentu dokonania parowania czerwona dioda powinna migać co dwie sekundy:
Po zakończeniu parowania powinno się ukazać okienko ze szczegółami, w tym z przydzielonym numerem portu COM:
Po naciśnięciu Zakończ, proces parowania zwieńczony zostaje pokazaniem naszego modułu na liście urządzeń, których parowanie przebiegło prawidłowo, czyli klucz dostępu został zaakceptowany (włączony):
Klikając nazwę urządzenia HC-05, a następnie przycisk Właściwości, możesz zobaczyć następujące dane:
wśród których znajdziesz adres, który jest unikalnym adresem (MAC) Twojego modułu HC-05. Moduł HC-05, który testowałem na potrzeby artykułu posiada adres MAC: 98:d3:31:40:0e:32
W zakładce Usługi znajdziesz natomiast potwierdzenie, przydzielenia numeru portu COM (SPP):
Krok 2 - Ustawiamy terminal
Kolejnym etapem jest przygotowanie terminala do komunikacji z modułem HC-05. W tym celu posłużymy się terminalem RealTerm, którego używaliśmy do komunikacji RS-232 z komputerem w artykule: RS-232: Komunikacja ATmega8 z komputerem - warto się zapoznać z tym artykułem.
W zakładce Port ustawiamy standardowe (po włączeniu zasilania) parametry transmisji modułu HC-05, czyli:
- 9600bps,
- brak parzystości,
- 8 bit danych,
- 1 bit stopu,
- oraz wybieramy przydzielony w procesie parowania do modułu HC-05 numer portu COM (w moim przypadku 17):
Następnie:
- klikamy przycisk Change,
- lub wyłączamy komunikację przyciskiem Open i ponownie tym samym przyciskiem ją włączamy.
W rezultacie w prawym dolnym rogu okna musimy widzieć parametry jak na poniższym screenie:
Jeżeli komunikacja została nawiązana poprawnie zielona dioda LED powinna się zaświecić, a czerwona dioda powinna migać następująco:
Od tego momentu komputer jest połączony z modułem HC-05 i można rozpocząć przesyłanie danych.
Krok 3 - Test komunikacji
Mamy już przygotowany i połączony komputer z modułem HC-05, nadszedł więc czas na przetestowanie połączenia.
Zwróć uwagę, że na schemacie połączyliśmy piny TxD oraz RxD modułu HC-05, aby powstała w ten sposób pętla, dzięki której każdy wysłany z komputera do modułu HC-05 ciąg bajtów zostanie przez niego natychmiast odesłany z powrotem do komputera.
W celu przesłania danych do modułu HC-05 klikamy zakładkę Send i w polu po lewej stronie wpisujemy dowolny tekst:
oraz klikamy kilkakrotnie przycisk Send ASCII. Terminal wyśle za pomocą Bluetooth tekst do modułu HC-05, a ten (z powodu pętli TxD i RxD) odeśle go z powrotem do terminala, który wyświetli go:
Aby przekonać się, że komunikacja nastąpiła poprzez moduł HC-05, wystarczy rozłączyć pętlę i ponownie klikać przycisk Send ASCII.
Po rozłączeniu pętli i klikaniu przycisku Send ASCII zauważysz, że terminal nie otrzymuje żadnych zwrotnych danych.
Po rozłączeniu pętli i klikaniu przycisku Send ASCII zauważysz, że terminal nie otrzymuje żadnych zwrotnych danych.
Podsumowanie
Tym sposobem dokonaliśmy parowania komputera z modułem HC-05 oraz pierwszej transmisji danych. Przygotowałem także filmik pokazujący krok po kroku treść niniejszego artykułu. Pod koniec filmu pokazałem także, jak zachowuje się moduł HC-05 po rozłączeniu i ponownym połączeniu z komputerem:
Witam, artykuł świetny. Dziś przyszły z chin do mnie właśnie moduły, tylko nie działają tak jak w artykule. Chodzi o wyprowadzenie state, nieważne czy moduł się połączył czy nie cały czas pin State jest ściągnięty do masy i sygnalizacją diodą nie działa. Dla zabawy zmierzyłem co się dzieje między pinem State a Gnd po wyjęciu układu, pierwsza sztuka jest zwarta, druga pokazuje 11Mohm. Istnieje na to jakieś wyjaśnienie oprócz kraju pochodzenia układu ?
OdpowiedzUsuńZ góry dziękuję i pozdrawiam.
Witam.
UsuńRozumiem, że masz moduł z adapterem i zapewne inny niż ten pokazany w artykule?
Jeśli tak, to sprawdź multimetrem, czy sygnał STATE na złączu modułu jest połączony z PIN32 HC-05.
witam, dzisiaj przyszedł mój moduł, robię wszystko zgodnie z poradnikiem i nie odsyła mi wysłanych danych. Przy wysyłaniu zapala się kontrolka TX w realTerm ale powrotnej już nie ma. Co może być przyczyną?
OdpowiedzUsuńJeśli robisz wszystko zgodnie z artykułem to na pewno prawidłowo zadziała. Najlepiej byłoby, gdybyś opisał swój przypadek na forum załączając zdjęcia co ułatwi nam znalezienie przyczyny.
UsuńTutaj natomiast wklej proszę link do forum.
link do mojego tematu, opisałem dokładnie i wrzuciłem zdjecia http://www.elektroda.pl/rtvforum/topic2992537.html
UsuńWitam, ten sam problem co kolega wyżej, przeglądałem temat, niestety bezskutecznie. Moduł na płytce FC-114, taki jak na twoim zdjęciu. Po podłączeniu paruje się, po ustanowieniu komunikacji dioda state zapala się, wysyłam coś niestety brak odpowiedzi. Nóżki txrx zwarte. Jest na nich napięcie ~3,3V, w momencie przesyłania są jakieś małe skoki napięcia. Zacząłem się zastanawiać czy system windows 10 może mieć na to wpływ?
OdpowiedzUsuńWitam.
UsuńNa początek sprawdziłbym połączenia oraz ustawienia RealTerm.
Trzeba jeszcze pamiętać o włączeniu half-duplex w zakładce display - wtedy pokazuje zarówno odbierane jak i wysyłane -> pętla działa prawidłowo tylko może tego nie pokazywać.
OdpowiedzUsuńMam pewien problem, i nie mam pojęcia jak go rozwiązać. Próbowałem na 2 różnych komputerach [Win10 i Win7], na obu nie ma portu COM dla HC-05. Naprawdę liczę na jakąkolwiek pomoc, ponieważ internet milczy w tej sprawie.
OdpowiedzUsuńChciałbym zapytać co mogło się stać, ponieważ przypadkowo zwarłem linie Rx modułu do masy.W terminalu początkowo zaświeciła się czerwona kontrolka BREAK a potem ERROR,gdy zorientowałem się ze coś jest nie tak i podłączyłem już poprawnie ,nadal świeciła kontrolka BREAK.Zmieniałem prędkości i na innych niż 9600 nie świeciło BREAK, ale moduł nie odpowiadał. Następnie zrobiłem test i zwarłem Rx i Tx i moduł wysyła jakieś dziwne znaki do terminala, żadna kontrolka juz się nie świeci.Gdy odłączam moduł teraz i podłączam to w terminalu cały czas na zółto świeci Rx linia.Dodam ze gdy chce sparować moduł z komputerem to nie ma już jego nazwy jak dawniej HC-05 tylko wyskakuje pod nazwa "?" .Chciałbym się dowiedzieć czy da się to jeszcze naprawić.Moduł podłączam z przejściówka UART-USB.Będę wdzięczny za wszelkie pomoce.
OdpowiedzUsuńDodam ze po podłaczeniu pomiędzy Rx a masa jest 3.32V cały czas, a Tx a masą 0.00V.
UsuńBardzo mi pomogłeś. Krótko i na temat. Wielkie dzięki. pozdro Piotr
OdpowiedzUsuń