• Lun. Apr 28th, 2025

HC05 Bluetooth

  • Home
  • HC05 Bluetooth
In questa pagina illustreremo come usare il modulo HC05 Bluetooth tramite un app creata in visual studio c# android xamarin.
Con illustrazioni e vari video di spiegazione.
Il circuito sarà composto da 4 rele di uscita un ingresso adc un timer interno e 4 pulsanti e un display per visualizzare i vari comandi.
Cominciamo.
Questo è il Modulo HC05
Questa è la versione che trovate comoda in commercio su amazon ebay ecc., montato su una scheda che come caratteristiche principali monta un pulsante per la programmazione/settaggio la stabilizzazione a 3,3 volt cosi da poterla comodamente alimentare a 5 volt.

Il modulo HC05 è un modulo convertitore seriale uart bluetooth 2.0 Il modulo HC-05 è un modulo che permette di convertire una porta seriale UART in una porta Bluetooth; questo dispositivo può essere utilizzato per permettere la comunicazione tra un microprocessore (MCU), montato ad esempio su una scheda Arduino, ed un dispositivo dotato di comunicazione Bluetooth, come ad esempio un PC, uno Smartphone o un Tablet. Questo modulo è basato sul chip CSR Bluecore 04 External con tecnologia CMOS e AFH (Adaptive Frequency Hopping Feature) ed è compatibile con il protocollo Bluetooth V2.0 3Mbps + EDR (Enhanced Data Rate).
Questo modulo è di versione 2.0 per chi non lo sapesse questo modulo lo potete accoppiare solo con PC, e smartphone android ma non funziona con ios, cioè almeno ios Iphone Ipad di ultima generazione non funziona per politiche di bluetooth ble a basso consumo, provato per esperienza con phone 11 non lo vede proprio in alternativa si può usare il modulo HC09 che è di versione 4.0 quindi accoppiabile con ios, non l’ho provato su ios vecchi ma penso che su quelli funzioni anche l’hc05.

Specifiche

  • Chip: CSR Bluecore 04
  • Nome Bluetooth: HC-05
  • Password (default): 1234
  • Modalità: Master o Slave impostabile
  • Sensibilità: -80dBm
  • Trasmissione: fino a +4dBm RF
  • Antenna: integrata
  • Interfaccia: UART (baud-rate programmabile)
  • Baud rate (default): 38400
  • Baud rate supportati: 9600,19200,38400,57600,115200,230400,460800
  • Data bit: 8
  • Stop bit: 1
  • Bit parità : NO
  • Controllo dei dati: Sì
  • Disconnessione del dispositivo: impulso in crescendo PIO0
  • Indicatori di stato porta PIO1: basso: disconnesso – alto: connesso
  • Connessione: automatica all’ultimo dispositivo precedentemente connesso
  • PinCode di autoaccoppiamento (default): “0000”
  • Riconnessione: automatica, se disconnesso per superamento della distanza di connessione
  • Dimensioni: 37 x 17 x 7mm
  • Peso: 4,5g

Qui trovate il link del datasheet con comandi AT del hc05 -> HC-05 Datasheet noi per il nostro progetto non useremo tutti i comandi AT ma solo quelli di configurazione e settaggio.

Come test andremo ad usate questo modulo USB-TTL Serial CH340 Board
non è essenziale proprio questo modello ma basta che sia un USB -> uart -> TTL questo modulo ha sia l’uscita 5 v che 3,3 cosi da non avere altri circuiti potremo alimentarlo direttamente dalla porta usb.

oppure questo son sempre uguali cambia disposizione ma la logica è sempre la medesima.

con questi due moduli HC05 e usb uart faremo delle prove come comunicare con il dispositivo in modalita AT e come comunicare tramite
app -> HC05 -> usb-uart -> Terminale pc.
Terminale pc -> usb-uart -> HC05 -> APP
manderemo dati dall’app al PC e viceversa.
Poi come seconda fase una volta preso familiarità con questa modalità costruiremo il nostro circuito e firmware apposito e come finale andremo a fare la nostra bella app semplice di comunicazione.

1° Fase necessario

  • Modulo HC05/HC09
  • Modulo USB-UART
  • Cavetti di collegamento
  • Terminale su Pc ->Hercules Utility scaricabile da questo link oppure
    oppure direttamente dal nostro sito Link
inserendo il modulo usb/uart la prima volta si auto installeranno i driver se almeno usate come sistema operativo windows 7 o windows 10, per verificare che porta di comunicazione il sistema vi ha assegnato dovrete vederlo nel gestione risorse del pc tramite il pannello di controllo -> sistema-> gestione dispositivi -> porte di comunicazione -> serial port 1/2/3 ecc. ricordate questa porta perchè poi sarà quella che useremo per la nostra comunicazione. Fate attenzione se cambiate usb il numero di porta cambierà.

una volta fatto questo avviate il software Hercules e cliccate sulla scheda Serial , nel Name spostate la porta di comunicazione sulla seriale che avete segnato, il Baud lo dovrete settare a 38400 , Data Size 8 (bit) , parity none, Handshake OFF.
Quando entreremo in modalità AT COMMAND la porta di comunicazione sarà fissa da sistema di 38400 e non sarà possibile modificarla, in modalita trasmettitore la porta di Default sara di 9600 ma noi la imposteremo a 38400 cosi facendo non dovremo poi nel Firmware cambiare la velocità di comunicazione ma useremo semplicemente 38400 per il settaggio delle impostazioni e 38400 per la comunicazione.

Ora per il nostro test dovremo collegare i terminali del modulo usb a quello del hc05 toglendolo dalla usb per evitare cortocircuiti.
L’uscita del modulo usb -VCC/ 5.0V collegarla nel modulo VCC del HC05
L’uscita del modulo usb-GND collegarla nel modulo GND del HC05
L’uscita del modulo usb TXD collegarla nel modulo RXD del HC05
L’uscita del modulo usb RXD collegarla nel modulo TXD del HC05
Come da immagine

Dopo aver fatto questo collegamento inseriamo il modulo usb nella porta usb tenendo premuto il pulsante che cè sul modulo HC05, con questo modulo è più semplice seno avremmo dovuto portare il pin KEY 34 a + 3,3 volt. ma con questo modulo è più semplice.
Come lo inseriremo nella usb cosi alimentandolo sul dispositivo HC05 cè un led sms che comincerà a lampeggiare lentamente , questo significa che il modulo è entrato in modalita AT Command Cioè potremo mandargli dei comandi per ottenere informazioni sul modulo oppure per settagli le informazioni che vorremo dargli. tutto questo poi lo farà il nostro circuito con un pulsante a bordo si occupera lui di metterlo in modalita AT Command lo configurerà con le nostre opzioni, lo spegnrera automaticamente e lo riaccendera in modalità trasmissione cosi da non dover noi disalimentarlo e rialimentarlo , questo lo faremo un un semplice transistor sulla sua alimentazione del HC05 e comandato da un uscita del nostro microcontrollore ma lo vedremo piu avanti.
questa è l’immagine dell HC 05 in Modalità AT Command il led lampeggerà lentamente, il pin EN è il pin che fara entrare in AT Command come se premessimo il pulsante sarà poi il pin che verrà comandato dal nostro pic.

Bene ora passiamo alla 2° fase

2°FASE

In questa fase comunicheremo con nostro HC05
questi sono i comandi che invieremo:
per prima cosa se le impostazioni della porta sono corrette dovremo cliccare sul pulsante Open , il software aprira la comunicazione con la porta seriale del nostro modulo usb

una volta cliccato su open se tutto andra bene non vi darà nessun errore ed uscirà sul terminale Serial Port Open.

bene ora potremo comunicare col nostro terminale.
digitate quanto segue.

AT -> invio

Come potete notare non abbiamo ricevuto nessuna risposta perchè il nostro modulo HC05 vuole come fine dato il \r\n che significano bè \r vuol dire Carriage Return in poche parole torna a capo e \n è il carattere speciale di “line feed” in hercules non possiamo mette AT\r\n ma vuole dei caratteri speciali o meglio li dei caratteri ascii aggiuntivi che sono $0D  CR Carriage return e $0A LC Line feed quindi andremo a scrivere. solo con Hercules dobbiamo aggiungere $0D$0A altri programmi ad esempio il terminale arduino hanno da selezionare due caselle con il rispettivo nome CR LC

questo è un esempio di arduino.
Quindi digitiamo

AT$0D$0A

ed ecco come per magia che il nostro modulo HC05 ci risponde con un bel OK
bene ora lanciamo dei comandi per verificare delle impostazioni
con AT+NAME? chiediamo che nome vi è associato al nostro dispositico che poi sarà quello che rileveremo con il bluetooth del cellulare o altro

AT+NAME?$0D$0A

Se vogliamo cambiare nome dovremo scrivere

AT+NAME=LAMBDA$0D$0A

digitanto questo sul terminale uscirà OK come avvenuta assegnazione
ora digitiamo

AT+UART?$0D$0A

con questo comando il dispositivo ci indicherà le impostazioni della porta seriale in modalita comunicazione non AT COMMAND
quindi ci dice che la velocità della porta è di 115200 stop bit 0 parity 0 = none noi li lasciamo cosi per impostarli se da diverso dovremo scrivere

AT+UART=115200,0,0$0D$0A

e il nostro modulo ci invierà un bel OK , si lo so all’inizio vi ho detto che mettavamo come velocità 38400 però dopo delle prove è meglio avere un pò di velocità quindi impostiamolo a 115200.
Ora chiediamo al modulo in che modalità è impostato se la risposta sarà 1 vorrà dire che il modulo si connettera a qual’siasi indirizzo, digitiamo

AT+CMODE?$0D$0A

ora chiediamo al modulo in che ruolo è impostato se ripondera 1 vorrà dire che è impostato come Master se sarà 0 vuol dire che è impostato come Slave e per il nostro progetto servira proprio la modalità Slave, digitiamo

AT+ROLE??$0D$0A

Come vedete in questo caso era impostato a 1 come ROLE e con il comando
AT+ROLE=0$0D$0A lo abbiamo impostato a 0 come Slave per i nostri progetti e il modulo risponde con un bel OK.
Ora chiediamo al nostro modulo che password è impostata digitiamo

AT+PSWD?0$0D$0A

come si può vedere la password impostata è 1234 ora possiamo anche lasciare quella ma se volessimo cambiarla dovremo digitare AT+PSWD=1234$0D$0A ovviamente cambiate 1234 se volete.

con il comando AT+STATE?$0D$0A  il modulo ci dirà se è inizializzato

bene ora ci serve sapere che mac address è impostato cosi da utilizzarlo poi
digitiamo AT+ADDR?$0D$0A il dispositivo ci inviera il proprio mac address

poi ci sono molti altri comandi e vi allego il pdf noi per il nostro obbiettivo altri non ci interessano pdf At command
bene ora per riepilogare i nostri unici comandi che ci serviranno sono
AT+NAME=LAMBDA$0D$0A -> OK
AT+UART=115200,0,0$0D$0A -> OK
AT+CMODE=0$0D$0A -> OK
AT+ROLE=0$0D$0A -> OK
AT+PSWD=1234$0D$0A -> OK
questi sono gli unici comandi che ci serviranno anche per il nostro firmware bastano questi per aver impostato come slave il nostro dispositivo e per comunicarci poi.

ed ecco i comandi ovviamente ora abbiamo solo fatto un test per prendere confidenza con il nostro dispositivo ovviamente poi tutto questo non servirà perche andremo ad impostare il nostro firmware con un pulsante di settaggio dove spegnerà il dispositivo porterà il pin EN a positivo accenderà il dispositivo lancera questi 5 comandi spegnerà il dispositivo e lo riaccendera con il pin EN a negativo cosi da settare il  modulo HC05 Come da flowchart qui sotto.

Total Page Visits: 358 - Today Page Visits: 1