Mikrokontrolery - Jak zacząć?

... czyli zbiór praktycznej wiedzy dot. mikrokontrolerów.

środa, 16 marca 2011

HC-05 (Bluetooth) - Test komunikacji z komputerem


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:


Bluetooth HC-05 z adapterem


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:


Bluetooth HC-05 - Testowanie komunikacji z komputerem za pomocą pętli.



W związku z tym schemat podłączenia modułu HC-05 wyglądać będzie następująco:


Bluetooth HC-05 - Schemat podłączenia układu testowego.


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.


Bluetooth HC-05 - Po załączeniu zasilania dioda mruga szybko.


Następnie otwieramy Panel sterowania i klikamy na liście Urządzenia Bluetooth:


Windows XP - Panel sterowania - Urządzenia Bluetooth.


w wyniku czego otworzone zostanie okno zarządzania urządzeniami Bluetooth:

Windows XP - 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:


Windows XP - Okno zarządzania urządzeniami Bluetooth - Zakładka Opcje.



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:


Windows XP - Kreator dodawania urządzeń Bluetooth


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:


Windows XP - Kreator dodawania urządzeń Bluetooth - znaleziono moduł HC-05


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:


Windows XP - Kreator dodawania urządzeń Bluetooth - Podawanie kodu dostępu.


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:


Windows XP - Kreator dodawania urządzeń Bluetooth - Parowanie modułu HC-05 i komputera.


W tym czasie powinieneś na pasku zadań otrzymywać komunikaty:


Windows XP - Komunikat znalezienia nowego urządzenia Bluetooth (Bluetooth Peripherial Device)

Windows XP - Komunikat znalezienia nowego urządzenia Bluetooth będącego portem szeregowym.

Windows XP - Komunikat znalezienia nowego urządzenia Bluetooth i poprawnego jego zainstalowania.


Od momentu dokonania parowania czerwona dioda powinna migać co dwie sekundy:


Bluetooth HC-05 - Po dokonaniu parowania dioda mruga wolno co 2 sekundy.


Po zakończeniu parowania powinno się ukazać okienko ze szczegółami, w tym z przydzielonym numerem portu COM:


Windows XP - Kreator dodawania urządzeń Bluetooth - Zakończenie parowania portu COM na HC-05.


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):


Windows XP - Kreator dodawania urządzeń Bluetooth - Potwierdzenie poprawnego parowania modułu HC-05.



Klikając nazwę urządzenia HC-05, a następnie przycisk Właściwości, możesz zobaczyć następujące dane:


Windows XP - Kreator dodawania urządzeń Bluetooth - Właściwości modułu HC-05.


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):


Windows XP - Kreator dodawania urządzeń Bluetooth - Właściwości modułu HC-05 - Przydzielony numer portu COM.




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):


Terminal RealTerm - ustawienie parametrów transmisji dla modułu HC-05.


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:


Terminal RealTerm - Potwierdzenie parametrów transmisji dla modułu HC-05.


Jeżeli komunikacja została nawiązana poprawnie zielona dioda LED powinna się zaświecić, a czerwona dioda powinna migać następująco:


Bluetooth HC-05 - Po dokonaniu parowania dioda mruga podwójnie co 2 sekundy.

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:


Terminal RealTerm - Moduł HC-05 - Wysyłanie ciągu znaków ASCII


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:


Terminal RealTerm - Moduł HC-05 - Wysyłanie ciągu znaków ASCII i ich powrót za pomocą pętli.


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.







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:





Oceń artykuł.
Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły.
Pozdrawiamy, Autorzy
Ten artykuł oceniam na:

12 komentarzy:

  1. 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 ?
    Z góry dziękuję i pozdrawiam.

    OdpowiedzUsuń
    Odpowiedzi
    1. Witam.
      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.

      Usuń
  2. 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ń
    Odpowiedzi
    1. 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.

      Tutaj natomiast wklej proszę link do forum.

      Usuń
    2. link do mojego tematu, opisałem dokładnie i wrzuciłem zdjecia http://www.elektroda.pl/rtvforum/topic2992537.html

      Usuń
  3. 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ń
    Odpowiedzi
    1. Witam.
      Na początek sprawdziłbym połączenia oraz ustawienia RealTerm.

      Usuń
  4. 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ń
  5. 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ń
  6. 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ń
    Odpowiedzi
    1. Dodam ze po podłaczeniu pomiędzy Rx a masa jest 3.32V cały czas, a Tx a masą 0.00V.

      Usuń
  7. Bardzo mi pomogłeś. Krótko i na temat. Wielkie dzięki. pozdro Piotr

    OdpowiedzUsuń

Działy
Działy dodatkowe
Inne
O blogu




Dzisiaj
--> za darmo!!! <--
1. USBasp
2. microBOARD M8


Napisz artykuł
--> i wygraj nagrodę. <--


Co nowego na blogu?
Śledź naszego Facebook-a



Co nowego na blogu?
Śledź nas na Google+

/* 20140911 Wyłączona prawa kolumna */
  • 00

    dni

  • 00

    godzin

  • :
  • 00

    minut

  • :
  • 00

    sekund

Nie czekaj do ostatniego dnia!
Jakość opisu projektu także jest istotna (pkt 9.2 regulaminu).

Sponsorzy:

Zapamiętaj ten artykuł w moim prywatnym spisie treści.