- Wymagane materiały
- Moduł Bluetooth (HC-05)
- Porty STM32 USART
- Schemat obwodu i połączenia
- Programowanie STM32F103C8
- Kroki łączenia modułu Bluetooth z telefonem z systemem Android
W dzisiejszym świecie Bluetooth stał się bardzo popularny i prawie każde urządzenie, takie jak telefon komórkowy, laptop i samochodowy system multimedialny, wykorzystuje technologię Bluetooth do komunikacji bezprzewodowej. Bluetooth jest używany nie tylko do przesyłania danych, ale także do bezprzewodowego sterowania innymi urządzeniami Bluetooth, na przykład za pomocą zestawu słuchawkowego Bluetooth można bezprzewodowo słuchać utworu z telefonu komórkowego lub używać samochodowego systemu audio do odtwarzania utworów z telefonu komórkowego.
Bluetooth to technologia bezprzewodowa działająca na częstotliwości 2,4 GHz. Normalny sygnał Bluetooth znajduje się w promieniu 10 metrów. Bluetooth jest najczęściej używaną technologią bezprzewodową w projektach wbudowanych, pod warunkiem, że zasięg komunikacji jest ograniczony. Dodatkową zaletą Bluetooth jest niskie zużycie energii i niskie koszty eksploatacji. Zwykle jest używany do łączenia mikrokontrolerów ze smartfonami za pomocą aplikacji Bluetooth.
Widzieliśmy połączenie modułu Bluetooth z innymi mikrokontrolerami, takimi jak Arduino, 8051, PIC itp. Teraz w tym samouczku połączymy moduł Bluetooth HC-05 z STM32F103C8 i włączamy / wyłączamy diodę LED za pomocą telefonu komórkowego z systemem Android.
Wymagane materiały
- STM32F103C8
- Moduł Bluetooth (HC-05)
- DOPROWADZIŁO
- Android Mobile
- Płytka prototypowa
- Przewody łączące
Oprogramowanie:
- Terminal Bluetooth (aplikacja na Androida)
Moduł Bluetooth (HC-05)
Jest to najczęściej używany moduł Bluetooth w projektach embedded. Jest to szeregowy moduł Bluetooth, który wykorzystuje komunikację szeregową o zasięgu poniżej 100 mi działa przy napięciu 5 V (minimum 3,3 V). Umożliwia bezprzewodowe połączenie dwóch mikrokontrolerów, a także telefon komórkowy i laptop. Ponieważ dostępnych jest wiele aplikacji na Androida, jest to bardzo przydatne do tworzenia projektów bezprzewodowych sterowanych przez Bluetooth.
Wykorzystuje komunikację USART i może współpracować z mikrokontrolerami posiadającymi protokół komunikacyjny USART.
Posiada zintegrowaną antenę. Posiada konfiguracje Master / Slave, które można zmieniać w trybie komend AT, co jest przydatne, gdy tylko jedno urządzenie powinno przesyłać dane (master do slave), jak na przykład z komputera (MASTER) do slave (dowolny MCU). Master może łączyć się z innymi urządzeniami, a slave nie łączy się z innym połączeniem niż master.
Tryby działania
Posiada dwa tryby AT Command Mode i Data Mode.
Gdy Bluetooth jest włączony , domyślnie przechodzi w tryb danych. Ten tryb może być używany do przesyłania danych. Aby wejść w tryb AT Command podczas włączania, musimy nacisnąć przycisk obecny w module, aby zmienić domyślne ustawienia modułu, takie jak konfiguracje master / slave.
Kołki modułu Bluetooth
- Pin EN (ENABLE) - Ten pin jest używany do ustawienia trybu danych lub trybu poleceń AT. Domyślnie jest w TRYBIE DANYCH. Naciśnięcie przycisku podczas włączania powoduje przejście do trybu poleceń AT.
- Pin + 5V - służy do zasilania modułu
- Pin GND - służy do uziemienia modułu
- Pin TX - ten pin łączy się z pinem RX MCU
- Pin RX - Ten pin jest podłączony do pin TX MCU
- STAN - Ten pin wskazuje stan modułu, patrz poniżej o wskazaniach
Wskazanie LED
- Posiada wskaźnik LED (CZERWONY), który informuje o stanie modułu Bluetooth.
- Gdy moduł Bluetooth NIE JEST PODŁĄCZONY do żadnego urządzenia, sygnał spada, a czerwona dioda miga w sposób ciągły, co oznacza, że moduł NIE JEST SPAROWANY.
- Gdy moduł Bluetooth jest PODŁĄCZONY do dowolnego urządzenia, sygnał przechodzi w stan WYSOKI, a czerwona dioda miga z pewnym opóźnieniem, co oznacza, że moduł jest SPAROWANY.
Sprawdź nasze inne projekty, aby dowiedzieć się więcej o module Bluetooth HC-05 z innymi mikrokontrolerami:
- Samochodzik sterowany przez Bluetooth za pomocą Arduino
- System automatyki domowej sterowany przez Bluetooth przy użyciu 8051
- Światła sterowane głosem za pomocą Raspberry Pi
- Radio FM sterowane smartfonem za pomocą Arduino i przetwarzania
- Robot samochodowy sterowany telefonem komórkowym za pomocą czujnika G i Arduino
- Połączenie modułu Bluetooth HC-06 z mikrokontrolerem PIC
Porty STM32 USART
Szeregowe porty komunikacyjne USART STM32F103C8 (BLUE PILL) pokazano na poniższym obrazku. Są to kolory w kolorze niebieskim (PA9-TX1, PA10-RX1, PA2-TX2, PA3-RX2, PB10-TX3, PB11-RX3). Posiada trzy takie kanały komunikacji.
Schemat obwodu i połączenia
Połączenia obwodów do łączenia modułu Bluetooth z STM32 są wykonane jak poniżej
Połączenie między STM32F103C8 a modułem Bluetooth (HC-05)
- Pin TX (PA9) STM32F103C8 jest połączony z pinem RX modułu Bluetooth.
- Pin RX (PA10) STM32F103C8 jest połączony z pinem TX modułu Bluetooth.
- Pin VCC (+ 5V) modułu Bluetooth jest połączony z pinem 5V STM32F103C8.
- Pin GND modułu Bluetooth jest połączony z pinem GND STM32F103C8.
Inne połączenia
- Pin (PA0) STM32 (niebieska pigułka) jest połączony z dodatnim pinem diody LED przez rezystor szeregowy. Zastosowana tutaj dioda LED ma mieszany kolor.
- Dioda LED kolejny pin jest podłączony do GND STM32.
Programowanie STM32F103C8
Łączenie Bluetooth z STM32 jest takie samo jak arduino, a programowanie w STM32 jest takie samo jak Arduino IDE. Zobacz ten samouczek dotyczący programowania STM32 z USB przy użyciu Arduino IDE.
Jak już powiedziano, w tym projekcie połączymy moduł Bluetooth (HC-05) z STM32F103C8 i użyjemy smartfona z Androidem z aplikacją Android Terminal Bluetooth do włączania i wyłączania diody LED.
Uwaga: pin RX & TX musi zostać usunięty podczas przesyłania kodu do STM32F103C8.
Kompletny kod tego projektu znajduje się na końcu tego samouczka wraz z demonstracyjnym wideo.
Kodowanie tego projektu jest takie proste. Można użyć tych samych kodów Arduino, ale należy zmienić tylko pin. Ponieważ mamy trzy zestawy pinów USART w STM32F103C8, więc musimy określić właściwy pin, którego użyliśmy do podłączenia modułu Bluetooth.
1. Najpierw musimy nazwać piny z ich odpowiednim numerem pin z typem danych int w następujący sposób
const int pinout = PA0;
2. Następnie potrzebujemy zmiennej do przechowywania danych szeregowych z telefonu komórkowego z systemem Android. Dane mogą być znakami lub liczbami całkowitymi w następujący sposób
char inputdata = 0;
3. Następnie w void setup () musimy rozpocząć komunikację szeregową pomiędzy STM32 Blue Pill a modułem Bluetooth, podając prędkość transmisji 9600
Serial1.begin (9600);
Użyliśmy Serial1 tutaj, bo mamy podłączony HC-05 do TX1 i RX1 z STM32.
Możemy również użyć Serial2 lub Serial3, ale odpowiednio pin musi być podłączony.
4. Wiadomość wprowadzająca jest wysyłana jako dane szeregowe do portu szeregowego1 , czyli do modułu Bluetooth HC05. Ten moduł dodatkowo wysyła dane do aplikacji terminala Bluetooth na urządzenia mobilne z systemem Android. Dlatego używamy poniższych stwierdzeń
Serial1.print ("CIRCUIT DIGEST \ n"); Serial1.print ("BLUETOOTH Z STM32 \ n");
5. Następnie musimy ustawić pinmode (PA0) jako wyjście, ponieważ podłączyliśmy led do tego pinu. Więc używamy
pinMode (pinout, OUTPUT);
6. Następnie w void loop () uruchamiamy następujące dane, aby odczytać dane szeregowe i odpowiednio włączyć / wyłączyć diodę LED
void loop () { If (Serial1.available ()> 0) { inputdata = Serial1.read (); if (inputdata == '1') { digitalWrite (pinout, HIGH); Serial1.print ("LED WŁĄCZONA \ n"); } else if (inputdata == '0') { digitalWrite (pinout, LOW); Serial1.print ("LED WYŁĄCZONA \ n"); } } }
Tutaj używamy instrukcji if , ponieważ ten kod jest wykonywany tylko wtedy, gdy port Serial1 ma jakiekolwiek dane odebrane z modułu Bluetooth, dlatego ta instrukcja jest używana Serial1.available ()> 0 . W przeciwnym razie, jeśli nie dostanie się, czeka, aż rozpocznie komunikację szeregową. Teraz przechowuje odebrane dane w zmiennej inputdata = Serial1.read (). Następnie sprawdza wartość wysłaną z aplikacji terminala Bluetooth. Więc jeśli wartość wynosi 1, wyświetla diodę LED ON i sprawia, że pin (PA0) przechodzi w stan WYSOKI za pomocą instrukcji digitalWrite (pinout, HIGH), a jeśli wartość wynosi 0, drukuje LED WYŁĄCZONY i powoduje, że pin (PA0) staje się NISKI.
Kroki łączenia modułu Bluetooth z telefonem z systemem Android
Krok 1: - Otwórz Bluetooth z telefonu komórkowego po przesłaniu kodu do STM32 z Arduino IDE i zasileniu obwodu. PAMIĘTAJ, aby usunąć pin RX i TX podczas przesyłania kodu
Krok 2: - W dostępnych urządzeniach wybierz HC-05 i wprowadź hasło jako 1234
Krok 3: - Po sparowaniu otwórz aplikację Bluetooth Terminal, wybierz podłącz urządzenie i wybierz HC-05, jak pokazano poniżej
Krok 4: - Po podłączeniu do modułu HC-05 Bluetooth, wprowadź wartości na terminalu 1 lub 0, aby włączyć i wyłączyć diodę LED. Otrzymasz również komunikat, że dioda LED jest włączona lub wyłączona.