[RISOLTO] HC-05. Nessun problema, ma.... leggete bene tutto il topic

Ciao raga, da poco mi sono cimentato sui moduli HC-05 e devo dire che di roba su internet da studiare ce ne sta a dire basta!! Vengo subito alla mia perplessità. Io devo mettere in comunicazione due arduino con 2 HC-05 uno in master ed uno in slave e fin qui PROBLEMI 0!!! Quello che non mi riesco a spiegare è il perché per accoppiarli basta l'address... e il pin??? cioè io tra tutto il materiale trovato in rete, a meno che non voglia accoppiare un modulo HC-05 con uno smartphone, il pin non serve a na mazza con arduino... il che per me potrebbe essere un problema.... mi illuminate..

PS: guglielmo mi hai fatto morire dal ridere con il tuo link postato anni fa sbucato tra le mie ricerche su google inerenti al predetto modulo... mi riferisco a questo :smiley: :smiley: :smiley: :smiley:

miky_police:
PS: guglielmo mi hai fatto morire dal ridere con il tuo link postato anni fa sbucato tra le mie ricerche su google inerenti al predetto modulo... mi riferisco a questo :smiley: :smiley: :smiley: :smiley:

Ehi! Io per questa cosa di LMGTFY sono stato bannato! Cos'è questa disparità di trattamento? :o

siccome io google lo uso sono incappato in questo post al reply #8 di guglielmo. Allora si deve autobannare :smiley:
l'ho ritenuta una cosa divertente e l'ho citata non postata direttamente io a titolo spam.
Poi se ho violato in qualche modo le regole del forum sono qui con le orecchie pronte... Non mi nascondo di certo dietro un dito.
Se per i mod non è un problema chiedo che il post rimanga aperto e quindi rinnovare il mio quesito agli interessati/informati...

Scusa se ti ho sporcato il thread, è una considerazione che mi è venuta 'di getto', togliete pure i miei msg

No, anzi hai fatto bene a postarlo. Non ne ero a conoscenza della questione :wink:

**>silvioz: ** NON sei stato sicuramente bannato sul forum Italiano (... ed ogni sezione può avere le sue regole di comportamento) ... su quelli di lingua Inglese sono un po' più permalosi e ... se l'hai messa in malo modo, magari qualcuno si è offeso.

Qui sul forum Italiano l'abbiamo usata varie volte in tanti è a me sembra anche una cosa corretta ...
... ok che uno qui aiuta, ma prima di venire a domandare fare un po' di ricerche per proprio conto è il minimo che si richiede, del resto ... la mia firma parla molto chiaro ! :smiling_imp:

Sicuro sia stato solo per quello e non per il modo in cui lo hai scritto? Perché, salvo uno non sia di lingua madre, fare battute in una lingua che non è la propria è sempre piuttosto pericoloso ...
... quello che è spiritoso in Italiano può, se mal tradotto, diventare offensivo in un altra lingua :wink:

Guglielmo

Mi spiace continuare con l'OT ma giusto per chiarire a Guglielmo: io non leggo tanto la sez Inglese perchè trovo che sia un po' troppo 'deregolamentata', con troppi threads in cui si pretende l'ABC, sindromi di Gundam e compagnia bella.
Giorni fa non ho resistito a rispondere all'ennesimo post di un utente che chiedeva esplicitamente info o links per capire come distinguere istruzioni/statements/dati/simboli in un listato, girandogli questo: LMGTFY - Let Me Google That For You
Nel frattempo altri utenti intervenivano in mille maniere trasformando il thread in caciara as usual.
Mi rispondeva dopo ore un admin super inviperito scrivendomi:
"You're being condescending, if you fucking ever try to be condescending again you'll be banned permanently"
Al che non resisto e rispondo:
Cit "you're being condescending"
I'm not condescending, clearly OP doesn't know what he's watching on the screen. He asked for links, I gave him links. Would you have preferred the good'ole "RTFM"? I thought this was a forum not a spoon-feeding dept.
Cit: "if you f......"
I'm so fucking terrified, I won't sleep tonight.

Il mio secondo post era da ban, nessun dubbio :wink:
Ma la reazione al primo è esagerata.
Fine MEGA OT
:smiley:

silvioz:
Ma la reazione al primo è esagerata.

Concordo pienamente con te ... mah ... valli a capire ...

Guglielmo

miky_police:
... Quello che non mi riesco a spiegare è il perché per accoppiarli basta l'address... e il pin ...

Credo che di base tutti gli HC-05 arrivino con il pin a 1234 (... o qualche cosa di simile) quindi ... quando li accoppi usano il valore di defualt :smiley:

La prova da fare sarebbe prenderne uno nuovo e, prima di accoppiarlo con qualsiasi cosa, cambiare con i comandi AT la PSW (AT+PSWD) e vedere il successivo comportamento :wink:

Guglielmo

gpb01:
Credo che di base tutti gli HC-05 arrivino con il pin a 1234 (... o qualche cosa di simile) quindi ... quando li accoppi usano il valore di defualt :smiley:

La prova da fare sarebbe prenderne uno nuovo e, prima di accoppiarlo con qualsiasi cosa, cambiare con i comandi AT la PSW (AT+PSWD) e vedere il successivo comportamento :wink:

Guglielmo

in effetti ho cambiato il valore pswd.... ma SOLO DOPO L'ACCOPPIAMENTO..... ecco perché poi nonostante il riavvio di entrambi linkavano comunque... Vado fi orgl e provo a cambiare il pin prima del pairing... vi tengo aggiornati.... grazie per la dritta.
PS: alcuni comandi in AT vanno solo con il key in HIGH... tipo name? inq
@silvioz: se avessi detto che eri stato bannato su quello inglese avrei fatto a meno di puntualizzare :wink:

miky_police:
PS: alcuni comandi in AT vanno solo con il key in HIGH... tipo name? ...

Veramnete tutti i comandi AT possono essere dati solo quando il modulo HC-05 è in command mode :wink:

Guglielmo

::slight_smile:
Ma io sinceramente ho 2 moduli HC-05 quelli a 6 header con il pulsantino sopra, ovvero questo per intenderci. Io ho cablato in questo modo.
HC-05 ----> Arduino uno
+5V +5V
GND GND
TX pin 2 (<SoftwareSerial.h>)
RX pin 3 (<SoftwareSerial.h>)
EN un wire male>female a volo per spegnere il modulo verso GND(per poi entrare in at con il pulsantino)

Per entrare in AT (38400 sofwareserial), prendo il wire di EN lo metto a GND, il modulo si spegne, tengo premuto il pulsantino sul modulo, tolgo il wire EN ed entra ad ogni colpo. Ma non è che per ogni comando che da li in poi andrò a dare in AT tengo premuto il pulsantino... Ma ho constatato che alcuni comandi come AT+NAME? non restituisce niente la seriale, eccezion fatta se tenuto premuto il pulsante del modulo prima di inviare il predetto comando. Stessa cosa con AT+INQ.
Infatti in questo datasheet cito testualmente dalla tabella a fine pag.3 inizio pagina 4

AT Mode 1: After power on, it can enter the AT
mode by triggering PIN34 with high level. Then
the baud rate for setting AT command is equal to
the baud rate in communication, for example:
9600.
AT mode 2: First set the PIN34 as high level, or
while on powering the module set the PIN34 to be
high level, the Baud rate used here is 38400 bps.
Notice: All AT commands can be operated only
when the PIN34 is at high level. Only part of the
AT commands can be used if PIN34 doesn’t keep
the high level after entering to the AT mode.
Through this kind of designing, set permissions for
the module is left to the user’s external control
circuit, that makes the application of HC-05 is very
flexible.

Infatti molti dei quali uso vanno tranquillamente (dopo aver abilitato la modalità AT) senza dover tener premuto il pulsante (quindi 34 in LOW), altri, invece, se non metto il 34 in HIGH (tramite il pulsante) mi attacco al primo tram che passa... Quindi l'indicazione del datasheet per me è confutata...
Guglielmo, ti risulta vero tutto ciò? ::slight_smile:
Il fatto è che lo scoperto googlando quando non riuscivo a reperire il nome impostato del modulo su un forum inglese che riportava questo datasheet che (ovviamente su buon insegnamento di etem) ho salvato. :wink:

NON saprei ... ho tutti HC-05 quelli con l'apposito pin KEY ... che erano tanto comodi :wink:

Guglielmo

Il fatto è che lo scoperto googlando

Scusate l'orrore ma ho fatto il turno di notte e 200 km per tornare a casa e non ho riposato :smiley:
Ritornando al mio ultimo reply in effetti dice testualmente quello che hai affermato tu Guglielmo, ovvero che tutti i comandi vanno dati con KEY = HIGH, ma involontariamente ho "scoperto" (l'acqua calda :slight_smile: ) che alcuni comandi non necessitano del KEY = HIGH. Concordo pienamente sull'avere a disposizione, a questo punto, di un pin da mandare in HIGH piuttosto del momentary switch.
Ultima domanda anche se questa un po OT poiché più HW che SW, ma riguarda sempre l'HC-05.
Il pin STATE che ho a disposizione da quello che ho letto va in HIGH quando il modulo è connesso e in LOW quando non lo è. NON HO ancora misurato la tensione di uscita del predetto pin quando il modulo è connesso, ma se misurerei 3,3v e lo collego all'mcu con digitalRead() restituirebbe HIGH con 3,3v? Domanda 2: componenti da utilizzare per collegarlo in sicurezza (resistenze, diodi, zener, ecc...)
Magari se fate uno sforzo e mi indicate i componenti per 3,3v e per 5v o se ne avete voglia mi spiegate il calcolo così non ve lo chiedo più :smiley:

Ma perché non usi dei volgari adattatori di livello che costano pochi US$ ? QUESTO è addirittura "I2C Safe" e lo trovi presso qualsiasi distributore Adafruit ... prendine una manciata che servono sempre più spesso ... :wink:

Comunque 3.3, con un Arduino alimentato a 5V lo leggi HIGH ... leggiti QUESTO mio post.

Guglielmo

Ottima dritta. Quindi alimentato a 5V (arduino) dai 3v legge HIGH. Perfetto.
PS: se ti dico che ho una manciata di TXB0108 (intendo solo chip no su base)?? ::slight_smile: Li ho presi per i miei full-standalone :smiley:
ma credo che mi farò una manciata dei tuoi poiché su breadboard iniziano a servire sempre più spesso... :wink:

Allora... ho fatto un po di prove fino a questo momento.
Ritornando alla "mia" problematica ovvero quello che il pairing tra i 2 dispositivi avviene senza la password ho confutato che effettivamente è così... anche se ho dei dubbi. Io ho proceduto, per effettuare le prove, come di seguito:

  • AT+ORGL su tutti e 2 i dispositivi
    DISALIMENTAZIONE DEI DISPOSITIVI
  • AT+PSWD=5555 (solo su master)
    poi ho provato ad effettuare il pairing con tutti i parametri del caso lato master e lato slave e... linka tranquillamente come se la pswd venisse ignorata totalmente...
    NUOVA PERPLESSITA':
    subito dopo aver effettuato AT+ORGL sul master e aver disalimentato lo stesso, gli ho dato in pasto anche AT+ADCN? (ovvero ho rischiesto il numero di dispositivi dalla lista dei dispositivi autenticati) e con mio grande stupore (tenendo presente che avevo effettuato un reset ai valori originali del dispositivo come se uscisse di fabbrica) mi restituisce "+ADCN:8" :o :o :o
    Comeeee? e qui chiedo lumi di saggezza a chi ne sa più di me....

Altre "scoperte" (probabilmente dell'acqua calda :D)?? Riesco ad entrare in qualsiasi momento in AT mode senza dover mettere in HIGH all'accensione del dispositivo il KEY, ovvero senza dover riavviare il modulo mentre tengo premuto il pulsantino presente sullo stesso per entrare nella predetta modalità. Adesso spiego meglio.

Come postato da me in precedenza vi sono 2 modi per entrare in modalità AT (almeno sui miei 2 HC-05 è così e funziona).
Giova premettere che nel codice "di base" per poter comunicare in AT con gli HC-05 ho usato la libreria SoftwareSerial.h (ide 1.8.5) e connesso rispettivamente i pin 2 e 3 (da tipica prova al volo) e la comunicazione è stata inizializzata (verso i moduli) a 38400 baud e la seriale a 9600 baud.

PRIMO MODO DI ACCESSO
Il tipico che tutti conosciamo ovvero:

  • dispositivo spento (HC-05);
  • tengo premuto il pulsantino che permette di entrare in modalità AT;
  • alimento il modulo (e qui ci viene incontro anche il led presente sullo stesso che lampeggia con una frequenza che indica la modalità AT).
    Entrando in questo modo nella modalità AT riesco ad inviare i comandi AT dalla seriale (AD ESCLUSIONE DI QUALCUNO) e comunicare SENZA mantere il KEY in HIGH. Per poter inviare i comandi ai quali non abbiamo risposta da parte del modulo basta tenere premuto il pulsantino prima di spedire il messaggio tramite seriale.

SECONDO MODO DI ACCESSO

  • dispositivo acceso (HC-05);
  • apro la seriale (ricordo 9600 baud quella dell'IDE e 38400 baud quella di softwareserial)
  • tenendo sempre premuto il pulsantino del dispositivo comunico in AT (se lascio il pulsante non riesco più a comincare in AT, ma penso che il transparent mode continui a girare, cosa che devo ancora verificare).

In effetti, qui sono riportate entrambi le modalità ad eccezione del fatto che con il SECONDO METODO la softwareserial deve essere inizializzata alla stessa velocità di comunicazione del modulo (9600 baud di default). Seguendo questo datasheet NON sono riuscito a comunicare con il modulo a 9600 baud dopo la sua avvenuta accensione, ma non facendomi i <> miei ho reimpostato la SS a 38400 e comunicavo tranquillamente in AT anche con il secondo modo di accesso sopra descritto. Mah... valli a capire bene sti moduli :smiley: :smiley: :smiley:
L'ho riportata qui la mia esperienza sperando che a qualcuno serva....
FINE DELLE INFO

subito dopo aver effettuato AT+ORGL sul master e aver disalimentato lo stesso, gli ho dato in pasto anche AT+ADCN? (ovvero ho rischiesto il numero di dispositivi dalla lista dei dispositivi autenticati) e con mio grande stupore (tenendo presente che avevo effettuato un reset ai valori originali del dispositivo come se uscisse di fabbrica) mi restituisce "+ADCN:8" :o :o :o
Comeeee? e qui chiedo lumi di saggezza a chi ne sa più di me....

Rinnovo la domanda... sono a tutte orecchie.

A seguito del mio ultimo post, penso che con un apposito circuito e codice, si possano "dettare" comandi AT direttamente dal master verso lo slave, anche se non è mai avvenuto il primo pairing tra i due dispositivi... ::slight_smile:
Guglielmo ti risulta? o chiunque abbia intuito cosa è arrivata a pensare la mia testolina...
mettere in HIGH il KEY lo si può fare con dei semplici transistor... Il dispositivo, se non è connesso a nessuno, il pin STATE dell'HC-05 lo mette in LOW.... 2+2=4

miky_police:
Guglielmo ti risulta?

Mai fatte tutte queste prove, mi dispiace ... :confused:

Magari qualcuno c'ha giocato di più e ti può rispondere ... :slight_smile:

Guglielmo

RISOLTO
Ok, dopo una serie di prove effettuate sono giunto alla mia risposta. In effetti la pswd funziona correttamente. Non so il perché quando ho lavorato più intensamente ai miei test su questi moduli, nonostante cambiavo la password i device comunque riuscivano ad instaurare la connessione (anche disalimentandoli e alimentandoli a distanza di qualche minuto). Tornato dopo qualche giorno su questi moduli per cercare la causa di questa anomalia, con grande stupore mi sono accorto che non pareggiavano più senza aver fatto nessuna modifica in AT. Quindi mi sono limitato ad interrogare le rispettive PW. Sul master impostato 1111 e slave 1234. Appena cambiata la pw su master in quella di default come su slave (quindi da 1111 a 1234) ed effettuato un soft reset dei device hanno instaurato la connessione.
Penso, a questo punto, che l'accaduto sia da imputare al fatto che probabilmente i device soffrano di qualche tipo di effetto memoria a caldo. Non so spiegare altrimenti quello che è successo.
Magari può servire a qualcuno. Grazie a tutti per l'interessamento.