- Materiali richiesti
- Schema elettrico
- Configurazione iniziale dei moduli HC05
- Test di comunicazione Bluetooth da Arduino ad Arduino
I moduli Bluetooth HC-05 sono i moduli Bluetooth ideali per qualsiasi progetto Arduino! È facile da collegare e codificare nell'IDE di Arduino. Nella maggior parte dei progetti, di solito ci colleghiamo a HC05 a un Arduino e lo usiamo per comunicare in modalità wireless con un altro dispositivo intelligente come un telefono cellulare. Questo è abbastanza semplice e abbiamo costruito molti progetti interessanti con esso come robot controllato Bluetooth, controllo vocale Bluetooth, automazione domestica Bluetooth, ecc. Tuttavia, hai mai avuto bisogno di collegare due HC-05 insieme? Non è così semplice collegare un HC05 a uno smartphone, ci sono alcuni passaggi aggiuntivi coinvolti. Questo tutorial ti guiderà attraverso questo processo. Facciamo un salto!
Materiali richiesti
- 2x Arduino (Va bene qualsiasi modello; sto usando un Arduino Uno R3 e un Arduino Nano)
- 2x moduli Bluetooth HC05
- Breadboard
- Cavi per ponticelli
- 2x 1kΩ resistore
- Resistore 2x 2.2kΩ
Schema elettrico
Questo è lo schema elettrico di base. Collega 2 di questi circuiti, uno per il master e uno per lo slave. Per i collegamenti, tutto ciò che stiamo facendo qui è collegare l'HC05 ad Arduino. Il pin del ricevitore (Rx) dell'HC05 funziona nella gamma da 0 V a 3,3 V e Arduino funziona nella gamma da 0 V a 5 V. Quindi, utilizzeremo resistenze (R1 e R2) per creare un partitore di tensione per ridurre l'uscita a 5V di Arduino a 3.3V, in modo da non danneggiare il modulo HC05.
Sto usando 1kΩ per R1 e 2.2KΩ per R2 ma puoi usare qualsiasi valore di resistenza purché R2 sia approssimativamente il doppio del valore di R1 (R2 ≈ 2R1). Allo stesso modo, ripetere il circuito sia per master e slave, il master Circuito Bluetooth Arduino e Arduino Schiavo Bluetooth Circuito Di seguito sono riportati.
Configurazione iniziale dei moduli HC05
Questo è il passaggio aggiuntivo richiesto per collegare due moduli HC05 insieme. Abbiamo bisogno di modificare alcune impostazioni all'interno del modulo Bluetooth HC05, per fare ciò, dobbiamo entrare nella modalità di comando AT del modulo HC05 e inviargli i comandi tramite il monitor seriale dell'IDE di Arduino. Per fare ciò, dobbiamo scrivere un codice Arduino per inviare comandi tramite il monitor seriale all'HC05.
Il codice per configurare il modulo HC05 si trova in fondo a questa pagina, la spiegazione del codice è la seguente
Aggiungi la libreria SoftwareSerial a questo codice.
#include < SoftwareSerial.h>
Definire i numeri di pin di trasmissione (Tx) e di ricezione (Rx). Sto usando il pin 2 per Tx e il pin 3 per Rx.
#define tx 2 #define rx 3
Assegna un nome alla connessione Bluetooth (qui sto usando configBt), quindi comunica alla libreria SoftwareSerial quale pin è Tx e quale pin è Rx. La sintassi è bluetoothName (Rx, Tx);
SoftwareSerial configBt (rx, tx); // RX, TX
Per configurare il modulo Bluetooth, Arduino deve inviargli comandi a una velocità di trasmissione di 38400 baud. Allo stesso modo, impostiamo anche il baud rate della connessione Bluetooth a 38400 baud. Impostare Transmit (Tx) sul pin di output e Receive (Rx) sul pin di input
void setup () { Serial.begin (38400); configBt.begin (38400); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
All'interno del ciclo per sempre, abbiamo la parte principale del codice. L'idea qui è di inviare tutto ciò che viene digitato nella casella di testo nel monitor seriale all'HC05 tramite il pin Tx di Arduino. Quindi visualizzare tutto ciò che viene emesso dall'HC05 nel monitor seriale.
void loop () {if (configBt.available ()) // se l'HC05 sta inviando qualcosa… { Serial.print (configBt.readString ()); // stampa in monitor seriale} if (Serial.available ()) // se il monitor seriale sta emettendo qualcosa… {configBt.write (Serial.read ()); // scrivi sul pin Tx di Arduino}}
Carica prima questo codice nell'Arduino collegato al modulo HC05 master. Dopo aver caricato il codice, scollega il cavo di alimentazione di Arduino. Tenere premuto il pulsante sull'HC05. Ora collega il cavo di alimentazione Arduino tenendo ancora premuto il pulsante sull'HC05. Bene, ora puoi rilasciare il pulsante sull'HC05. È così che si entra nella modalità AT dell'HC05. Per verificare se hai fatto bene, assicurati che la luce rossa sull'HC05 lampeggi circa ogni secondo (lampeggia lentamente!). Normalmente prima che l'HC05 sia collegato a qualsiasi dispositivo Bluetooth, la sua luce rossa lampeggia ad una frequenza molto alta (lampeggia velocemente!).
Successivamente, apri il monitor seriale (il pulsante del monitor seriale si trova in alto a destra nell'IDE di Arduino). Nell'angolo in basso a destra della finestra del monitor seriale, se non l'hai già fatto, assicurati di aver impostato la fine della riga su "Sia NL che CL" e la velocità di trasmissione su 38400. Ora, digita AT nel monitor seriale, se tutto va bene, otterrai un "OK" dall'HC05 visualizzato nella finestra del monitor seriale. Congratulazioni! Hai effettuato correttamente l'accesso alla modalità di comando AT del modulo HC05.
Ora, inserisci i seguenti comandi nella tabella sottostante per configurare il modulo HC05 master:
COMANDO (inseriscilo nel monitor seriale e premi invio) |
RISPOSTA (risposta da HC05, visualizzata sul monitor seriale) |
Funzione (cosa fa questo comando?) |
A |
ok |
Test |
AT + CMODE? |
ok |
Controlla il CMODE o la modalità di connessione ----------------------------- CMODE: 0 è lo schiavo 1 è il maestro |
AT + CMODE = 1 |
ok |
Impostare il CMODE su 1 poiché stiamo configurando il master HC05 |
AT + ADDR? |
+ INDIRIZZO: FCA8: 9A: 58D5 ok * Questo è l'indirizzo del mio master HC05. Il tuo indirizzo sarà diverso! |
Restituisce l'indirizzo della HC05, notare questo in giù come noi avremo bisogno più tardi! |
Quindi collega il tuo computer all'altro tuo HC05, lo slave:
COMANDO (inseriscilo nel monitor seriale e premi invio) |
RISPOSTA (risposta da HC05, visualizzata sul monitor seriale) |
Funzione (cosa fa questo comando?) |
A |
ok |
Test |
AT + CMODE? |
ok |
Controlla il CMODE o la modalità di connessione ----------------------------- CMODE: 0 è uno schiavo 1 è il maestro |
AT + CMODE = 0 |
ok |
Impostare CMODE su 0 mentre stiamo configurando lo slave HC05 |
AT + BIND = FCA8,9A, 58D5 * Sostituisci ":" nell'indirizzo HC05 principale con "," * Qui sto usando l'indirizzo del master HC05 che ho annotato dalla tabella precedente. Dovresti usare l'indirizzo del tuo master HC05! |
ok |
Impostazione dell'indirizzo del master HC05 a cui questo slave HC05 si collegherà automaticamente all'avvio |
AT + BIND? |
+ BIND: FCA8: 9A: 58D5 ok * Questo è l'indirizzo del mio master HC05. Il tuo indirizzo sarà diverso! |
Controlla l'indirizzo di binding del tuo slave. Se corrisponde all'indirizzo del tuo master HC05, sei a posto! |
Test di comunicazione Bluetooth da Arduino ad Arduino
In primo luogo, alimentare sia i moduli HC05 master che quelli slave. Dopo l'accensione e dopo alcuni secondi guardare la luce rossa sui moduli HC05.
Velocità lampeggiante della luce rossa |
Cosa significa |
Lampeggiante ad una frequenza molto alta (lampeggiante veloce!) |
Non bene! Significa che i tuoi moduli HC05 non si collegano tra loro! È ora di risolvere i problemi! |
Lampeggiante a bassa frequenza (lampeggiamento lento!) |
Bello! L'hai fatto! Ma dobbiamo ancora fare un altro controllo per essere assolutamente sicuri che questa configurazione funzioni! Vai avanti! |
Una volta che le luci rosse lampeggiano a bassa frequenza (lampeggiamento lento!), Puoi essere certo che entrambi i tuoi HC05 sono collegati tra loro, ma non abbiamo testato se i dati possono essere inviati avanti e indietro tra il master e lo slave. Dopotutto, questo è lo scopo principale qui.
Carica il codice sottostante su uno degli Arduino, questo è il codice per testare il trasmettitore (Tx), ancora una volta il codice completo per trasmettitore e ricevitore si trova in fondo a questa pagina.
Seguendo il codice precedente, aggiungiamo la libreria SoftwareSerial a questo codice e definiamo i numeri pin di trasmissione (Tx) e Ricezione (Rx). Quindi nominiamo la connessione Bluetooth e passiamo i numeri dei pin Tx e Rx alla libreria.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
Nella funzione di configurazione, stiamo impostando nuovamente la velocità di trasmissione per il monitor seriale di Arduino e il Bluetooth. Vedi la differenza qui rispetto al codice precedente? Stiamo usando una velocità di trasmissione di 9600 baud. Questa è la velocità di trasmissione predefinita preimpostata per la comunicazione del modulo Bluetooth HC05 durante la comunicazione con altri dispositivi Bluetooth. Quindi, notare che 38400 baud è per la configurazione dell'HC05 con i comandi AT e 9600 baud è la velocità di trasmissione predefinita del modulo HC05. Infine, proprio come prima configuriamo il pin Tx come output e il pin Rx come input.
void setup () { Serial.begin (9600); bt.begin (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
All'interno del ciclo per sempre, tutto ciò che stiamo facendo è trasmettere un valore casuale di "123" attraverso l'HC05.
void loop () {bt.write (123); }
Carica questo codice sull'altro Arduino, questo è il codice per testare la ricezione (Rx):
Esattamente come i codici precedenti, configuriamo la libreria SoftwareSerial.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
Il codice nella funzione di configurazione è esattamente lo stesso del codice per testare la trasmissione (Tx).
void setup () { Serial.begin (9600); bt.begin (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Nel ciclo per sempre, dobbiamo solo ricevere ciò che stiamo inviando dall'Arduino trasmittente. Se il buffer di ricezione ha ricevuto alcuni dati dall'HC05, visualizzare tutto ciò che viene ricevuto nel monitor seriale.
void loop () {if (bt.available ()> 0) { Serial.println (bt.read ()); }}
Dopo aver caricato i rispettivi codici su ogni Arduino, apri il monitor seriale sull'Arduino ricevente. Assicurati di scegliere il baud rate come 9600 e la riga che termina come Newline nel monitor seriale. Se tutto funziona correttamente, dovresti vedere 123.
Nota: se hai collegato entrambi gli Arduino trasmittenti e riceventi allo stesso laptop, assicurati di scegliere la porta COM corretta in STRUMENTI> PORTA. Dovresti essere connesso alla porta COM di Arduino ricevente.
Se tutto va bene, scambia i moduli HC05 per assicurarti che la comunicazione possa avvenire in entrambe le direzioni e SIAMO FATTO!