giovedì 30 giugno 2016

Protocollo 1-wire: Test sonda Dallas DS18B20

Iniziamo con il dare alcuni cenni sul protocollo 1-wire. Creato dalla Dallas Semiconductor come sistema di comunicazione a filo unico a bassa velocità di comunicazione e lungo raggio e per dispositivi molto economici. 

Attualmente spesso utilizzato in dispositivi economici come termometri, sensori di pressione e umidità.

Il sistema a bus 1-wire è di tipo Master / Slave con la possibilità quindi di avere più dispositivi collegati che realizzano una sorta di micro-lan, ogni dispositivo è dotato di un proprio identificativo a 64 bit assegnato i fase di produzione ed inciso nella ROM.

Ora occupiamoci di testare la nostra sonda Dallas DS18B20 (acquistabile qui), lo schema generale di collegamento è il seguente:




Abbiamo due possibilità per testare il componente.

Utilizzare la nostra development board EtaBeta Idea per chi ne è in possesso, già pronta per lo studio del sensore di temperatura, oppure preparare un test con ARDUINO UNO ed una breadbord seguendo lo schema riportato in figura 1.


Figura 1

Con EtaBeta IDEA basta semplicemente abilitare la sonda Dallas preinstallata posizionando il Dip Switch DS1 - 7 in posizione ON come in figura 2.


Figura 2

Ed ecco uno sketch di prova per testare la nostra sonda di temperatura, i dati vengono stampati sulla seriale dell' IDE di Arduino una volta aperta. 


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/*
 * Tutorial test Dallas DS18B20 su pin digital 8 
 *
 * Acqua - Pinto 
 * https://etabetastudio.blogspot.com
 */

#include <OneWire.h> 
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 8
OneWire ourWire(ONE_WIRE_BUS);
DallasTemperature sensors(&ourWire);

void setup() 
{
delay(1000);
Serial.begin(9600);
Serial.println("TEMPERATURA RILEVATA DALLA SONDA");
Serial.println("DS18B20");
delay(1000); 
sensors.begin();
}

void loop() 
{
Serial.println();
sensors.requestTemperatures();
Serial.print("Temperatura = ");
Serial.print(sensors.getTempCByIndex(0));
Serial.println(" gradi C");
delay(5000); // ogni 5 secondi stampo il valore della sonda
}



Per chi  non avesse le librerie OneWire.h , DallasTemperature.h caricate, possono essere installate in questo modo. 

Aprite  la  "Gestione librerie " della IDE in  Sketch > Inclusione librerie > Gestione Librerie. Modificare i parametri di ricerca in "tutti" e cercare la libreria onewire e dopo dallas DS18B20. 

Una volta identificate cliccate su installa per ogni singola libreria. Riavviate l'IDE ed il gioco è fatto.

Per installare manualmente le librerie puoi scaricarle ai link seguenti: 

One_Wire clicca qui.
DallasTemperature clicca qui.













Nessun commento:

Posta un commento