- Composants requis
- Schéma du circuit du module Bluetooth ESP8266 HC-05
- Module Bluetooth HC-05
- Utilisation du terminal Bluetooth série (application Android)
- Programmation de NodeMCU ESP8266 pour interfacer Bluetooth
Aujourd'hui, le Bluetooth est devenu une partie intégrante des appareils numériques et est intégré à la plupart des appareils tels que les smartphones, les ordinateurs portables, les PC, les appareils photo, les montres, les bandes de fitness et bien d'autres. Bluetooth a toujours été le protocole dominant dans la communication sans fil depuis sa découverte. Bien que la technologie Bluetooth soit fondamentalement un système de remplacement de câble, elle exploite également un pont universel vers les réseaux de données existants et un mécanisme de connexion ad hoc pour un certain nombre de périphériques dans diverses configurations. Nous avons utilisé les modules Bluetooth HC05 et HC06 avec de nombreux autres microcontrôleurs pour les faire communiquer sans fil:
- Interfaçage Bluetooth HC-05 avec STM32F103C8 Blue Pill: LED de contrôle
- Interfaçage du module Bluetooth HC-05 avec le microcontrôleur AVR
- Robot contrôlé Android utilisant le microcontrôleur 8051
- Contrôle du GPIO Raspberry Pi à l'aide de l'application Android via Bluetooth
- Voiture jouet contrôlée par Bluetooth utilisant Arduino
Aujourd'hui, nous allons interfacer le module Bluetooth HC-05 avec le module Wi-Fi ESP8266 populaire et contrôler une LED sans fil en envoyant des commandes via Bluetooth. Cette LED peut être remplacée par un relais et un appareil AC pour créer une application domotique.
Composants requis
Matériel:
- NodeMCU ESP8266
- Module Bluetooth HC-05
Logiciel:
- IDE Arduino
- Terminal Bluetooth série (application Android): pour surveiller les données Bluetooth sur un téléphone intelligent.
Schéma du circuit du module Bluetooth ESP8266 HC-05
Le schéma de circuit pour connecter le module Bluetooth HC-05 avec NodeMCU ESP8266 est très simple et illustré ci-dessous:
Un module Bluetooth externe est nécessaire avec ESP8266 car il n'a pas de Bluetooth intégré comme ESP32. ESP32 intègre Bluetooth Low Energy (BLE) et Bluetooth classique, sur lesquels nous avons déjà couvert quelques tutoriels:
- ESP32 BLE Server - Service GATT pour l'indication du niveau de batterie
- Client ESP32 BLE - Connexion à Fitness Band pour déclencher une ampoule
- Comment utiliser le Bluetooth série dans ESP32
Module Bluetooth HC-05
HC-05 est un module Bluetooth série. Il peut être configuré à l'aide des commandes AT. Il peut fonctionner dans trois configurations différentes (maître, esclave, boucle arrière). Dans notre projet, nous l'utiliserons comme esclave. Les caractéristiques du module HC-05 comprennent,
- Sensibilité typique de -80 dBm.
- Vitesse de transmission par défaut: 9600bps, 8 bits de données, 1 bit d'arrêt, pas de parité.
- Code PIN de couplage automatique: code PIN par défaut «1234» ou «0000».
- Il a 6 broches.
- Les broches Vcc et Gnd sont utilisées pour alimenter le HC-05.
- Les broches Tx et Rx sont utilisées pour communiquer avec le microcontrôleur.
- Activer la broche pour activer le module HC-05. lorsqu'il est bas, le module est désactivé
- La broche d'état agit comme indicateur d'état. Lorsqu'il n'est jumelé / connecté à aucun autre appareil Bluetooth, le voyant clignote en continu. Lorsqu'il est connecté / couplé avec un autre appareil Bluetooth, le voyant clignote avec un délai constant de 2 secondes.
Pour en savoir plus sur le module Bluetooth, parcourez nos autres projets liés au Bluetooth.
Utilisation du terminal Bluetooth série (application Android)
L'utilisation de cette application est très simple et nécessite quelques étapes. Les captures d'écran sont données ci-dessous avec des étapes. Associez simplement le HC-05 avec un smartphone. Le code par défaut est «0000» ou «1234» mais la plupart du temps «1234» fonctionne.
- Tout d'abord, téléchargez et installez l'application, puis accédez aux appareils pour trouver le module HC-05. Sélectionnez le module HC-05 recherché sur l'application. S'il n'est pas trouvé, vérifiez si le HC-05 est correctement alimenté.
- Après avoir cliqué sur le HC-05, il se connecte. Tapez maintenant n'importe quel message dans la boîte de message et envoyez-le. Il sera imprimé sur le moniteur série Arduino.
Programmation de NodeMCU ESP8266 pour interfacer Bluetooth
Pour programmer le NodeMCU ESP8266 à l'aide d'ArduinoIDE, il suffit de le brancher à partir d'un ordinateur portable ou d'un PC à l'aide d'un câble micro USB et d'ouvrir Arduino IDE. Pour ce didacticiel, la série matérielle et la série logicielle seront utilisées. Le matériel série sera utilisé pour lire et écrire des données sur Arduino Serial Monitor et le logiciel série sera utilisé pour communiquer avec HC-05. Comme toujours, le code complet et la vidéo de démonstration sont donnés à la fin du didacticiel.
Dans un premier temps, incluez la bibliothèque Software Serial puisqu'elle sera utilisée dans ce didacticiel.
#comprendre
Définissez la broche RX et TX pour la communication série logicielle, définissez également la broche LED connectée à NodeMCU. Nous utilisons la LED interne de NodeMCU qui se trouve à la broche D4.
SoftwareSerial btSerial (D2, D3); // RX, int led = D4;
Démarrez le logiciel et le matériel série à un débit de 9600 bauds. Définissez la broche LED comme sortie. Imprimez un message de bienvenue et de débogage.
Serial.begin (9600); btSerial.begin (9600); pinMode (D4, SORTIE); Serial.println ("Démarré…");
Tout d'abord, lisez à partir du module Bluetooth et définissez un cas où si le module Bluetooth reçoit «B» du téléphone, commencez à clignoter LED connecté à D4 de NodeMCU sinon s'il reçoit «S» puis arrêtez de clignoter. Nous n'utilisons pas delay () ici. Mais les «millis» d'Arduino seront utilisés pour ne pas entraver les performances d'Arduino.
if (btSerial.available ()> 0) { char data = btSerial.read (); commutateur (données) { cas 'B': ledB = "clignotement"; Pause; case 'S': ledB = "stop"; Pause; par défaut: break; } }
Les millisecondes sont définies et définissent le délai à 500 ms, c'est-à-dire que la led clignotera toutes les 500 ms. Vous pouvez également configurer le retard de la led en modifiant la valeur de «intervalle». L'état led sera basculé.
non signé long currentMillis = millis ();
if (ledB == "blink") { Serial.println ("clignotant commencé"); if (currentMillis - previousMillis> = intervalle) { previousMillis = currentMillis; if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } digitalWrite (led, ledState); } }
Et cela terminera la programmation de NodeMCU pour clignoter la LED sans fil en utilisant Bluetooth. Vous pouvez également modifier le programme pour effectuer différentes tâches avec LED comme la LED peut être remplacée par un relais avec appareil AC pour faire un projet d'automatisation Bluetooth Home. En cas de doute ou de suggestion, veuillez accéder à notre forum ou commenter ci-dessous.