sensore temperatura dallas ds18b20 con DS2482-100 su un cavo "lungo"

buongiorno a tutti,
sono in questa situazione:
arduino mega + DS2482-100 + dallas ds18b20 su un cavo UTP di 300metri
ho usato questa soluzione :
http://forum.arduino.cc/index.php?topic=219928.0

Non ci sono cavoli... arrivo a circa 60 metri, non di piu'.

Qualcuno con esperienza 1-wire su lunghe distanze puo' darmi qualche consiglio?
Ho letto che il DS2482 non e' tra i piu' indicati per le lunghe distanze (ma me lo sono trovato sulla scrivania ed eccoci :slight_smile: ) .. avete altri consigli?

Un collega mi ha segnalato questo, ma se riuscissi a stare su Arduino sarei piu' contento.

È un po' una contraddizione in termini... Il bus 1-wire è stato progettato per comunicazioni su una scheda elettronica, quindi per distanze dell'ordine di qualche decina di centimetri.

Per fare quel che vuoi tu, credo che la cosa più semplice sia mettere un secondo Arduino, magari Nano o Pro Mini, vicino al sensore e farlo comunicare col primo in seriale RS-485.

Però 300m sono davvero tanti, non so se ci arriva neppure la 485. Puoi provare Ethernet al limite, se è un link punto a punto potrebbe funzionare.

SukkoPera:
Però 300m sono davvero tanti, non so se ci arriva neppure la 485. Puoi provare Ethernet al limite, se è un link punto a punto potrebbe funzionare.

La 485, fatta bene, supera tranquillamente i 1000 mt, quindi non avrebbe alcun problema e ... con quei sensori, l'unica soluzione ragionevole è quella che gli hai suggerito :wink:

Guglielmo

Aggiungo una informazione che avevo superficialmente tralasciato.
Il progetto prevede('rebbe') la misurazione della temperatura ogni n metri... i 300 metri sono quelli piu' distali (una ventina di sensori).
Ed ecco la comodita' della linea 1-wire; 1-wire e' usato per le lunghe distanze, guardate la app note 148
Parlano di "weight" come lunghezza complessiva in metri e nella nota 148 e' chiaro un esempio di " weight of 450m"
Ora come riuscire a farlo e' un altro paio di maniche :frowning:

C'e' scritto:
"The example above appears like a star topology network with a radius of 150m and a weight of 450m. However, when each switched path is considered individually, the network is actually a linear topology and the weight is only 150m"
Mi pare di capire che sono 450mt ma in 3 linee a stella, solo 1 alla volta, quindi 150mt alla volta.

C'e' poi anche scritto:
"For example, a star network configuration with three branches of 10m, 20m, and 30m would have a radius of 30m (i.e., the distance from 1-Wire master to the furthest slave) and a weight of 60m (i.e., the total length of wire in the network, 10m + 20m + 30m)."
Quindi se hai più sensori, la distanza totale mi pare è la somma della distanza di ognuno.

nid69ita:
C'e' scritto:
"The example above appears like a star topology network with a radius of 150m and a weight of 450m. However, when each switched path is considered individually, the network is actually a linear topology and the weight is only 150m"
Mi pare di capire che sono 450mt ma in 3 linee a stella, solo 1 alla volta, quindi 150mt alla volta.

C'e' poi anche scritto:
"For example, a star network configuration with three branches of 10m, 20m, and 30m would have a radius of 30m (i.e., the distance from 1-Wire master to the furthest slave) and a weight of 60m (i.e., the total length of wire in the network, 10m + 20m + 30m)."
Quindi se hai più sensori, la distanza totale mi pare è la somma della distanza di ognuno.

si hai ragione sul conteggio dei 450m.
La mia topologia e' la 1: Linear topology dove la lunghezza del "ramo" e' considerata insignificante :"The 1-Wire bus is a single pair, starting from the master and extending to the farthest slave device. Other slaves are attached to the 1-Wire bus with insignificant (< 3m) branches or "stubs."
Ma alternative al DS2482-100 ne conoscete?

La soluzione è solo una, gestire in locale il sensore tramite una piccola mcu low cost e poi inviare i dati tramite RS485 sulla lunga distanza.
La RS485 è un bus multidrop dove puoi mettere fino a 128 device sulla stessa linea se utilizzi trasceiver RS485 di ultima generazione.
Il cavo UTP va bene per usare la RS485 fino a 1200 metri con velocità del bus a 19200 bps, con un solo cavo puoi avere 4 bus RS485 indipendenti oppure un solo bus e usare le restanti coppie per portare l'alimentazione ai device remoti.