- Components necessaris
- Esquema de circuits del mòdul Bluetooth ESP8266 HC-05
- Mòdul Bluetooth HC-05
- Ús del terminal Bluetooth en sèrie (aplicació per a Android)
- Programació de NodeMCU ESP8266 per a la interfície Bluetooth
Avui en dia, el Bluetooth s’ha convertit en part integral dels dispositius digitals i s’incorpora a la majoria de dispositius com ara telèfons intel·ligents, portàtils, PC, càmeres, rellotges, bandes de fitness i molts altres. El Bluetooth sempre ha estat dominant el protocol de la comunicació sense fils des que es va descobrir. Tot i que la tecnologia Bluetooth és fonamentalment un sistema de reemplaçament de cables, però també aprofita un pont universal cap a les xarxes de dades existents i un mecanisme de connexió ad hoc per al nombre de dispositius de diverses configuracions. Hem utilitzat el mòdul Bluetooth HC05 i HC06 amb molts altres microcontroladors per fer-los comunicar sense fils:
- Interfície Bluetooth HC-05 amb píndola blava STM32F103C8: LED de control
- Interfície del mòdul Bluetooth HC-05 amb microcontrolador AVR
- Robot controlat per Android mitjançant microcontrolador 8051
- Controlar Raspberry Pi GPIO mitjançant l’aplicació Android per Bluetooth
- Cotxe de joguina controlat per Bluetooth mitjançant Arduino
Avui farem la interfície del mòdul Bluetooth HC-05 amb el popular mòdul Wi-Fi ESP8266 i controlarem un LED sense fils enviant ordres mitjançant Bluetooth. Aquest LED es pot substituir per un relé i un aparell de CA per construir una aplicació d’automatització domèstica.
Components necessaris
Maquinari:
- NodeMCU ESP8266
- Mòdul Bluetooth HC-05
Programari:
- IDE Arduino
- Terminal Bluetooth en sèrie (aplicació per a Android): per controlar dades de Bluetooth al telèfon intel·ligent.
Esquema de circuits del mòdul Bluetooth ESP8266 HC-05
El diagrama de circuits per connectar el mòdul Bluetooth HC-05 amb NodeMCU ESP8266 és molt senzill i es mostra a continuació:


Es necessita un mòdul Bluetooth extern amb ESP8266, ja que no té Bluetooth incorporat com ESP32. ESP32 ha incorporat Bluetooth Low Energy (BLE) i Bluetooth clàssic, sobre els quals anteriorment hem tractat alguns tutorials:
- Servidor ESP32 BLE: servei GATT per a la indicació del nivell de bateria
- Client ESP32 BLE: connectar-se a una banda de fitness per activar una bombeta
- Com utilitzar Bluetooth de sèrie a ESP32
Mòdul Bluetooth HC-05

HC-05 és un mòdul Bluetooth en sèrie. Es pot configurar mitjançant ordres AT. Pot funcionar en tres configuracions diferents (Master, Slave, Loop back). Al nostre projecte l’utilitzarem com a esclau. Les funcions del mòdul HC-05 inclouen:
- Sensibilitat típica de -80dBm.
- Velocitat de transmissió per defecte: 9600bps, 8 bits de dades, 1 bit d’aturada, sense paritat.
- Aparellament automàtic del codi pin: codi pin predeterminat “1234” o “0000”.
- Té 6 pins.
- Els pins Vcc i Gnd s’utilitzen per alimentar l’HC-05.
- Els pins Tx i Rx s’utilitzen per comunicar-se amb el microcontrolador.
- Activeu el pin per activar el mòdul HC-05. quan està baix, el mòdul està desactivat
- L'indicador d'estat actua amb el pin d'estat Quan no està emparellat / connectat amb cap altre dispositiu Bluetooth, el LED parpelleja contínuament. Quan està connectat / emparellat amb qualsevol altre dispositiu Bluetooth, el LED parpelleja amb un retard constant de 2 segons.
Per obtenir més informació sobre el mòdul Bluetooth, consulteu els nostres altres projectes relacionats amb Bluetooth.
Ús del terminal Bluetooth en sèrie (aplicació per a Android)
L’ús d’aquesta aplicació és molt senzill i requereix uns quants passos. A continuació es mostren les captures de pantalla amb passos. Simplement vinculeu l' HC-05 amb el telèfon intel·ligent. El codi per defecte és '0000' o '1234', però sobretot '1234' funciona.
- En primer lloc, descarregueu i instal·leu l'aplicació. Després aneu a dispositius per trobar el mòdul HC-05. Seleccioneu el mòdul HC-05 cercat a l'aplicació. Si no es troba, comproveu si l'HC-05 està correctament alimentat.


- Després de fer clic a l'HC-05, es connectarà. Ara escriviu qualsevol missatge al quadre de missatges i envieu-lo. S’imprimirà al monitor sèrie Arduino.


Programació de NodeMCU ESP8266 per a la interfície Bluetooth
Per programar el NodeMCU ESP8266 mitjançant ArduinoIDE, només cal que el connecteu des de l'ordinador portàtil o del PC mitjançant un cable micro USB i obriu l'IDE Arduino. Per a aquest tutorial, s'utilitzaran la sèrie de maquinari i la sèrie de programari. La sèrie de maquinari s'utilitzarà per llegir i escriure dades a Arduino Serial Monitor i s'utilitzarà el programa de sèrie Serial per comunicar-se amb HC-05. Com sempre, el codi complet i el vídeo de demostració es donen al final del tutorial.
Inicialment, incloeu la biblioteca de programari de sèrie, ja que s’utilitzarà en aquest tutorial.
#incloure
Definiu el pin RX i TX per a la comunicació en sèrie del programari, definiu també el pin LED connectat a NodeMCU. Estem utilitzant el LED intern de NodeMCU que es troba al pin D4.
SoftwareSerial btSerial (D2, D3); // RX, int led = D4;
Inicieu el programari i el maquinari en sèrie a una velocitat de 9600 baud. Estableix el Pin Led com a sortida. Imprimiu algun missatge de benvinguda i depuració.
Serial.begin (9600); btSerial.begin (9600); pinMode (D4, OUTPUT); Serial.println ("Començat…");
En primer lloc, llegiu des del mòdul Bluetooth i definiu un cas que si el mòdul Bluetooth rep “B” des del telèfon, iniciï el LED parpellejant connectat al D4 de NodeMCU; si no, rep “S”, deixeu de parpellejar el led. Aquí no estem fent servir delay () . Però Arduino 'millis' s'utilitzarà per no dificultar el rendiment d'Arduino.
if (btSerial.available ()> 0) { char data = btSerial.read (); commutador (dades) { cas 'B': ledB = "parpellejar"; trencar; cas 'S': ledB = "aturar"; trencar; per defecte: trencar; } }

Es defineix el mil·lis i estableix el retard a 500 ms, és a dir, el led parpellejarà cada 500 ms. També podeu configurar el retard del led canviant el valor de "interval". L'estat dirigit es commutarà.
corrent llarg sense signar Millis = millis ();
if (ledB == "parpellejar") { Serial.println ("parpelleig iniciat"); if (actualMillis - anteriorMillis> = interval) { anteriorMillis = actualMillis; if (ledState == BAIX) { ledState = HIGH; } else { ledState = BAIX; } digitalWrite (led, ledState); } }
I això acabarà la programació de NodeMCU per parpellejar LED sense fils mitjançant Bluetooth. També podeu canviar el programa per fer diferents tasques amb LED, com ara que el LED es pot substituir per un aparell de relé amb CA per fer un projecte de domòtica Bluetooth. En cas de dubte o suggeriment, adreceu-vos al nostre fòrum o feu un comentari a continuació.
