HC 05 awersWysyłanie danych z PC poprzez Arduino z wykorzystaniem transmisji bluetooth poprzez HC-05 (HC-06)
Moduł HC-05 (HC-06) służy do transmisji buetooth v2.0+EDR klasa 2. pozwala na komunikację pomiędzy mikrokontrolerali np. Arduino oraz z urządzeniami z systemem Android.
Opis programowania modułu HC-05 komendami AT jest pod tym LINKIEM.

Transmisja danych modułu pracuje z napięciem 3,3 V i komunikuje się poprzez interfejs szeregowy UART (piny RX, TX). Moduł, po przełaczeniu trybu pracy wspiera komendy AT i może działać jako samodzielny mikrokontroler. Moduł HC-05 umożliwia pracę w trybie master (może inicjować komunikację) i slave (może akceptować komunikację) natomiast HC-06 działa tylko w trybie slave za to jest trochę tańszy. Moduł HC-05 ma 6 wyprowadzeń i mały przełącznik do wprowadzania modułu w tryb komunikacji komendami AT. ...

Poniżej przedstawiono przykład 1, który pozwala na wysłanie tekstu z Arduino na urządzenie z systemem ANDROID poprzez bluetooth.

Uwaga! Moduł może być zasilany napięciem z zakresu 3,3V-6,5V jednak piny transmisji danych (logika) komunikują się przy napięciu 3,3V. Dla tego moduł HC-05 powinno się łączyć z Arduino UNO (logika 5V) poprzez konwerter napięć (stanów logicznych) lub poprzez dzielnik napięcia. Dzielnikiem mogą tu być np. dwa identyczne rezystory np. 10 kΩ. W internecie przedstawione są przykłady z bezpośrednim podłączeniem, ale może to uszkodzić łączone elementy.

Podłaczenie Arduino - HC-05:
GND-  GND (masa)
VCC-  +5V (plus)
TX-   TX  (inaczej niż zwykle)
RX-   RX

Uwaga 1: podczas programowania Arduino należy wyłączyć moduł HC-05.
Uwaga 2: zasadniczo urządzenia, które mają się komunikować po UART (COM, RS232) łączymy krosując tj. łączymy RX-TX i TX-RX. W naszym przypadku komunikacja odbywa się pomiędzy modułami bluetooth a nie pomiędzy Arduino a modułem HC-05. Ten drugi wariant mozna wykorzystać do programowania komendami AT i wtedy Rx-TX (LINK do dokumentacji i komend AT).
Uwaga 3: Ważne jest to, że w Arduino można wykorzystać wszsytkie piny cyfrowe do komunikacji UART (TX-RX) poprzez dodatkową bibliotekę - LINK (Software Serial Example). Daje to teoretycznie możliwość podłączenia 7 takich modułów!

Po takim podłączeniu "z automatu", bez dodatkowego kodu programu, każdy tekst wysłany z Arduino (np. poprzez Serial.print"Tekst";) trafia do HC-05 a po sparowaniu urządzenia z systemem ANDROID (za załączonym modułem bluetooth) z modułem HC-05 można otrzymać na tym urządzeniu.

Do parowania niezbędny będzie kod, który jest ustawiony przez producenta: 1234. Kod ten można zmienić komendami AT.
W urządzeniu z systemem ANDROID należy zainstalować i uruchomić dowolny program z serii: Serial Bluetooth Terminal.

Przykładowy program do komunikacji Arduino z HC-05 z urządzeniem z systemem ANDROID:

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
Serial.println("Komunikacja Bluetooth:");
}

void loop()
{
if (mySerial.available())
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());
}


W monitorze portu szeregowego (PC - Arduino IDE) należy ustawić opcję "Zarówno NL, jak i CR" oraz bound rate 9600. Po uruchomieniu Arduino pojawi się komunikat "Komunikacja Bluetooth:". Po tym mozna wysyłać dane.

Sterowanie Arduino np. telefonem opisane jest w TYM miejscu.