Bezprzewodowa łączność z płytką Arduino

Zbudowanie układu, który umożliwi komunikowanie się z płytką Arduino Uno za pośrednictwem fal radiowych, jest całkiem proste. Zastosujemy przy tym program zainstalowany w smartfonie. Łącząc się z Arduino przez Bluetooth, smartfon   przekaże do płytki instrukcje, które będą włączać i wyłączać diody LED.

Realizacja projektu

Elementy potrzebne do zbudowania układu:

  • płytka Arduino Uno,

  • moduł Bluetooth HC‑05,

  • płytka stykowa,

  • przewody połączeniowe męsko‑męskie,

  • 3 diody LED (czerwona, żółta, niebieska),

  • 6 rezystorów o oporności 1 komega,

  • program Serial Bluetooth Terminal (dostępny bezpłatnie na platformie Google Play),

  • kabel USB typu A‑B.

RXWwT57e0Ti9c
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Schemat ideowy układu

Rre51yMxH5m2I
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Moduł Bluetooth HC‑05

R1HPkOzvR5Fap
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
RYRBKcLSs9JmK
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

HC‑05 to niewielki moduł przeznaczony do połączenia z płytką stykową. Jego najważniejsze cechy to:

  • zgodność ze standardem Bluetooth 2.0 (starsza wersja interfejsu, która będzie współpracować z każdym urządzeniem wyposażonym w Bluetooth),

  • tryb pracy – port szeregowy (UART: RX, TX),

  • napięcie zasilania: od 3,3 V do 6,5 V (optymalne napięcie zasilające wynosi 5 V),

  • domyślna prędkość transmisji danych – 9600 bodów.

Ważne!
  • Kod PIN niezbędny do sparowania modułu z innymi urządzeniami z interfejsem Bluetooth to 1234.

  • Moduł działa w logice 3,3 V. Jeśli na wejście zostanie podane napięcie większe niż 3,6 V, może to spowodować uszkodzenie pinów TX/RX.

Podłączenie modułu HC‑05 z płytką Arduino Uno:

Moduł Bluetooth HC‑05

Arduino Uno

GND

GND 

VCC 

VCC 

TXD 

RX (D0) 

RXD 

TX (D1) 

Zapoznaj się ze schematem ideowym urządzenia, a następnie podłącz elementy zgodnie z instrukcjami przedstawionymi niżej.

Wepnij moduł Bluetooth HC‑05 w płytkę stykową.

RYSNIPlvP3AHV

Do modułu dołącz rezystory. Pozwoli to korzystać z pinów RXD i TXD (odbierać lub podawać impulsy 3,3 V).

RqeVFSFHp7zsS
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Dodaj diody z rezystorami. Rezystory połącz z anodami diod.

Rgc9xG6kIqZK7
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Połącz katody diod i wyprowadzenie GND modułu HC‑05 z szyną masy (GND) płytki stykowej.

RsQ4W71WNFg0Z
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Podepnij moduł Bluetooth HC‑05 do płytki Arduino. Pamiętaj, aby połączyć pin RXD modułu z pinem TX (D1) płytki Arduino przez rezystor. Pin TXD modułu połącz z pinem RX (D0) płytki Arduino.

RrwEwiE3yhi4S
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Na koniec połącz anody diod z płytką Arduino za pośrednictwem podpiętych do nich rezystorów.

RaHZNIY1gHL67
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Piszemy szkic

Pora przygotować kod, dzięki któremu płytka Arduino będzie sterować diodami LED po otrzymaniu odpowiednich poleceń ze smartfona.

Na początku definiujemy piny diod LED.

Linia 1. kratka define LEDYellow 4. Linia 2. kratka define LEDRed 3. Linia 3. kratka define LEDBlue 2.

Deklarujemy zmienną potrzebną do przechowania odebranych danych.

Linia 1. char OdebraneDane średnik.

W ciele funkcji setup() ustawiamy prędkość połączenia z modułem Bluetooth HC‑05 oraz informujemy, że piny przyporządkowane diodom są pinami wyjścia.

Linia 1. Serial kropka begin otwórz nawias okrągły 9600 zamknij nawias okrągły średnik. Linia 2. pinMode otwórz nawias okrągły LEDYellow przecinek OUTPUT zamknij nawias okrągły średnik. Linia 3. pinMode otwórz nawias okrągły LEDRed przecinek OUTPUT zamknij nawias okrągły średnik. Linia 4. pinMode otwórz nawias okrągły LEDBlue przecinek OUTPUT zamknij nawias okrągły średnik.

W ciele funkcji loop() umieszczamy instrukcje, dzięki którym płytka Arduino zinterpretuje liczby wpisane na smartfonie jako polecenie włączenia lub zgaszenia odpowiednich diod LED.

Linia 1. if otwórz nawias okrągły Serial kropka available otwórz nawias okrągły zamknij nawias okrągły zamknij nawias ostrokątny 0 zamknij nawias okrągły otwórz nawias klamrowy. Linia 2. OdebraneDane znak równości Serial kropka read otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 3. zamknij nawias klamrowy. Linia 5. if otwórz nawias okrągły OdebraneDane znak równości znak równości apostrof 1 apostrof zamknij nawias okrągły otwórz nawias klamrowy. Linia 6. digitalWrite otwórz nawias okrągły LEDYellow przecinek HIGH zamknij nawias okrągły średnik. Linia 7. zamknij nawias klamrowy else if otwórz nawias okrągły OdebraneDane znak równości znak równości apostrof 2 apostrof zamknij nawias okrągły otwórz nawias klamrowy. Linia 8. digitalWrite otwórz nawias okrągły LEDYellow przecinek LOW zamknij nawias okrągły średnik. Linia 9. zamknij nawias klamrowy. Linia 11. if otwórz nawias okrągły OdebraneDane znak równości znak równości apostrof 3 apostrof zamknij nawias okrągły otwórz nawias klamrowy. Linia 12. digitalWrite otwórz nawias okrągły LEDRed przecinek HIGH zamknij nawias okrągły średnik. Linia 13. zamknij nawias klamrowy else if otwórz nawias okrągły OdebraneDane znak równości znak równości apostrof 4 apostrof zamknij nawias okrągły otwórz nawias klamrowy. Linia 14. digitalWrite otwórz nawias okrągły LEDRed przecinek LOW zamknij nawias okrągły średnik. Linia 15. zamknij nawias klamrowy. Linia 17. if otwórz nawias okrągły OdebraneDane znak równości znak równości apostrof 5 apostrof zamknij nawias okrągły otwórz nawias klamrowy. Linia 18. digitalWrite otwórz nawias okrągły LEDBlue przecinek HIGH zamknij nawias okrągły średnik. Linia 19. zamknij nawias klamrowy else if otwórz nawias okrągły OdebraneDane znak równości znak równości apostrof 6 apostrof zamknij nawias okrągły otwórz nawias klamrowy. Linia 20. digitalWrite otwórz nawias okrągły LEDBlue przecinek LOW zamknij nawias okrągły średnik. Linia 21. zamknij nawias klamrowy. Linia 23. if otwórz nawias okrągły OdebraneDane znak równości znak równości apostrof 7 apostrof zamknij nawias okrągły otwórz nawias klamrowy. Linia 24. digitalWrite otwórz nawias okrągły LEDYellow przecinek HIGH zamknij nawias okrągły średnik. Linia 25. digitalWrite otwórz nawias okrągły LEDRed przecinek HIGH zamknij nawias okrągły średnik. Linia 26. digitalWrite otwórz nawias okrągły LEDBlue przecinek HIGH zamknij nawias okrągły średnik. Linia 27. zamknij nawias klamrowy else if otwórz nawias okrągły OdebraneDane znak równości znak równości apostrof 8 apostrof zamknij nawias okrągły otwórz nawias klamrowy. Linia 28. digitalWrite otwórz nawias okrągły LEDYellow przecinek LOW zamknij nawias okrągły średnik. Linia 29. digitalWrite otwórz nawias okrągły LEDRed przecinek LOW zamknij nawias okrągły średnik. Linia 30. digitalWrite otwórz nawias okrągły LEDBlue przecinek LOW zamknij nawias okrągły średnik. Linia 31. zamknij nawias klamrowy.

Funkcja Serial.available() pozwala sprawdzić, czy można odczytać dane z portu szeregowego. Mikrokontroler na płytce Arduino ma 64‑bajtowy bufor portu szeregowego.

Jeśli funkcja Serial.available() zwraca wartość większą od zera, zmiennej OdebraneDane przypisywana jest wartość przekazana przez funkcję Serial.read().

Kolejne instrukcje zapisane w kodzie określają, które diody powinny się zapalić po tym, gdy wyślemy dane z telefonu.

Instalacja programu Serial Bluetooth Terminal

Polecenia włączenia diod LED będziemy wysyłać ze smartfonu, korzystając z darmowej aplikacji Serial Bluetooth Terminal. Oprogramowanie jest dostępne na platformie Google Play.

Wejdź na stronę Google Play. W polu wyszukiwania wpisz frazę „Serial Bluetooth Terminal” i kliknij przycisk z symbolem lupy („Szukaj”).

Zainstaluj program na telefonie.

RFEO9DV2myYn2

Dodawanie modułu HC‑05

Aby dodać moduł HC‑05 do listy urządzeń, z którymi będzie komunikować się smartfon, podłącz do komputera płytkę Arduino ze zmontowanym wcześniej układem. Użyj kabla USB. Dioda na module zacznie migać.

Wywołaj sekcję ustawień modułu Bluetooth w telefonie.

Włącz interfejs Bluetooth. Smartfon zacznie wyszukiwać nowe urządzenia. Na liście pojawi się moduł HC‑05. Kliknij odpowiadający mu symbol.

R8kO7ekrIZ8Wi

Podczas próby nawiązania połączenia (powiązania urządzeń) wpisz numer PIN. Jak wyjaśnialiśmy wcześniej, jest nim sekwencja 1234. Następnie naciśnij przycisk OK.

R1S94CX7Ebosb

Po nawiązaniu połączenia z telefonem moduł pojawi się na liście.

RDPb6SlUiyMMI

Konfigurowanie programu Serial Bluetooth Terminal

Uruchom aplikację Serial Bluetooth Terminal w smartfonie.

R12U75hD5cKwW

Naciśnij przycisk Menu w programie (trzy poziome kreski po lewej stronie).

RaRpuEVGSlJR6

Z wyświetlonej listy wybierz pozycję Settings, a następnie ustaw opcje tak, jak pokazano na zrzutach ekranowych poniżej.

R1JjZ2WFiIwUJ
R14LaRDJuGqiB
RFFroNIOOo7g8
R1dGZLXoLJ5C0

Naciśnij strzałkę skierowaną w lewo. Kliknij Menu, przejdź do zakładki Devices i z wyświetlonej listy wybierz HC‑05.

RCZK0HxtJW6Us

Po wskazaniu modułu automatycznie zostanie nawiązane z nim połączenie, a dioda w układzie zacznie migać z mniejszą częstotliwością. W terminalu pojawi się informacja o połączeniu.

REtUQePL5aY19

Przesyłamy szkic

Przejdź do środowiska Arduino IDE i prześlij program do płytki Arduino Uno.

Ważne!

Przed wgraniem kodu na płytkę odłącz piny RX (D0) i TX (D1) od płytki Arduino!

Po wgraniu kodu znowu podłącz piny.

Testowanie

W aplikacji Serial Bluetooth Terminal wpisz cyfrę 1 i wyślij ją do modułu HC‑05. Powinna zapalić się żółta dioda LED.

RuGwr3vSM4ekv
R1MMkc0MHbVt5
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Wpisz cyfrę 3 i wyślij ją do modułu. Powinna zapalić się dioda czerwona.

Rc2GmGIQKyZv7
R1LLZGiuPWNXu
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Zapal diodę niebieską, wysyłając do modułu cyfrę 5.

RAsjIP3dwcna8
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Aby zgasić wszystkie diody, wyślij cyfrę 8.

R1PRf3e5qi6HE
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

W programie zdefiniowaliśmy następujące komendy:

  • 1 – zapala diodę żółtą,

  • 2 – gasi diodę żółtą,

  • 3 – zapala diodę czerwoną,

  • 4 – gasi diodę czerwoną,

  • 5 – zapala diodę niebieską,

  • 6 – gasi diodę niebieską,

  • 7 – zapala wszystkie diody,

  • 8 – gasi wszystkie zapalone diody.

Wersja do zlutowania

Na podstawie schematu ideowego można przygotować nakładkę (tzw. shieldshieldshield) na płytkę Arduino Uno. Ułatwia ona podłączenie modułu HC‑05 wraz z diodami i pozostałymi elementami (nie trzeba dzięki temu używać płytki stykowej).

R1aCIn50p6ySY
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Elementy i narzędzia potrzebne do wykonania nakładki:

  • lutownica,

  • przygotowana wcześniej płytka PCB (z ang. Printed Circuit Board),

  • cyna lutownicza,

  • złącze typu goldpin męskie,

  • złącze typu goldpin żeńskie,

  • 3 diody LED (czerwona, żółta i niebieska),

  • moduł Bluetooth HC‑05,

  • 6 rezystorów o oporności 1 komega.

Mamy do czynienia z płytką jednostronną. Pracę rozpoczynamy od wlutowania męskich złączy goldpin. Odwracamy płytkę, tak abyśmy widzieli ścieżki na jej spodzie.

Przycięte do odpowiedniej długości końcówki goldpinów wlutowujemy na płytce.

RqdQRbzBGxVDE
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Podczas montażu podzespołów czynnych i biernych przyjmuje się zasadę, zgodnie z którą w pierwszej kolejności należy wlutowywać części najniższe, znajdujące się najbliżej płytki. W tym przypadku są nimi rezystory.

R16MjWVDAV0UW
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Następnie wlutowujemy diody LED.

RYbj84d0s6O01
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Kolejnym etapem jest wlutowanie żeńskiego gniazda goldpin.

R13DgbMkjhSTF
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

We wlutowanym gnieździe umieścimy końcówki modułu Bluetooth HC‑05. Całość podłączamy do płytki Arduino Uno.

R1MMU6ccL9dWd
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Podpinamy kabel USB zasilający układ.

R1W26ku7q1zd6
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Teraz wystarczy uruchomić aplikację Serial Bluetooth Terminal, połączyć się z modułem i przekazać płytce Arduino polecenia.

R1IOaqFfytizb
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
R1Ds4qobtYbWt
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
RVGbv6bCByUrV
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
R3yZAFKO8ixgE
Film nawiązujący do treści materiału, w którym pokazany jest sposób działania układu. Początkowo zapala się dioda żółta, następnie czerwona, niebieska, wyłącza się czerwona, żółta i na końcu niebieska. Włączają się wszystkie, następnie wyłącza żółta, potem pozostałe. Włącza się żółta, niebieska i na końcu czerwona.

Słownik

shield
shield

nakładka mająca postać płytki drukowanej z zamontowanymi elementami; ułatwia  podłączanie podzespołów do płytki Arduino