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 kΩomega,
program Serial Bluetooth Terminal (dostępny bezpłatnie na platformie Google Play),
kabel USB typu A‑B.
RXWwT57e0Ti9c
Schemat ideowy układu
Rre51yMxH5m2I
Moduł Bluetooth HC‑05
R1HPkOzvR5Fap
RYRBKcLSs9JmK
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
Dodaj diody z rezystorami. Rezystory połącz z anodami diod.
Rgc9xG6kIqZK7
Połącz katody diod i wyprowadzenie GND modułu HC‑05 z szyną masy (GND) płytki stykowej.
RsQ4W71WNFg0Z
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
Na koniec połącz anody diod z płytką Arduino za pośrednictwem podpiętych do nich rezystorów.
RaHZNIY1gHL67
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
Wpisz cyfrę 3 i wyślij ją do modułu. Powinna zapalić się dioda czerwona.
Rc2GmGIQKyZv7
R1LLZGiuPWNXu
Zapal diodę niebieską, wysyłając do modułu cyfrę 5.
RAsjIP3dwcna8
Aby zgasić wszystkie diody, wyślij cyfrę 8.
R1PRf3e5qi6HE
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
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 kΩomega.
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
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
Następnie wlutowujemy diody LED.
RYbj84d0s6O01
Kolejnym etapem jest wlutowanie żeńskiego gniazda goldpin.
R13DgbMkjhSTF
We wlutowanym gnieździe umieścimy końcówki modułu Bluetooth HC‑05. Całość podłączamy do płytki Arduino Uno.
R1MMU6ccL9dWd
Podpinamy kabel USB zasilający układ.
R1W26ku7q1zd6
Teraz wystarczy uruchomić aplikację Serial Bluetooth Terminal, połączyć się z modułem i przekazać płytce Arduino polecenia.
R1IOaqFfytizb
R1Ds4qobtYbWt
RVGbv6bCByUrV
R3yZAFKO8ixgE
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