- Nødvendige materialer
- Bluetooth-modul (HC-05)
- STM32 USART-porte
- Kredsløbsdiagram og forbindelser
- Programmering STM32F103C8
- Trin til tilslutning af Bluetooth-modul med Android-telefon
I dagens verden er Bluetooth blevet meget populært, og næsten alle enheder som infotainmentsystemer til mobiltelefoner, bærbare computere og biler bruger Bluetooth til trådløs kommunikation. Bluetooth bruges ikke kun til at overføre data, men også til at styre andre Bluetooth-enheder trådløst, som ved hjælp af Bluetooth-headset kan du høre sangen trådløst fra din mobiltelefon eller bruge billydsystem til at afspille sangene fra din mobil.
Bluetooth er en trådløs teknologi, der fungerer på frekvensen 2,4 GHz. Normalt Bluetooth-signal er inden for en radius på 10 meter. Bluetooth er mest almindeligt anvendt trådløs teknologi i integrerede projekter, forudsat at kommunikationsområdet er begrænset. Bluetooth har tilføjet fordel af sit lave strømforbrug og lave drift. Det bruges generelt til grænseflade mellem mikrocontrollere og smarte telefoner ved hjælp af Bluetooth-applikationer.
Vi har set grænseflade mellem Bluetooth-modulet og andre mikrocontrollere som Arduino, 8051, PIC osv. Nu i denne tutorial vil vi interface et HC-05 Bluetooth-modul med STM32F103C8 og tænde / slukke for en LED ved hjælp af Android-mobil.
Nødvendige materialer
- STM32F103C8
- Bluetooth-modul (HC-05)
- LED
- Android mobil
- Brødbræt
- Tilslutning af ledninger
Software:
- Bluetooth-terminal (Android-applikation)
Bluetooth-modul (HC-05)
Det bruges oftest Bluetooth-modul i indlejrede projekter. Det er et serielt Bluetooth-modul, der bruger seriel kommunikation med en rækkevidde mindre end 100 m og fungerer ved 5V (3,3V minimum). Det kan bruges til at forbinde to mikrocontrollere trådløst og også med mobiltelefon og bærbare computere. Da der er mange Android-applikationer er tilgængelige, er det meget nyttigt til at lave trådløse Bluetooth-kontrollerede projekter.
Det bruger USART-kommunikation og kan grænseflade med mikrokontrollere, der har USART-kommunikationsprotokol.
Den har en integreret antenne. Den har Master / Slave-konfigurationer, der kan ændres i AT-kommandotilstand, hvilket er nyttigt, når kun en enhed skal sende dataene (master til slave) som for eksempel fra PC (MASTER) til slave (enhver MCU). En master kan oprette forbindelse til andre enheder, og slave opretter ikke forbindelse til anden forbindelse end master.
Driftsformer
Den har to tilstande AT Command Mode & Data Mode.
Når Bluetooth tændes, skifter det til datatilstand som standard. Denne tilstand kan bruges til dataoverførsler. For at gå ind i AT Command-tilstand under opstart skal vi trykke på knappen, der er til stede i modulet for at ændre standardindstillingerne for modulet som master / slave-konfigurationer.
Pins af Bluetooth-modul
- EN pin (ENABLE) - Denne pin bruges til at indstille datatilstand eller AT kommandotilstand. Som standard er det i DATA MODE. Når der trykkes på knappen under opstart, går den til AT-kommandotilstand.
- + 5V pin - Dette bruges til strømforsyning til modulet
- GND pin - Dette bruges til jord til modul
- TX pin - Denne pin tilsluttet til RX pin på MCU
- RX-pin - Denne pin er forbundet til TX-pin på MCU
- STATE - Denne pin angiver modulets status, se nedenfor om indikationer
LED-indikation
- Den har en LED (RØD) indikator, der angiver tilstanden for Bluetooth-modulet.
- Når Bluetooth-modulet IKKE er TILSLUTTET til en hvilken som helst enhed, bliver signalet lavt, og den røde LED blinker kontinuerligt, hvilket indikerer, at modulet IKKE er PARET.
- Når Bluetooth-modulet er TILSLUTTET til en hvilken som helst enhed, går signalet HØJ, og den røde LED blinker med en vis forsinkelse, hvilket indikerer, at modulet er PARET.
Se vores andre projekter for at lære mere om Bluetooth-modul HC-05 med andre mikrocontrollere:
- Bluetooth-styret legetøjsbil ved hjælp af Arduino
- Bluetooth-styret hjemmeautomatiseringssystem ved hjælp af 8051
- Stemmestyrede lys ved hjælp af Raspberry Pi
- Smart telefonstyret FM-radio ved hjælp af Arduino og Processing
- Mobiltelefonstyret robotbil ved hjælp af G-sensor og Arduino
- Interfacing Bluetooth-modul HC-06 med PIC-mikrocontroller
STM32 USART-porte
STM32F103C8 (BLÅ PILLE) USART seriel kommunikationsporte vises i nedenstående pin-out-billede. Disse er blåfarvede med (PA9-TX1, PA10- RX1, PA2-TX2, PA3- RX2, PB10-TX3, PB11- RX3). Det har tre sådanne kommunikationskanaler.
Kredsløbsdiagram og forbindelser
Kredsløbsforbindelserne til grænseflade mellem Bluetooth-modul og STM32 er lavet som nedenfor
Forbindelse mellem STM32F103C8 og Bluetooth-modul (HC-05)
- TX-stiften (PA9) på STM32F103C8 er tilsluttet RX-stiften på Bluetooth-modulet.
- RX-stiften (PA10) på STM32F103C8 er tilsluttet TX-stiften på Bluetooth-modulet.
- VCC-stift (+ 5V) på Bluetooth-modulet er forbundet til 5V-stift på STM32F103C8.
- GND-stift på Bluetooth-modulet er tilsluttet til GND-stift på STM32F103C8.
Andre forbindelser
- (PA0) -stiften på STM32 (Blue Pill) er forbundet til en positiv stift af LED gennem en seriemodstand. LED bruges her er blandet farve.
- Den ledede anden pin er forbundet til GND af STM32.
Programmering STM32F103C8
Interfacing Bluetooth med STM32 er det samme som arduino, og programmering i STM32 er det samme som Arduino IDE. Se denne vejledning til programmering af STM32 med USB ved hjælp af Arduino IDE.
Som allerede fortalt vil vi i dette projekt grænseflade til et (HC-05) Bluetooth-modul med STM32F103C8 og bruge en Android-smarttelefon med Android-applikationen Bluetooth Terminal til at tænde og slukke for LED.
Bemærk: RX & TX-stiften skal fjernes, mens koden uploades til STM32F103C8.
Komplet kode for dette projekt er givet i slutningen af denne tutorial med en demonstration video.
Kodning til dette projekt er så enkel. Samme Arduino-koder kan bruges, men kun pin skal ændres. Fordi vi har tre sæt USART-pin i STM32F103C8, så vi skal angive den korrekte pin, som vi brugte til at forbinde Bluetooth-modulet.
1. Først skal vi navngive benene med deres respektive pin-nummer med int- datatypen som følger
const int pinout = PA0;
2. Dernæst skal vi have en variabel til at gemme serielle data fra Android-mobilen. Dataene kan være et char eller heltal som følger
char inputdata = 0;
3. Næste i ugyldig opsætning () skal vi starte seriel kommunikation mellem STM32 Blue Pill og Bluetooth-modulet ved at give en baudrate på 9600
Serial1.begin (9600);
Vi brugte Serial1 her, fordi vi forbandt HC-05 til TX1 og RX1 af STM32.
Vi kan også bruge Serial2 eller Serial3, men pin skal derfor forbindes.
4. En introduktionsmeddelelse sendes som serielle data til serial1, det vil sige til Bluetooth-modul HC05. Dette modul sender yderligere data til Bluetooth Terminal-appen på Android mobile. Så vi bruger nedenstående udsagn
Serial1.print ("CIRCUIT DIGEST \ n"); Serial1.print ("BLUETOOTH MED STM32 \ n");
5. Dernæst skal vi indstille pinmode (PA0) som output, da vi tilsluttede førte til denne pin. Så vi bruger
pinMode (pinout, OUTPUT);
6. Dernæst i hulrummet () kører vi følgende data for at læse serielle data og tænde / slukke for lysdioden i overensstemmelse hermed
ugyldig sløjfe () { If (Serial1.available ()> 0) { inputdata = Serial1.read (); hvis (inputdata == '1') { digitalWrite (pinout, HIGH); Serial1.print ("LED ON \ n"); } ellers hvis (inputdata == '0') { digitalWrite (pinout, LOW); Serial1.print ("LED OFF \ n"); } } }
Her bruger vi if- erklæringen, fordi denne kode kun udføres, når Serial1-porten har data modtaget fra Bluetooth-modulet, hvorfor denne erklæring bruges Serial1.tilgængelig ()> 0 . Ellers venter den, indtil den begynder seriel kommunikation, hvis den ikke kommer ind. Nu gemmer den de modtagne data i en variabel inputdata = Serial1.read (). Derefter kontrollerer den værdien sendt fra Bluetooth-terminalappen. Så hvis værdien er 1, udskriver den LED TIL og får stiften (PA0) til at gå HØJ ved udsagn digitalWrite (pinout, HIGH), og hvis værdien er 0, udskrives den LED OFF og gør (PA0) stift LAV.
Trin til tilslutning af Bluetooth-modul med Android-telefon
Trin 1: - Åbn Bluetooth fra mobil efter uploade kode til STM32 fra Arduino IDE og give strøm til kredsløbet. HUSK for at fjerne RX- og TX-pin, mens UPLOADING-kode
Trin 2: - På tilgængelige enheder skal du vælge HC-05 og indtaste adgangskoden som 1234
Trin 3: - Efter parring skal du åbne Bluetooth Terminal-appen og vælge tilslut en enhed og vælge HC-05 som vist nedenfor
Trin 4: - Efter tilslutning til HC-05 Bluetooth-modul skal du angive værdier i terminal 1 eller 0 for at tænde og slukke for lysdioden. Du modtager også en besked om, at LED er tændt eller slukket.