- Materials necessaris
- Esquema de connexions
- Configuració inicial dels mòduls HC05
- Proves de comunicació Bluetooth Arduino a Arduino
Els mòduls Bluetooth HC-05 són els mòduls Bluetooth accessibles per a qualsevol projecte Arduino. És fàcil connectar-se i codificar a l’IDE Arduino. En la majoria de projectes, normalment ens connectem a HC05 a un Arduino i l’utilitzem per comunicar-nos sense fils amb un altre dispositiu intel·ligent com un telèfon mòbil. Això és bastant senzill i hem construït molts projectes interessants amb ell, com ara un robot controlat per Bluetooth, un control de veu Bluetooth, una domòtica Bluetooth, etc. No obstant això, heu necessitat mai connectar dos HC-05 junts? No és tan senzill connectar un HC05 a un telèfon intel·ligent, hi ha alguns passos addicionals. Aquest tutorial us guiarà en aquest procés. Saltem directament!

Materials necessaris
- 2x Arduino (qualsevol model ho farà; estic fent servir un Arduino Uno R3 i un Arduino Nano)
- 2 mòduls Bluetooth HC05
- Taula de pa
- Jumper Wires
- Resistència 2x 1kΩ
- 2x resistència de 2,2 kΩ
Esquema de connexions
Aquest és el diagrama bàsic del circuit. Connecteu 2 d’aquests circuits, un per al mestre i un per a l’esclau. Per a les connexions, tot el que estem fent aquí és connectar l'HC05 a l'Arduino. El pin Receptor (Rx) de l'HC05 funciona en un rang de 0V a 3,3V i l'Arduino funciona en un rang de 0V a 5V. Per tant, utilitzarem resistències (R1 i R2) per crear un divisor de tensió per reduir la sortida de 5V de l’Arduino a 3,3V, de manera que no es faci malbé el mòdul HC05.


Estic utilitzant 1kΩ per R1 i 2.2KΩ per R2, però podeu utilitzar qualsevol valor de resistència sempre que R2 sigui aproximadament el doble del valor de R1 (R2 ≈ 2R1). De la mateixa manera, repetiu el circuit tant per a mestre com per a esclau, a continuació es mostren el circuit Bluetooth Arduino Master i el circuit Bluetooth Arduino Slave.


Configuració inicial dels mòduls HC05
Aquest és el pas addicional necessari per connectar dos mòduls HC05 junts. Hem de canviar alguns paràmetres dins del mòdul Bluetooth HC05; per fer-ho, hem d’entrar al mode de comandament AT del mòdul HC05 i enviar-li ordres a través del monitor serial de l’IDE Arduino. Per fer-ho, hem d’escriure un codi Arduino per enviar ordres a través del monitor sèrie a l’HC05.
El codi per configurar el mòdul HC05 es troba a la part inferior d’aquesta pàgina; l’explicació del codi és la següent
Afegiu la biblioteca SoftwareSerial a aquest codi.
#include < SoftwareSerial.h>
Definiu els números de pin de transmissió (Tx) i Receive (Rx). Estic fent servir el pin 2 per Tx i el pin 3 per Rx.
#define tx 2 #define rx 3
Doneu un nom a la connexió Bluetooth (aquí estic fent servir configBt) i, a continuació, indiqueu a la biblioteca SoftwareSerial quin pin és Tx i quin pin és Rx. La sintaxi és bluetoothName (Rx, Tx);
SoftwareSerial configBt (rx, tx); // RX, TX
Per configurar el mòdul Bluetooth, l’Arduino necessita enviar-li ordres a una velocitat en bauds de 38400 bauds. De la mateixa manera, també establim la velocitat en bauds de la connexió Bluetooth a 38400 bauds. Configureu Transmit (Tx) al pin de sortida i Receive (Rx) al pin d’entrada
void setup () { Sèrie.begin (38400); configBt.begin (38400); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Dins del bucle per sempre, tenim el tros principal del codi. La idea aquí és enviar tot allò que s’escriu al quadre de text del monitor sèrie a l’HC05 mitjançant el pin Tx d’Arduino. A continuació, mostreu tot el que emeti l'HC05 al monitor sèrie.
void loop () {if (configBt.available ()) // si l'HC05 envia alguna cosa… { Serial.print (configBt.readString ()); // imprimeix al monitor de sèrie} if (Serial.available ()) // si el monitor de sèrie publica alguna cosa… {configBt.write (Serial.read ()); // escriure al pin Tx d'Arduino}}
Carregueu primer aquest codi a l’Arduino connectat al mòdul mestre HC05. Després de penjar el codi, endolleu el cable d’alimentació Arduino. Manteniu premut el botó de l'HC05. Connecteu el cable d’alimentació Arduino mentre manteniu premut el botó de l’HC05. Molt bé, ara podeu deixar anar el botó de l'HC05. Així és com accediu al mode AT de l'HC05. Per comprovar si ho heu fet bé, assegureu-vos que el llum vermell de l'HC05 parpelleja aproximadament cada segon (parpelleja lentament). Normalment, abans que l'HC05 estigui connectat a qualsevol dispositiu Bluetooth, la llum vermella parpelleja a una freqüència molt alta (parpelleja ràpidament).
A continuació, obriu el monitor sèrie (el botó del monitor sèrie es troba a la part superior dreta de l'IDE Arduino). A l'extrem inferior dret de la finestra del monitor sèrie, si encara no ho heu fet, assegureu-vos que establiu el paràmetre final de línia a "Tant NL com CL" i la velocitat de transmissió a 38400. Ara, escriviu AT al monitor sèrie, si tot va bé, obtindreu un "OK" a l'HC05 que es mostra a la finestra del monitor sèrie. Enhorabona! Heu iniciat la sessió amb èxit al mode d'ordres AT del mòdul HC05.
Ara, introduïu les ordres següents a la taula següent per configurar el mòdul mestre HC05:
|
ORDRE (introduïu-lo al monitor sèrie i premeu Retorn) |
RESPOSTA (resposta de HC05, que es mostra al monitor sèrie) |
Funció (Què fa aquesta ordre?) |
|
AT |
D'acord |
Prova |
|
AT + CMODE? |
D'acord |
Comproveu el CMODE o el mode de connexió ---------------------------- CMODE: 0 és l'esclau 1 és mestre |
|
AT + CMODE = 1 |
D'acord |
Establiu el CMODE a 1 ja que estem configurant el mestre HC05 |
|
AT + ADDR? |
+ ADDR: FCA8: 9A: 58D5 D'acord * Aquesta és l'adreça del meu mestre HC05. La vostra adreça serà diferent. |
Torna l'adreça de l'HC05, tingueu en compte que la necessitarem més endavant. |
A continuació, connecteu l’ordinador a l’altre HC05, l’esclau:
|
ORDRE (introduïu-lo al monitor sèrie i premeu Retorn) |
RESPOSTA (resposta de HC05, que es mostra al monitor sèrie) |
Funció (Què fa aquesta ordre?) |
|
AT |
D'acord |
Prova |
|
AT + CMODE? |
D'acord |
Comproveu el CMODE o el mode de connexió ---------------------------- CMODE: 0 és un esclau 1 és mestre |
|
AT + CMODE = 0 |
D'acord |
Establiu el CMODE a 0 ja que estem configurant l' esclau HC05 |
|
AT + BIND = FCA8,9A, 58D5 * Substituïu el ":" a l'adreça mestra HC05 per "," * Aquí estic fent servir l'adreça del mestre HC05 que vaig assenyalar a la taula anterior. Heu d’utilitzar l’adreça del vostre mestre HC05. |
D'acord |
Definir l'adreça del mestre HC05 al qual aquest esclau HC05 es connectarà automàticament en arrencar |
|
A + BIND? |
+ BIND: FCA8: 9A: 58D5 D'acord * Aquesta és l'adreça del meu mestre HC05. La vostra adreça serà diferent. |
Comproveu l'adreça vinculant del vostre esclau. Si coincideix amb l'adreça del vostre mestre HC05, esteu preparats. |
Proves de comunicació Bluetooth Arduino a Arduino
En primer lloc, alimenteu els mòduls HC05 mestre i esclau. Després de l’encesa i passats uns segons, mireu la llum vermella dels mòduls HC05.
|
Velocitat intermitent de la llum vermella |
Que significa |
|
Parpelleig a una freqüència molt alta (parpelleig ràpid!) |
No és bó! Vol dir que els vostres mòduls HC05 no es connecten entre ells. És hora de resoldre problemes. |
|
Parpelleig a baixa freqüència (parpelleig lent!) |
Bonic! Ja ho heu fet! Però encara hem de fer una comprovació més per estar segur que aquesta configuració funciona. Endavant! |
Quan els llums vermells parpellegin a baixa freqüència (parpelleja lent), podeu estar segur que tots dos HC05 estan connectats entre si, però no hem provat si es poden enviar dades entre el mestre i l'esclau. Al cap i a la fi, aquest és el propòsit principal aquí.
Pengeu el codi següent a un dels Arduinos, aquest és el codi per provar el transmissor (Tx); de nou es pot trobar el codi complet tant per al transmissor com per al receptor a la part inferior d’aquesta pàgina.
Seguint el codi anterior, afegim la biblioteca SoftwareSerial a aquest codi i definim els números de pin de transmissió (Tx) i Receive (Rx). A continuació, anomenem la connexió Bluetooth i passem els números de pin Tx i Rx a la biblioteca.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
A la funció de configuració, tornem a configurar la velocitat de transmissió per al monitor sèrie Arduino i el Bluetooth. Veieu la diferència aquí en comparació amb el codi anterior? Estem utilitzant una velocitat en bauds de 9600 bauds. Aquest és el defecte pre-set velocitat de comunicació de transmissió en bauds de la lliçó HC05 Bluetooth quan es comunica amb altres dispositius Bluetooth. Tingueu en compte, doncs, que 38400 bauds serveixen per configurar l’HC05 amb ordres AT i que la velocitat de bauds per defecte del mòdul HC05 és de 9600 bauds. Finalment, igual que abans, configurem el pin Tx com a sortida i el pin Rx com a entrada.
void setup () { Sèrie.begin (9600); bt.begin (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Dins del bucle per sempre, tot el que estem fent és transmetre un valor aleatori de "123" a través de l'HC05.
bucle buit () {bt.write (123); }
Pengeu aquest codi a l'altre Arduino, aquest és el codi per provar de rebre (Rx):
Exactament igual que els codis anteriors, configurem la biblioteca SoftwareSerial.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
El codi de la funció de configuració és exactament el mateix que el codi per provar la transmissió (Tx).
void setup () { Sèrie.begin (9600); bt.begin (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Al bucle de sempre, només necessitem rebre el que estem enviant des de l’Arduino transmissor. Si la memòria intermèdia de recepció ha rebut algunes dades de l'HC05, mostreu tot el que es rebi al monitor sèrie.
bucle buit () {if (bt.available ()> 0) { Serial.println (bt.read ()); }}
Després d’haver penjat els codis respectius a cada Arduino, obriu el monitor de sèrie a l’Arduino receptor. Assegureu-vos que trieu la velocitat de transmissió com a 9600 i la línia que finalitza com a línia nova al monitor sèrie. Si tot funciona bé, hauríeu de veure 123.

Nota: Si heu connectat Arduinos transmissor i receptor al mateix ordinador portàtil, assegureu-vos de triar el port COM adequat a EINES> PORT. Hauríeu d’estar connectat al port COM de l’Arduino receptor.

Si tot va bé, canvieu els mòduls HC05 per assegurar-vos que la comunicació es pugui produir en les dues direccions i HEM FET
