- Vereiste materialen
- Bluetooth-module (HC-05)
- STM32 USART-poorten
- Schakelschema en aansluitingen
- Programmering STM32F103C8
- Stappen voor het verbinden van Bluetooth-module met Android-telefoon
In de wereld van vandaag is Bluetooth erg populair geworden en bijna elk apparaat zoals mobiele telefoon, laptop en auto-infotainmentsysteem gebruikt Bluetooth voor draadloze communicatie. Bluetooth wordt niet alleen gebruikt om gegevens over te dragen, maar ook om andere Bluetooth-apparaten draadloos te bedienen, zoals met behulp van een Bluetooth-headset kunt u het nummer draadloos beluisteren vanaf uw mobiele telefoon of kunt u het audiosysteem in de auto gebruiken om de nummers vanaf uw mobiel af te spelen.
Bluetooth is een draadloze technologie die werkt op de frequentie van 2,4 GHz. Het normale Bluetooth-signaal is binnen een straal van 10 meter. Bluetooth is de meest gebruikte draadloze technologie in embedded projecten, mits het communicatiebereik beperkt is. Bluetooth heeft het voordeel van het lage stroomverbruik en de lage kosten toegevoegd. Het wordt over het algemeen gebruikt voor het koppelen van microcontrollers met smartphones door middel van Bluetooth-toepassingen.
We hebben een koppeling gezien van de Bluetooth-module met andere microcontrollers zoals Arduino, 8051, PIC enz. Nu in deze tutorial zullen we een HC-05 Bluetooth-module koppelen aan STM32F103C8 en een LED AAN / UIT schakelen met behulp van Android-mobiel.
Vereiste materialen
- STM32F103C8
- Bluetooth-module (HC-05)
- LED
- Android mobiel
- Breadboard
- Draden aansluiten
Software:
- Bluetooth-terminal (Android-applicatie)
Bluetooth-module (HC-05)
Het wordt meestal Bluetooth-module gebruikt in embedded projecten. Het is een seriële Bluetooth-module die seriële communicatie gebruikt met een bereik van minder dan 100 meter en werkt op 5V (minimaal 3,3V). Het kan worden gebruikt om twee microcontrollers draadloos te verbinden en ook met mobiele telefoons en laptops. Omdat er veel Android-applicaties beschikbaar zijn, is het erg handig voor het maken van draadloze Bluetooth-gestuurde projecten.
Het maakt gebruik van USART-communicatie en kan worden gekoppeld aan microcontrollers met een USART-communicatieprotocol.
Het heeft een geïntegreerde antenne. Het heeft Master / Slave-configuraties die kunnen worden gewijzigd in de AT-opdrachtmodus, wat handig is wanneer slechts één apparaat de gegevens (master naar slave) moet verzenden, zoals bijvoorbeeld van pc (MASTER) naar slave (elke MCU). Een master kan verbinding maken met andere apparaten en slaaf maakt geen verbinding met een andere verbinding dan de master.
Werkingsmodi
Het heeft twee modi: AT Command Mode & Data Mode.
Wanneer Bluetooth is ingeschakeld, gaat het naar de standaardgegevensmodus. Deze modus kan worden gebruikt voor gegevensoverdracht. Om tijdens het opstarten naar de AT Command-modus te gaan, moeten we op de knop in de module drukken om de standaardinstellingen van de module zoals master / slave-configuraties te wijzigen.
Pinnen van Bluetooth-module
- EN pin (ENABLE) - Deze pin wordt gebruikt om Data Mode of AT Command Mode in te stellen. Standaard is het in DATA MODE. Wanneer de knop wordt ingedrukt tijdens het opstarten, gaat het naar de AT-opdrachtmodus.
- + 5V pin - Deze wordt gebruikt voor de voeding van de module
- GND-pin - Deze wordt gebruikt voor aarde voor module
- TX-pin - Deze pin is verbonden met de RX-pin van de MCU
- RX-pin - Deze pin is verbonden met de TX-pin van de MCU
- STATE - Deze pin geeft de status van de module aan, zie hieronder voor indicaties
LED-indicatie
- Het heeft een LED (ROOD) indicator die de status van de Bluetooth-module weergeeft.
- Wanneer de Bluetooth-module NIET is AANGESLOTEN op een apparaat, wordt het signaal laag en knippert de rode led continu, wat aangeeft dat de module NIET GEKOPPELD is.
- Wanneer de Bluetooth-module is AANGESLOTEN op een apparaat, gaat het signaal HOOG en knippert de rode led met enige vertraging, wat aangeeft dat de module GEKOPPELD is.
Bekijk onze andere projecten voor meer informatie over Bluetooth-module HC-05 met andere microcontrollers:
- Bluetooth-gestuurde speelgoedauto met Arduino
- Bluetooth-gestuurd huisautomatiseringssysteem met 8051
- Spraakgestuurde verlichting met Raspberry Pi
- Slimme telefoongestuurde FM-radio met Arduino en verwerking
- Mobiele telefoongestuurde robotauto met behulp van G-sensor en Arduino
- Koppeling van Bluetooth-module HC-06 met PIC-microcontroller
STM32 USART-poorten
STM32F103C8 (BLUE PILL) USART seriële communicatiepoorten worden getoond in de pin-out afbeelding hieronder. Deze zijn blauw gekleurd met (PA9-TX1, PA10-RX1, PA2-TX2, PA3-RX2, PB10-TX3, PB11-RX3). Het heeft drie van dergelijke communicatiekanalen.
Schakelschema en aansluitingen
De circuitverbindingen voor het koppelen van Bluetooth-module met STM32 zijn gemaakt zoals hieronder
Verbinding tussen STM32F103C8 en Bluetooth-module (HC-05)
- De TX-pin (PA9) van de STM32F103C8 is verbonden met de RX-pin van de Bluetooth-module.
- De RX-pin (PA10) van de STM32F103C8 is verbonden met de TX-pin van de Bluetooth-module.
- VCC (+ 5V) pin van Bluetooth-module is verbonden met 5V pin van STM32F103C8.
- GND-pin van Bluetooth-module is verbonden met GND-pin van STM32F103C8.
Andere verbindingen
- De (PA0) pin van STM32 (Blue Pill) is via een serieweerstand verbonden met de positieve pin van LED. De LED die hier wordt gebruikt, is een gemengde kleur.
- De andere pin is aangesloten op GND van STM32.
Programmering STM32F103C8
Bluetooth koppelen aan STM32 is hetzelfde als arduino en programmeren in STM32 is hetzelfde als Arduino IDE. Zie deze tutorial voor het programmeren van STM32 met USB met Arduino IDE.
Zoals al verteld, zullen we in dit project een (HC-05) Bluetooth-module koppelen aan STM32F103C8 en een Android-smartphone met Bluetooth Terminal-Android-applicatie gebruiken om de LED AAN en UIT te zetten.
Opmerking: de RX & TX-pin moet worden verwijderd tijdens het uploaden van de code naar STM32F103C8.
Volledige code voor dit project wordt gegeven aan het einde van deze tutorial met een demonstratie video.
Codering voor dit project is zo eenvoudig. Dezelfde Arduino-codes kunnen worden gebruikt, maar alleen de pin moet worden gewijzigd. Omdat we drie sets USART-pinnen in STM32F103C8 hebben, moeten we de juiste pin specificeren die we hebben gebruikt om de Bluetooth-module te verbinden.
1. Eerst moeten we de pinnen als volgt een naam geven met hun respectievelijke pincode met het gegevenstype int
const int pinout = PA0;
2. Vervolgens hebben we een variabele nodig om seriële gegevens van de Android-mobiel op te slaan. De gegevens kunnen als volgt een char of geheel getal zijn
char inputdata = 0;
3. Vervolgens in void setup (), moeten we seriële communicatie starten tussen STM32 Blue Pill en de Bluetooth-module door een baudrate van 9600 te geven
Serial1.begin (9600);
We hebben hier Serial1 gebruikt omdat we HC-05 op TX1 en RX1 van STM32 hebben aangesloten.
We kunnen ook Serial2 of Serial3 gebruiken, maar dienovereenkomstig moet de pin zijn aangesloten.
4. Een introbericht wordt als seriële data naar de serial1 gestuurd, dat wil zeggen naar Bluetooth-module HC05. Deze module verzendt verder gegevens naar de Bluetooth Terminal-app van Android Mobile. Daarom gebruiken we onderstaande uitspraken
Serial1.print ("CIRCUIT DIGEST \ n"); Serial1.print ("BLUETOOTH MET STM32 \ n");
5. Vervolgens moeten we de pinmode (PA0) instellen als output, aangezien we led hebben aangesloten op deze pin. Dus gebruiken we
pinMode (pinout, OUTPUT);
6. Vervolgens voeren we in de void-lus () de volgende gegevens uit om de seriële gegevens te lezen en de LED dienovereenkomstig in / uit te schakelen
void loop () { If (Serial1.available ()> 0) { inputdata = Serial1.read (); if (inputdata == '1') { digitalWrite (pinout, HIGH); Serial1.print ("LED AAN \ n"); } else if (inputdata == '0') { digitalWrite (pinout, LOW); Serial1.print ("LED UIT \ n"); } } }
Hier gebruiken we de if- instructie omdat deze code alleen wordt uitgevoerd als de Serial1-poort gegevens heeft ontvangen van de Bluetooth-module, daarom wordt deze instructie Serial1.available ()> 0 gebruikt . Als dit niet het geval is, wacht het tot het begint met seriële communicatie. Nu slaat het de ontvangen gegevens op in een variabele inputdata = Serial1.read (). Vervolgens controleert het de waarde die is verzonden vanaf de Bluetooth-terminal-app. Dus als de waarde 1 is, wordt de LED AAN afgedrukt en wordt de pin (PA0) HOOG door de instructie digitalWrite (pinout, HIGH) en als de waarde 0 is, wordt de LED UIT afgedrukt en wordt de pin (PA0) LAAG.
Stappen voor het verbinden van Bluetooth-module met Android-telefoon
Stap 1: - Open Bluetooth vanaf mobiel na het uploaden van code naar STM32 vanaf Arduino IDE en geef stroom aan circuit. DENK ERAAN om de RX- en TX-pin te verwijderen tijdens het UPLOADEN van de code
Stap 2: - Selecteer in beschikbare apparaten HC-05 en voer het wachtwoord in als 1234
Stap 3: - Open na het koppelen de Bluetooth Terminal-app en selecteer een apparaat verbinden en selecteer HC-05 zoals hieronder weergegeven
Stap 4: - Nadat u verbinding hebt gemaakt met de HC-05 Bluetooth-module, geeft u waarden op in terminal 1 of 0 om de LED AAN en UIT te zetten. U ontvangt ook een bericht dat LED aan of uit is.