- Wymagane składniki
- Schemat obwodu modułu Bluetooth ESP8266 HC-05
- Moduł Bluetooth HC-05
- Korzystanie z szeregowego terminala Bluetooth (aplikacja na Androida)
- Programowanie NodeMCU ESP8266 do interfejsu Bluetooth
Obecnie Bluetooth stał się integralną częścią urządzeń cyfrowych i jest wbudowany w większość urządzeń, takich jak smartfon, laptop, komputer, aparat fotograficzny, zegarki, opaski fitness i wiele innych. Bluetooth zawsze dominował w komunikacji bezprzewodowej, odkąd został odkryty. Chociaż technologia Bluetooth jest zasadniczo systemem wymiany kabli, ale wykorzystuje również uniwersalny most do istniejących sieci danych i mechanizm połączenia ad hoc dla wielu urządzeń w różnych konfiguracjach. Użyliśmy modułu Bluetooth HC05 i HC06 z wieloma innymi mikrokontrolerami, aby komunikowały się bezprzewodowo:
- Połączenie Bluetooth HC-05 z STM32F103C8 Blue Pill: Kontrolująca dioda LED
- Połączenie modułu Bluetooth HC-05 z mikrokontrolerem AVR
- Robot sterowany systemem Android za pomocą mikrokontrolera 8051
- Sterowanie GPIO Raspberry Pi za pomocą aplikacji na Androida przez Bluetooth
- Samochodzik sterowany przez Bluetooth za pomocą Arduino
Dzisiaj połączymy moduł HC-05 Bluetooth z popularnym modułem Wi-Fi ESP8266 i będziemy sterować bezprzewodowo diodą LED, wysyłając polecenia przez Bluetooth. Tę diodę LED można zastąpić przekaźnikiem i urządzeniem AC, aby zbudować aplikację automatyki domowej.
Wymagane składniki
Sprzęt komputerowy:
- NodeMCU ESP8266
- Moduł Bluetooth HC-05
Oprogramowanie:
- Arduino IDE
- Szeregowy terminal Bluetooth (aplikacja na Androida): do monitorowania danych Bluetooth na smartfonie.
Schemat obwodu modułu Bluetooth ESP8266 HC-05
Schemat podłączenia modułu Bluetooth HC-05 z NodeMCU ESP8266 jest bardzo prosty i pokazany poniżej:
Zewnętrzny moduł Bluetooth jest potrzebny w ESP8266, ponieważ nie ma wbudowanego Bluetooth, takiego jak ESP32. ESP32 ma wbudowany Bluetooth Low Energy (BLE) i Classic Bluetooth, na których omówiliśmy wcześniej kilka samouczków:
- Serwer ESP32 BLE - Usługa GATT w zakresie wskazywania poziomu baterii
- Klient ESP32 BLE - łączenie się z opaską fitness w celu wyzwolenia żarówki
- Jak korzystać z szeregowego połączenia Bluetooth w ESP32
Moduł Bluetooth HC-05
HC-05 to szeregowy moduł Bluetooth. Można go skonfigurować za pomocą poleceń AT. Może pracować w trzech różnych konfiguracjach (Master, Slave, Loop back). W naszym projekcie będziemy go używać jako niewolnika. Cechy modułu HC-05 obejmują:
- Typowa czułość -80dBm.
- Domyślna szybkość transmisji: 9600bps, 8 bitów danych, 1 bit stopu, brak parzystości.
- Kod PIN automatycznego parowania: domyślny kod PIN „1234” lub „0000”.
- Posiada 6 pinów.
- Piny Vcc i Gnd służą do zasilania HC-05.
- Do komunikacji z mikrokontrolerem służą piny Tx i Rx.
- Włącz pin do aktywacji modułu HC-05. gdy jest niski, moduł jest wyłączony
- Stan pin działa jako wskaźnik stanu. Gdy nie jest sparowane / połączone z żadnym innym urządzeniem Bluetooth, dioda LED miga w sposób ciągły. Gdy jest połączony / sparowany z jakimkolwiek innym urządzeniem Bluetooth, dioda LED miga ze stałym opóźnieniem 2 sekund.
Aby dowiedzieć się więcej o module Bluetooth, przejdź do naszych innych projektów związanych z Bluetooth.
Korzystanie z szeregowego terminala Bluetooth (aplikacja na Androida)
Korzystanie z tej aplikacji jest bardzo łatwe i wymaga kilku kroków. Zrzuty ekranu są podane poniżej z krokami. Wystarczy sparować HC-05 ze smartfonem. Domyślny kod to „0000” lub „1234”, ale działa głównie „1234”.
- Najpierw pobierz i zainstaluj aplikację. Następnie przejdź do urządzeń, aby znaleźć moduł HC-05. Wybierz moduł HC-05 wyszukany w aplikacji. Jeśli nie zostanie znaleziony, sprawdź, czy HC-05 jest prawidłowo zasilany.
- Po kliknięciu HC-05 zostanie połączony. Teraz wpisz dowolną wiadomość w polu wiadomości i wyślij ją. Zostanie wydrukowany na monitorze szeregowym Arduino.
Programowanie NodeMCU ESP8266 do interfejsu Bluetooth
Aby zaprogramować NodeMCU ESP8266 za pomocą ArduinoIDE, wystarczy podłączyć go z laptopa lub komputera PC za pomocą kabla Micro USB i otworzyć Arduino IDE. W tym samouczku zostanie użyty numer seryjny sprzętu i numer seryjny oprogramowania. Szeregowy sprzęt będzie używany do odczytu i zapisu danych do monitora szeregowego Arduino, a oprogramowanie szeregowe będzie używane do komunikacji z HC-05. Jak zawsze kompletny kod i wideo demonstracyjne znajdują się na końcu samouczka.
Początkowo dołącz bibliotekę Software Serial, ponieważ będzie ona używana w tym samouczku.
#zawierać
Zdefiniuj pin RX i TX dla komunikacji szeregowej oprogramowania, zdefiniuj także pin LED podłączony do NodeMCU. Używamy wewnętrznej diody LED NodeMCU, która znajduje się na pinie D4.
SoftwareSerial btSerial (D2, D3); // RX, int led = D4;
Uruchom oprogramowanie i sprzęt szeregowy z szybkością 9600 bodów. Ustaw Pin Led jako wyjście. Wydrukuj wiadomość powitalną i wiadomość dotyczącą debugowania.
Serial.begin (9600); btSerial.begin (9600); pinMode (D4, WYJŚCIE); Serial.println ("Uruchomiono…");
Najpierw odczytaj z modułu Bluetooth i zdefiniuj przypadek, że jeśli moduł Bluetooth odbierze „B” z telefonu, zacznie migać dioda podłączona do D4 NodeMCU, w przeciwnym razie, jeśli otrzyma „S”, przestań migać. Nie używamy tutaj delay () . Ale Arduino „millis” zostanie użyte, aby nie utrudniać działania Arduino.
if (btSerial.available ()> 0) { char data = btSerial.read (); switch (data) { case 'B': ledB = "blink"; przerwa; sprawa 'S': ledB = "stop"; przerwa; domyślnie: przerwa; } }
Milis jest zdefiniowana i ustawia opóźnienie na 500 ms, tj. Dioda LED będzie migać co 500 ms. Możesz również skonfigurować opóźnienie diody LED, zmieniając wartość `` interwału ''. Stan diody LED zostanie przełączony.
unsigned long currentMillis = millis ();
if (ledB == "blink") { Serial.println ("miganie rozpoczęte"); if (currentMillis - previousMillis> = interval) { previousMillis = currentMillis; if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } digitalWrite (led, ledState); } }
I to zakończy programowanie NodeMCU do bezprzewodowego migania diod LED za pomocą Bluetooth. Możesz także zmienić program, aby wykonywał różne zadania z diodą LED, taką jak dioda LED może zostać zastąpiona przekaźnikiem z urządzeniem AC, aby stworzyć projekt automatyki domowej Bluetooth. W przypadku jakichkolwiek wątpliwości lub sugestii prosimy o kontakt z naszym forum lub komentarz poniżej.