- Matériaux nécessaires
- Module Bluetooth (HC-05)
- Ports USART STM32
- Schéma de circuit et connexions
- Programmation STM32F103C8
- Étapes de connexion du module Bluetooth avec un téléphone Android
Dans le monde d'aujourd'hui, Bluetooth est devenu très populaire et presque tous les appareils tels que les téléphones mobiles, les ordinateurs portables et les systèmes d'infodivertissement de voitures utilisent Bluetooth pour la communication sans fil. Bluetooth n'est pas seulement utilisé pour transférer des données, mais aussi pour contrôler sans fil d'autres appareils Bluetooth, comme en utilisant un casque Bluetooth, vous pouvez écouter la chanson sans fil depuis votre téléphone portable ou utiliser le système audio de voiture pour lire les chansons de votre mobile.
Bluetooth est une technologie sans fil qui fonctionne sur la fréquence de 2,4 GHz. Le signal Bluetooth normal est à portée de 10 mètres de rayon. Bluetooth est la technologie sans fil la plus couramment utilisée dans les projets intégrés à condition que la portée de la communication soit limitée. Bluetooth a ajouté l'avantage de sa faible consommation d'énergie et de son fonctionnement à faible coût. Il est généralement utilisé pour interfacer des microcontrôleurs avec des téléphones intelligents en utilisant des applications Bluetooth.
Nous avons vu l'interfaçage du module Bluetooth avec d'autres microcontrôleurs comme Arduino, 8051, PIC etc. Maintenant, dans ce tutoriel, nous allons interfacer un module Bluetooth HC-05 avec STM32F103C8 et allumer / éteindre une LED à l'aide d'un mobile Android.
Matériaux nécessaires
- STM32F103C8
- Module Bluetooth (HC-05)
- LED
- Mobile Android
- Planche à pain
- Fils de connexion
Logiciel:
- Terminal Bluetooth (application Android)
Module Bluetooth (HC-05)
C'est le module Bluetooth principalement utilisé dans les projets embarqués. Il s'agit d'un module Bluetooth série qui utilise une communication série ayant une portée inférieure à 100 m et fonctionne à 5 V (3,3 V minimum). Il peut être utilisé pour connecter deux microcontrôleurs sans fil et également avec un téléphone portable et des ordinateurs portables. Comme il existe de nombreuses applications Android disponibles, il est très utile pour réaliser des projets contrôlés par Bluetooth sans fil.
Il utilise la communication USART et peut être interfacé avec des microcontrôleurs ayant le protocole de communication USART.
Il a une antenne intégrée. Il a des configurations maître / esclave qui peuvent être modifiées en mode de commande AT, ce qui est utile lorsqu'un seul appareil doit envoyer les données (maître à esclave) comme par exemple du PC (MAÎTRE) à l'esclave (n'importe quel MCU). Un maître peut se connecter à d'autres appareils et l'esclave ne se connecte pas à une autre connexion que le maître.
Modes de fonctionnement
Il dispose de deux modes AT Command Mode & Data Mode.
Lorsque Bluetooth est mis sous tension, il entre en mode données par défaut. Ce mode peut être utilisé pour les transferts de données. Pour entrer en mode de commande AT lors de la mise sous tension, nous devons appuyer sur le bouton présent dans le module pour modifier les paramètres par défaut du module comme les configurations maître / esclave.
Broches du module Bluetooth
- Broche EN (ENABLE) - Cette broche est utilisée pour définir le mode de données ou le mode de commande AT. Par défaut, il est en MODE DONNÉES. Lorsque le bouton est enfoncé pendant la mise sous tension, il passe en mode de commande AT.
- Broche + 5V - Elle est utilisée pour l'alimentation du module
- Broche GND - Ceci est utilisé pour la terre du module
- Broche TX - Cette broche est connectée à la broche RX du MCU
- Broche RX - Cette broche est connectée à la broche TX du MCU
- STATE - Cette broche indique l'état du module, voir ci-dessous à propos des indications
Indication LED
- Il dispose d'un indicateur LED (ROUGE) qui fournit l'état du module Bluetooth.
- Lorsque le module Bluetooth n'est CONNECTÉ à aucun appareil, le signal devient faible et le voyant rouge clignote en continu, ce qui indique que le module n'est PAS PAIRE.
- Lorsque le module Bluetooth est CONNECTÉ à un appareil, le signal passe à HAUT et le voyant rouge clignote avec un certain retard, ce qui indique que le module est PAIRE.
Consultez nos autres projets pour en savoir plus sur le module Bluetooth HC-05 avec d'autres microcontrôleurs:
- Voiture jouet contrôlée par Bluetooth utilisant Arduino
- Système domotique contrôlé par Bluetooth utilisant 8051
- Lumières à commande vocale à l'aide de Raspberry Pi
- Radio FM contrôlée par téléphone intelligent utilisant Arduino et traitement
- Voiture robot contrôlée par téléphone portable utilisant G-Sensor et Arduino
- Interfaçage du module Bluetooth HC-06 avec le microcontrôleur PIC
Ports USART STM32
Les ports de communication série USART STM32F103C8 (BLUE PILL) sont indiqués dans l'image de brochage ci-dessous. Ceux-ci sont de couleur bleue ayant (PA9-TX1, PA10-RX1, PA2-TX2, PA3-RX2, PB10-TX3, PB11-RX3). Il dispose de trois de ces canaux de communication.
Schéma de circuit et connexions
Les connexions de circuit pour l' interfaçage du module Bluetooth avec STM32 sont faites comme ci-dessous
Connexion entre le module STM32F103C8 et Bluetooth (HC-05)
- La broche TX (PA9) du STM32F103C8 est connectée à la broche RX du module Bluetooth.
- La broche RX (PA10) du STM32F103C8 est connectée à la broche TX du module Bluetooth.
- La broche VCC (+ 5V) du module Bluetooth est connectée à la broche 5V du STM32F103C8.
- La broche GND du module Bluetooth est connectée à la broche GND du STM32F103C8.
Autres connexions
- La broche (PA0) du STM32 (Blue Pill) est connectée à la broche positive de la LED via une résistance série. La LED utilisée ici est de couleur mixte.
- La led une autre broche est connectée à GND de STM32.
Programmation STM32F103C8
L'interfaçage Bluetooth avec STM32 est identique à Arduino et la programmation dans STM32 est identique à Arduino IDE. Consultez ce didacticiel pour programmer STM32 avec USB en utilisant Arduino IDE.
Comme déjà dit, dans ce projet, nous allons interfacer un module Bluetooth (HC-05) avec STM32F103C8 et utiliser un téléphone intelligent Android avec l'application Android Terminal Bluetooth pour allumer et éteindre la LED.
Remarque: la broche RX & TX doit être supprimée lors du téléchargement du code vers STM32F103C8.
Le code complet de ce projet est donné à la fin de ce tutoriel avec une vidéo de démonstration.
Le codage de ce projet est si simple. Les mêmes codes Arduino peuvent être utilisés mais seule la broche doit être modifiée. Parce que nous avons trois ensembles de broches USART dans STM32F103C8, nous devons donc spécifier la broche correcte que nous avons utilisée pour connecter le module Bluetooth.
1. Nous devons d'abord nommer les broches avec leur numéro de broche respectif avec le type de données int comme suit
const int brochage = PA0;
2. Ensuite, nous avons besoin d'une variable pour stocker les données série du mobile Android. Les données peuvent être un caractère ou un entier comme suit
char inputdata = 0;
3. Ensuite, dans void setup (), nous devons démarrer la communication série entre STM32 Blue Pill et le module Bluetooth en donnant un débit en bauds de 9600
Serial1.begin (9600);
Nous avons utilisé Serial1 ici parce que nous avons connecté HC-05 à TX1 et RX1 de STM32.
Nous pouvons également utiliser Serial2 ou Serial3 mais en conséquence la broche doit être connectée.
4. Un message d'introduction est envoyé sous forme de données série au serial1, c'est-à-dire au module Bluetooth HC05. Ce module envoie en outre des données à l'application Bluetooth Terminal du mobile Android. Nous utilisons donc les déclarations ci-dessous
Serial1.print ("CIRCUIT DIGEST \ n"); Serial1.print ("BLUETOOTH AVEC STM32 \ n");
5. Ensuite, nous devons définir le pinmode (PA0) comme sortie, car nous avons connecté conduit à cette broche.
pinMode (brochage, SORTIE);
6. Ensuite dans la boucle vide (), nous exécutons les données suivantes pour lire les données série et allumer / éteindre la LED en conséquence
void loop () { If (Serial1.available ()> 0) { inputdata = Serial1.read (); if (inputdata == '1') { digitalWrite (brochage, HIGH); Serial1.print ("LED ON \ n"); } else if (inputdata == '0') { digitalWrite (pinout, LOW); Serial1.print ("LED OFF \ n"); } } }
Ici, nous utilisons l' instruction if car ce code ne s'exécute que lorsque le port Serial1 a des données reçues du module Bluetooth qui explique pourquoi cette instruction est utilisée Serial1.available ()> 0 . Sinon, s'il n'entre pas, il attend le début de la communication série. Maintenant, il stocke les données reçues dans une variable inputdata = Serial1.read (). Ensuite, il vérifie la valeur envoyée depuis l'application du terminal Bluetooth. Donc, si la valeur est 1, il imprime la LED allumée et fait passer la broche (PA0) à l'état HAUT par l'instruction digitalWrite (brochage, HAUT) et si la valeur est 0, elle imprime la LED éteinte et rend la broche (PA0) à l'état bas .
Étapes de connexion du module Bluetooth avec un téléphone Android
Étape 1: - Ouvrez Bluetooth à partir du mobile après avoir téléchargé le code dans STM32 depuis Arduino IDE et alimenté le circuit. N'OUBLIEZ PAS de retirer les broches RX et TX lors du téléchargement du code
Étape 2: - Dans les appareils disponibles, sélectionnez HC-05 et entrez le mot de passe 1234
Étape 3: - Après le couplage, ouvrez l'application Bluetooth Terminal et sélectionnez connecter un appareil et sélectionnez HC-05 comme indiqué ci-dessous
Étape 4: - Après la connexion avec le module Bluetooth HC-05, fournissez les valeurs dans la borne 1 ou 0 pour allumer et éteindre la LED. Vous recevrez également un message indiquant que la LED est allumée ou éteinte.