Velocità di comunicazione tra HC-12

Buongiorno a tutti,da poco lavoro su un progetto per fare comunicare più hc-12 tra loro su lunga distanza +/- 700mt, nei test che ho fatto con una velocità di 9600 bit comunicano tutti tra di loro nel raggio inferiore a 100mt, però quando vado oltre i 100 mt non ricevo più nessun dato... Ho provato a impostare trasmittente e ricevente su diverse velocità partendo da 38400 a 250000 ma non ricevo nulla.. Praticamente comunica solo a 9600 entro i 100mt... Le radio lavorano in campagna aperta senza edifici o ostacoli di vario genere...

Qualcuno ha la buona volontà di capire e consigliarmi perché ho questo problema??

Per iscrizione

Standardoil:
Per iscrizione

Scusa cosa intendi??
Intendi entrare in modalità SET e cambiare tramite comando AT la rete di trasmissione??
L'ho letto proprio adesso che potevo risolvere così

cicciozuc:
Scusa cosa intendi??

... è solo un modo per mettere un post "non vuoto" così da poter seguire in moto automatico il thread, nulla a che vedere con il tuo problema. Ignora il post.

Guglielmo

Ho cambiato la potenza di rete inserendo nel setup dei due hc12

pinMode(7,OUTPUT);
digitalWrite(7,LOW); // commando AT mode
hc12.print(F("AT+B115200")); // rete potenza segnale
 delay(100);
 digitalWrite(7,HIGH); // modalità trasparente

Ma nella seriale a 9600 non ricevo lo stesso nulla... Sulla ricevente il led TX riceve il segnale ma non lo stampa...

Dal datasheet indica che alla massima distanza la massima velocità di trasmissione è di 5000bps quindi dovresti impostare una trasmissione a 4800bps su arduino.

[edit]

ma se imposta il modulo a 115200bps devi impostare la stessa velocità anche alla seriale di arduino, non puoi tenerla a 9600bps

cicciozuc:
Qualcuno ha la buona volontà di capire e consigliarmi perché ho questo problema??

… magari studiarsi bene il datasheet (allegato), specie nella parte che, appunto, parla del necessario calo di velocità in funzione della distanza, pagina 4.

Ad esempio, per arrivare a 500 mt, con una sensiblità di -116dBm, occorre usare un air-baud-rate di 5000 che è pari ad un baud rate sulla seriale di 1200-2400 bps (prima tabella di pagina 4).

In pratica, scordati di andare sopra i 4800/9600, salvo a distanze ridotte.

Guglielmo

HC-12 english datasheets.pdf (528 KB)

Ho appreso quello che avete detto ma ancora ho un dubbio… Tramite AT mode imposto la rete a 115200 e nel setup imposto la radio a 2400/4800 per il calo di ricezione giusto?? Il serial.begin() lo lascio a 9600??

Trasmittente

#include <SoftwareSerial.h>
SoftwareSerial hc12(2, 3); //RX, TX



void setup() {
  pinMode(7,OUTPUT);
digitalWrite(7,LOW); // commando AT mode
		hc12.print(F("AT+B115200")); 
 delay(100);
 digitalWrite(7,HIGH); // modalita trasparente
  hc12.begin(4800);
}

void loop() {
    hc12.println("TEST");
  
  delay(9000);
  }

Ricevente

#include <SoftwareSerial.h>
SoftwareSerial hc12(2, 3);

void setup() 
{
pinMode(7,OUTPUT);
digitalWrite(7,LOW); // commando AT mode
		hc12.print(F("AT+B115200")); 
 delay(100);
 digitalWrite(7,HIGH); // modalita trasparente
  hc12.begin(4800);

Serial.begin(9600);
hc12.begin(4800);
}
void loop() 
{
if(Serial.available()) hc12.write(Serial.read());
if(hc12.available()) Serial.write(hc12.read());
}

Che antenna usi? sono orientate uguali?
CIao Uwe

cicciozuc:
Tramite AT mode imposto la rete a 115200 e nel setup imposto la radio a 2400/4800 per il calo di ricezione giusto?? Il serial.begin() lo lascio a 9600??

NO ... ma leggere il datasheet si fa fatica ? ? ? :smiling_imp:

AT+Bxxxx
Change the UART baud rate command. Can set the baud rate of 1200bps, 2400bps, 4800bps,
9600bps, 19200bps, 38400bps, 57600bps and 115200bps. Factory defaults to 9600bps. Example:
Setting module UART baud rate is 19200bps, please send the module command "AT+B19200", module returns "OK+B19200".

Il che significa che TU imposti la velocità della porta seriale e con quella devi parlare. Se la imposti a 4800 poi dovrai comunicare conil modulo a 4800. Il "air-baud-rate" tu nemmeno lo vedi, né, tantomeno lo puoi impostare, sono cose che fa internamente il modulo.

Guglielmo

Uso l'antenna in dotazione quella a spirale su entrambi i moduli e sono orientate in aria aperta in modo giusto, il problema resta il giusto settaggio della potenza di trasmissione che al momento non riesco a impostarla..

Leggiti bene QUESTO articolo ... e metti al massimo la velocità a 9600 !

Guglielmo

Guglielmo ho letto tutti i tuoi suggerimenti ma non mi è chiaro se devo settare su trasmittente e ricevente le stesse configurazioni…

Impostazione su lunga distanza :

Trasmittente

AT+B 9600

HC12.begin(9600);

Ricevente

AT+B 9600

Serial.begin(9600);

HC12.begin(9600);

La trasmissione UART lascio FU1 di deflaut o FU3 ??

Di default, se ben ricordo, dovrebbe essere FU3 a 9600 bps e si, la configurazione deve essere uguale da tutte e due le parti.

Guglielmo

Ma non é la modalitá FU4 per distanze grandi?
Ciao Uwe

uwefed:
Ma non é la modalitá FU4 per distanze grandi?

Si, ma per "grandi distanze", 500 - 1000 mt, e con velocità limite a 1200 bps ... :wink:

Guglielmo

Signori, grazie per i vostri consigli, diciamo che ora riesco a vedere in poco di luce :slight_smile:
Ho settato la modalità FU4 ma funziona solo con 1200 bps e nel setup ho impostato la seriale hc12.begin(1200) e adesso ricevo i dati trasmessi dove prima non ricevevo nulla...
Devo precisare che ho usato le antenne a molla in dotazione per funzionare perché quando sostitutivo con una SMA (prelevata da un modem guasto) il segnale arrivava +/- 25mt , com quelle a molla sono riuscito a ricevere intorno i 100mt... Domani provo in aperta campagna se arriva sui 700/900 mt..

Ps: ho letto adesso le ultime di Guglielmo e uwefed e spero che non sto prendendo una cantonata proprio su quel 1200 bps in cui lavora la FU4...

cicciozuc:
Ps: ho letto adesso le ultime di Guglielmo e uwefed e spero che non sto prendendo una cantonata proprio su quel 1200 bps in cui lavora la FU4…

No, tutto giusto, la FU4 funziona solo a 1200 bps … ma se NON ti serve arrivare a centinaia di metri, puoi anche provare la FU3 a 9600 …

Guglielmo

La FU3 l'ho testata oggi

A 9600 arriva intorno a 30/40 metri senza ostacoli, per gli altri bps ogni volta non ricevevo alcun dato...

Orienta le antenna nella stessa posizione o verticali oppure orizontali, una paralella (trasmettitore ericevitore) all'altra.
Ciao Uwe