Distanza sensori

Buongiorno a tutti.
Nei giorni scorsi ho passato dei cavi per piazzare in casa due sensori di temperatura ed anche il cavo per il DYP-ME007TX di qualche post addietro.
Pensavo di riuscire a contenere la distanza dei cavi, invece sono finiti a distanze di 10, 20 e 30mt!
I sensori di temperatura sono dei DHT11 li ho montati con una resistenza di pull-up da 10k(va bene?), li ho provati e sembrano funzionare...Ora mi chiedevo c'è modo di quantificare la perdita di informazioni dovuta alla lunghezza del cavo? Gli eventuali disturbi cosa potrebbero comportare, una lettura errata oppure una lettura assente? Esiste un modo per fare una sorta di checksum?

Per quanto riguarda il DYP-ME007TX, sono nella mani della comunicazione seriale, con 30mt di cavo chissà cosa arriverà ad arduino? Però di buono c'è che il DYP-ME007TX prevede un checksum interno che controllo e quindi i dati o sono buoni o niente!

Ciao e grazie.

AlexP1:
I sensori di temperatura sono dei DHT11 li ho montati con una resistenza di pull-up da 10k(va bene?),

No in nessun caso, dal data sheet:

When the connecting cable is shorter than 20 metres, a 5K pull-up resistor is recommended; 
when the connecting cable is longer than 20 metres, choose a appropriate pull-up resistor as 
needed.

Se il cavo è meno di 20 metri ci devi mettere una 5k, o una 4.7k che è il valore vicino facilmente reperibile, se sono 30 metri mettici una 3.3k per stare tranquillo.

Il manuale del DHT11 dice:

When the connecting cable is shorter than 20 metres, a 5K pull-up resistor is recommended; when the connecting cable is longer than 20 metres, choose a appropriate pull-up resistor as needed.

Visto che l'interfaccia é un interfaccia digitale seriale se funiona male non riconoscerá alcuni o tutti i bit e avrai dati inconsistenti niente o piú probabile non hai proprio dati. Non hai perdita di informazioni dovuta alla lunghezza del cavo. O funziona o non funziona o ognitanto non funziona. IL DHT11 prevede oltre 4 Byt di dati anche un somma di controllo di 1 Byte.
Ciao Uwe

AlexP1:
I sensori di temperatura sono dei DHT11

Anche io sto cominciando le letture dei DHT11 ma non mi rileva temperature sotto lo ZERO e rimane fisso a 1°
Cmq sicuramente mi sarò perso io qualche riga di codice tra il sensore e l'LCD 16x2 :grin: più avanti provvederò!

Tienici aggiornati sulle letture a lunga distanza!

KrashNet:
Anche io sto cominciando le letture dei DHT11 ma non mi rileva temperature sotto lo ZERO e rimane fisso a 1°
Cmq sicuramente mi sarò perso io qualche riga di codice tra il sensore e l'LCD 16x2 :grin: più avanti provvederò!

Nelle specifiche é scritto che il range di misura del DHT11 é da 0 a 50 Gradi centigradi. Percui niente temperature negative.
http://www.robotshop.com/PDF/dht11.pdf

Ciao Uwe

uwefed:
Nelle specifiche é scritto che il range di misura del DHT11 é da 0 a 50 Gradi centigradi. Percui niente temperature negative.
http://www.robotshop.com/PDF/dht11.pdf

Ciao Uwe

Giusto! :roll_eyes: è il DHT22 che legge -40 + 80 degrees C temperature range (ho cannato a cancellare i prodotti nell'ordine)
(costa un po di + ma è anche più preciso)

astrobeed:

AlexP1:
I sensori di temperatura sono dei DHT11 li ho montati con una resistenza di pull-up da 10k(va bene?),

No in nessun caso, dal data sheet:

When the connecting cable is shorter than 20 metres, a 5K pull-up resistor is recommended; 

when the connecting cable is longer than 20 metres, choose a appropriate pull-up resistor as
needed.




Se il cavo è meno di 20 metri ci devi mettere una 5k, o una 4.7k che è il valore vicino facilmente reperibile, se sono 30 metri mettici una 3.3k per stare tranquillo.

Ma come becco sempre il sito sbagliato!

Lo avevo letto qui
http://www.ladyada.net/learn/sensors/dht.html

Che dovrebbe essere qualcosa collegato ad adfruit.
Che problema potrei avere montando una resistenza più grande? Valori sballati?

Grazie.

LadyAda è il sito della proprietaria di Adafruit. Cmq secondo me non è errato perché lì sta usando il sensore praticamente attaccato ad Arduino. Uwe ti ha detto che serve una R da 5K5 per cavi fino a 20 m, ma lì siamo a 20 cm :smiley:

Adesso è tutto più chiaro! Maggiore è la lunghezza del cavo e minore deve essere la resistenza... Quindi devo mettere una 5k, ho capito.

Grazie come sempre dei consigli

leo72:
Cmq secondo me non è errato perché lì sta usando il sensore praticamente attaccato ad Arduino. Uwe ti ha detto che serve una R da 5K5 per cavi fino a 20 m, ma lì siamo a 20 cm :smiley:

Invece è sbagliato, è lo stesso discorso della I2C dove è imperativo mantenere un certo livello minimo garantito di corrente sulla pull up indipendentemente dalla distanza.
Il produttore del sensore dice chiaramente che la resistenza minima deve essere 5k, o valore prossimo, per distanze inferiori ai 20 metri, deve essere più bassa, cioè più corrente, per distanze maggiori.
Se c'è una cosa a cui bisogna sempre attenersi senza se e senza ma sono le specifiche dei produttori sui datasheet se non si vuole incorrere in problemi strani o in malfunzionamenti occasionali che poi ti fanno impazzire e fanno perdere un sacco di tempo.