Sterowanie Arduino z telefonu przez bluetooth przy pomocy HC-05

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.

połączenie bluetooth HC-05 do Arduino

Arduinio <-> HC-05

  • 5V <-> VCC
  • GND <-> GND
  • RX <-> TX
  • TX <-> RX
Podłączony moduł HC-05 z arduino i dioda

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.

Serial Bluetooth Terminal

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:

NASZ FACEBOOK <– klik

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

  1. Tomasz
    Odpowiedz

    Moduł hc-06 jest o niebo lepszy i szybszy. Zalecam konwerter poziomie logicznych.

  2. Tomasz
    Odpowiedz

    Konwertery poziomów logicznych są tanie i szybkie w podłączeniu.

Odpowiedz

Twój adres e-mail nie zostanie opublikowany