W tym artykule dowiesz się:
- jak podłączyć bluetooth HC-05 do Arduino
- jak sterować Arduino przez bluetooth z telefonu komórkowego
- jak sparować HC-05 z telefonem
HC-05 i sterowanie telefonem to pierwsze co nasuwa się do głowy jeśli bierzemy pod lupę moduły bluetooth. Dzięki transmisji bezprzewodowej możemy zdalnie zmienić ustawienia naszego Arduino a tym samym sterować innymi czujnikami czy modułami, które wcześniej do niego podpięliśmy. Otwiera nam to możliwość obsługi samochodzików zdalnie sterowanych, włączanie i wyłączanie urządzeń dzięki listwom przekaźnikowym w tym świecenie i gaszenie światła, obsługę wentylatorów i innych urządzeń działających na większe napięcie.
W tym wpisie skupimy się na samym sposobie przekazywania komend do Arduino. Wysterujemy wybrany port oraz wbudowaną w Arduino diodę na pinie numer 13.
Jak podłączyć HC-05 z Arduino?
Aby prawidłowo połączyć HC-05 z Arduino powinniśmy trzymać się poniższego schematu.
Arduinio <-> HC-05
- 5V <-> VCC
- GND <-> GND
- RX <-> TX
- TX <-> RX
Pamiętajmy, że napięcia poziomów logicznych na HC-05 to 3.3V a na Arduino 5V dlatego najbezpieczniej jest wykorzystać konwerter poziomów logicznych dostępny w naszym sklepie: konwerter poziomów logicznych.
Konwerter pozwala nam na łączenie ze sobą modułów pracujących na różnych napięciach w naszym przypadku 3.3V z 5V – ten sprzedawany u nas działa dwukierunkowo i umożliwia bezproblemową transmisję danych.
Po podłączeniu zasilania powinniśmy zobaczyć diodę LED na HC-05 mrugającą parę razy na sekundę – oznacza to, że moduł jest gotowy do parowania z innym urządzeniem bluetooth.
Możemy teraz sprawdzić w naszym telefonie czy widzimy na liście bluetooth moduł HC-05.
Kod programu Arduino
Aby móc sterować portami Arduino przez bluetooth konieczne będzie napisanie programu.
Na gotowo wygląda on tak:
void setup() {
Serial.begin(9600);
pinMode(8, OUTPUT); // ustawiamy pin 8 jako wyjście
}
void loop() {
if(Serial.available()>0) //sprawdzamy czy są jakieś bity do odczytania jeśli są to przypisujemy je do zmiennej odczyt typu char.
{
char odczyt= Serial.read(); //przypisanie do zmiennej odczyt odebranego znaku
switch(odczyt) //pętla switch
{
case '1': digitalWrite(8, HIGH);break; // kiedy wyślemy z telefonu 1, Arduino ustawi stan wysoki na pinie 8
case '2': digitalWrite(8, LOW);break; // gdy wyślemy 2 Arduino ustawi stan niski na pinie 8
case '3': digitalWrite(13, HIGH);break; // kiedy wyślemy z telefonu 1, Arduino ustawi stan wysoki na pinie 13
case '4': digitalWrite(13, LOW);break; // gdy wyślemy 2 Arduino ustawi stan niski na pinie 13
default : break;
}
Serial.println(odczyt);
}
delay(50);
}
Każda linijka kodu została objaśniona komentarzem, w razie niejasności zapraszam do dodawania pytań w komentarzach pod wpisem.
Ogólna zasada działania programu opiera się o odczytywanie znaków wysyłanych po Porcie Szeregowym, porównujemy znaki w pętli, jeśli jakiś znak posiada swoją funkcję realizujemy ją i czekamy na kolejną komendę. Na pinie 13 Arduino UNO mamy podpiętą diodę oznaczoną L dzięki temu możemy od razu sprawdzić czy nasz program działa prawidłowo. Pod pin 8 możemy podpiąć jakiś przekaźnik wyzwalany napięciem 5V ja zamiast tego podpinam diodę tylko po to by sprawdzić czy na pinie 8 pojawia się napięcie. U mnie wszystko działa jak należy, a u Ciebie?
Pamiętaj, że podłączając diodę LED – dłuższą nóżkę wpinamy do + a krótszą do masy. Zdjęcie mojego połączenia znajdziesz poniżej.
Aplikacja na telefon do sterowania przez Bluetooth.
Jaką aplikację do sterowania wybrać? Dowolną, która może wysyłać coś przez Port Szeregowy Bluetooth. Ja w telefonie z androidem wykorzystuję aplikację „Serial Bluetooth Terminal” do pobrania z google store.
Po pobraniu aplikacji, wyszukujemy w naszym telefonie w ustawieniach na liście urządzeń bluetooth HC-05 klikamy połącz. Zapytani o PIN wklepujemy 1234. Wtedy połączenie powinno zostać poprawnie nawiązane. Teraz uruchamiamy naszą aplikację Bluetooth Terminal.
Z menu po lewej wybieramy Devices -> HC-05. Powinniśmy zobaczyć informację o poprawnym połączeniu się z modułem. Teraz na samym dole linii komend wpisujemy wcześniej zaprogramowane w arduino znaki i klikamy wyślij.
W kolejnym artykule podpowiem jak wykorzystać Arduino jako konwerter portu szeregowego by nawiązać komunikację HC-05 z komputerem. Jak wprowadzić HC-05 w tryb odbierania komend AT i jak za ich pomocą zmieniać ustawienia modułu bluetooth. Pamiętajcie żeby polubić naszego Facebooka, dzięki temu będziecie na bieżąco z kolejnymi wpisami:
Moduł bluetooth HC-05 możecie zakupić w naszym sklepie, oferowane przez nas moduły są oryginalne i w pełni zgodne ze specyfikacją, dzięki temu nie będzie problemów z odwrotną polaryzacją na pinach i innych dziwnych historii.
Moduł bluetooth HC-05 <- Kup w naszym sklepie
2 Comments
Zostaw komentarz
Tomasz
Moduł hc-06 jest o niebo lepszy i szybszy. Zalecam konwerter poziomie logicznych.
Tomasz
Konwertery poziomów logicznych są tanie i szybkie w podłączeniu.