- Erforderliche Materialien
- Bluetooth-Modul (HC-05)
- STM32 USART-Ports
- Schaltplan und Anschlüsse
- Programmierung STM32F103C8
- Schritte zum Verbinden des Bluetooth-Moduls mit dem Android-Telefon
In der heutigen Welt ist Bluetooth sehr beliebt geworden und fast jedes Gerät wie Mobiltelefon, Laptop und Auto-Infotainmentsystem verwendet Bluetooth für die drahtlose Kommunikation. Bluetooth wird nicht nur zum Übertragen von Daten verwendet, sondern auch zum drahtlosen Steuern anderer Bluetooth-Geräte. Wenn Sie beispielsweise ein Bluetooth-Headset verwenden, können Sie den Titel drahtlos von Ihrem Mobiltelefon hören oder das Auto-Audiosystem verwenden, um die Titel von Ihrem Mobiltelefon abzuspielen.
Bluetooth ist eine drahtlose Technologie, die mit einer Frequenz von 2,4 GHz arbeitet. Das normale Bluetooth-Signal befindet sich im Bereich von 10 Metern Radius. Bluetooth ist die am häufigsten verwendete drahtlose Technologie in eingebetteten Projekten, sofern der Kommunikationsbereich begrenzt ist. Bluetooth hat den Vorteil eines geringen Stromverbrauchs und eines kostengünstigen Betriebs hinzugefügt. Es wird im Allgemeinen verwendet, um Mikrocontroller mithilfe von Bluetooth-Anwendungen mit Smartphones zu verbinden.
Wir haben eine Schnittstelle des Bluetooth-Moduls mit anderen Mikrocontrollern wie Arduino, 8051, PIC usw. gesehen. In diesem Tutorial werden wir nun ein HC-05-Bluetooth-Modul mit STM32F103C8 verbinden und eine LED mit Android Mobile ein- und ausschalten.
Erforderliche Materialien
- STM32F103C8
- Bluetooth-Modul (HC-05)
- LED
- Android Mobile
- Steckbrett
- Kabel anschließen
Software:
- Bluetooth-Terminal (Android-Anwendung)
Bluetooth-Modul (HC-05)
Es wird hauptsächlich in eingebetteten Projekten als Bluetooth-Modul verwendet. Es handelt sich um ein serielles Bluetooth-Modul, das serielle Kommunikation mit einer Reichweite von weniger als 100 m verwendet und mit 5 V (mindestens 3,3 V) betrieben wird. Es kann verwendet werden, um zwei Mikrocontroller drahtlos und auch mit Mobiltelefonen und Laptops zu verbinden. Da viele Android-Anwendungen verfügbar sind, ist es sehr nützlich, um drahtlose Bluetooth-gesteuerte Projekte zu erstellen.
Es verwendet USART-Kommunikation und kann mit Mikrocontrollern mit USART-Kommunikationsprotokoll verbunden werden.
Es hat eine integrierte Antenne. Es verfügt über Master / Slave-Konfigurationen, die im AT-Befehlsmodus geändert werden können. Dies ist nützlich, wenn nur ein Gerät die Daten (Master an Slave) senden soll, z. B. vom PC (MASTER) an den Slave (eine beliebige MCU). Ein Master kann eine Verbindung zu anderen Geräten herstellen, und der Slave stellt keine Verbindung zu einer anderen Verbindung als dem Master her.
Betriebsarten
Es gibt zwei Modi: AT-Befehlsmodus und Datenmodus.
Wenn Bluetooth eingeschaltet ist, wird standardmäßig der Datenmodus aktiviert. Dieser Modus kann für Datenübertragungen verwendet werden. Um beim Einschalten in den AT- Befehlsmodus zu wechseln, müssen Sie die im Modul vorhandene Taste drücken, um die Standardeinstellungen des Moduls wie Master / Slave-Konfigurationen zu ändern.
Pins des Bluetooth-Moduls
- EN-Pin (AKTIVIEREN) - Mit diesem Pin wird der Datenmodus oder der AT-Befehlsmodus eingestellt. Standardmäßig befindet es sich im DATENMODUS. Wenn die Taste beim Einschalten gedrückt wird, wechselt sie in den AT-Befehlsmodus.
- + 5V Pin - Dient zur Stromversorgung des Moduls
- GND-Pin - Wird für die Erdung des Moduls verwendet
- TX-Pin - Dieser Pin wird an den RX-Pin der MCU angeschlossen
- RX-Pin - Dieser Pin ist mit dem TX-Pin der MCU verbunden
- STATE - Dieser Pin zeigt den Status des Moduls an, siehe unten zu den Anzeigen
LED-Anzeige
- Es verfügt über eine LED-Anzeige (ROT), die den Status des Bluetooth-Moduls anzeigt.
- Wenn das Bluetooth-Modul NICHT mit einem Gerät verbunden ist, geht das Signal aus und die rote LED blinkt kontinuierlich, was darauf hinweist, dass das Modul NICHT PAIRED ist.
- Wenn das Bluetooth-Modul mit einem Gerät verbunden ist, geht das Signal auf HIGH und die rote LED blinkt mit einer gewissen Verzögerung, was darauf hinweist, dass das Modul PAIRED ist.
In unseren anderen Projekten erfahren Sie mehr über das Bluetooth-Modul HC-05 mit anderen Mikrocontrollern:
- Bluetooth-gesteuertes Spielzeugauto mit Arduino
- Bluetooth-gesteuertes Hausautomationssystem mit 8051
- Sprachgesteuerte Lichter mit Raspberry Pi
- Smartphonegesteuertes FM-Radio mit Arduino und Verarbeitung
- Handygesteuertes Roboterauto mit G-Sensor und Arduino
- Verbindung des Bluetooth-Moduls HC-06 mit dem PIC-Mikrocontroller
STM32 USART-Ports
Die seriellen USART-Kommunikationsanschlüsse STM32F103C8 (BLUE PILL) sind in der Pinbelegung unten dargestellt. Diese sind blau gefärbt mit (PA9-TX1, PA10-RX1, PA2-TX2, PA3-RX2, PB10-TX3, PB11-RX3). Es hat drei solche Kommunikationskanäle.
Schaltplan und Anschlüsse
Die Schaltungsverbindungen für die Verbindung des Bluetooth-Moduls mit dem STM32 werden wie folgt hergestellt
Verbindung zwischen STM32F103C8 und Bluetooth-Modul (HC-05)
- Der TX-Pin (PA9) des STM32F103C8 ist mit dem RX-Pin des Bluetooth-Moduls verbunden.
- Der RX-Pin (PA10) des STM32F103C8 ist mit dem TX-Pin des Bluetooth-Moduls verbunden.
- Der VCC (+ 5V) -Pin des Bluetooth-Moduls ist mit dem 5V-Pin des STM32F103C8 verbunden.
- Der GND-Pin des Bluetooth-Moduls ist mit dem GND-Pin des STM32F103C8 verbunden.
Andere Verbindungen
- Der (PA0) -Pin von STM32 (Blue Pill) ist über einen Vorwiderstand mit dem positiven Pin der LED verbunden. Die hier verwendete LED ist gemischte Farbe.
- Die LED eines anderen Pins ist mit GND von STM32 verbunden.
Programmierung STM32F103C8
Die Schnittstelle von Bluetooth mit STM32 entspricht der von Arduino und die Programmierung in STM32 entspricht der von Arduino IDE. In diesem Tutorial erfahren Sie, wie Sie STM32 mit USB mithilfe der Arduino IDE programmieren.
Wie bereits erwähnt, werden wir in diesem Projekt ein (HC-05) Bluetooth-Modul mit STM32F103C8 verbinden und ein Android-Smartphone mit Bluetooth-Terminal-Android-Anwendung verwenden, um die LED ein- und auszuschalten.
Hinweis: Der RX & TX-Pin muss beim Hochladen des Codes auf STM32F103C8 entfernt werden.
Vollständiger Code für dieses Projekt ist am Ende dieses Tutorials mit einer Demonstration gegeben Video.
Die Codierung für dieses Projekt ist so einfach. Dieselben Arduino-Codes können verwendet werden, aber nur der Pin sollte geändert werden. Da wir in STM32F103C8 drei Sätze USART-Pins haben, müssen wir den richtigen Pin angeben, mit dem wir das Bluetooth-Modul verbunden haben.
1. Zuerst müssen wir die Pins mit ihrer jeweiligen Pin-Nummer mit dem Datentyp int wie folgt benennen
const int pinout = PA0;
2. Als nächstes benötigen wir eine Variable, um serielle Daten vom Android Mobile zu speichern. Die Daten können wie folgt ein Zeichen oder eine Ganzzahl sein
char inputdata = 0;
3. Als nächstes müssen wir in void setup () die serielle Kommunikation zwischen STM32 Blue Pill und dem Bluetooth-Modul starten, indem wir eine Baudrate von 9600 angeben
Serial1.begin (9600);
Wir haben hier Serial1 verwendet, weil wir HC-05 mit TX1 und RX1 von STM32 verbunden haben.
Wir können auch Serial2 oder Serial3 verwenden, aber dementsprechend muss der Pin verbunden sein.
4. Eine Intro-Nachricht wird als serielle Daten an serial1 gesendet, dh an das Bluetooth-Modul HC05. Dieses Modul sendet weiterhin Daten an die Bluetooth Terminal App von Android Mobile. Wir verwenden also die folgenden Aussagen
Serial1.print ("CIRCUIT DIGEST \ n"); Serial1.print ("BLUETOOTH WITH STM32 \ n");
5. Als nächstes müssen wir den Pin-Modus (PA0) als Ausgang einstellen , da wir die LED an diesen Pin angeschlossen haben. Also verwenden wir
pinMode (Pinbelegung, OUTPUT);
6. Als nächstes führen wir in der void-Schleife () die folgenden Daten aus, um die seriellen Daten zu lesen und die LED entsprechend ein- und auszuschalten
void loop () { If (Serial1.available ()> 0) { inputdata = Serial1.read (); if (inputdata == '1') { digitalWrite (Pinbelegung, HIGH); Serial1.print ("LED ON \ n"); } else if (Eingabedaten == '0') { digitalWrite (Pinbelegung, NIEDRIG); Serial1.print ("LED AUS \ n"); } } }
Hier verwenden wir die if- Anweisung, da dieser Code nur ausgeführt wird, wenn der Serial1-Port Daten vom Bluetooth-Modul empfangen hat. Deshalb wird diese Anweisung verwendet. Serial1.available ()> 0 . Andernfalls wartet es, bis es die serielle Kommunikation startet, wenn es nicht eingeht. Jetzt speichert es die empfangenen Daten in einer Variablen inputdata = Serial1.read (). Anschließend wird der von der Bluetooth-Terminal-App gesendete Wert überprüft. Wenn der Wert 1 ist, wird die LED eingeschaltet und der Pin (PA0) wird durch die Anweisung digitalWrite (Pinbelegung, HIGH) auf HIGH gesetzt. Wenn der Wert 0 ist, wird die LED AUS gedruckt und der Pin (PA0) auf LOW geschaltet.
Schritte zum Verbinden des Bluetooth-Moduls mit dem Android-Telefon
Schritt 1: - Öffnen Sie Bluetooth vom Mobiltelefon aus, nachdem Sie den Code von der Arduino IDE in STM32 hochgeladen und die Schaltung mit Strom versorgt haben. Denken Sie daran, RX- und TX-Pin zu entfernen, während Sie den Code hochladen
Schritt 2: - Wählen Sie auf den verfügbaren Geräten HC-05 aus und geben Sie das Passwort als 1234 ein
Schritt 3: - Öffnen Sie nach dem Pairing die Bluetooth Terminal App und wählen Sie Verbindung verbinden und HC-05 wie unten gezeigt
Schritt 4: - Geben Sie nach dem Verbinden mit dem Bluetooth-Modul HC-05 Werte in Terminal 1 oder 0 ein, um die LED ein- und auszuschalten. Sie erhalten auch eine Meldung, dass die LED ein- oder ausgeschaltet ist.