venerdì 13 settembre 2013

Come rilevare la temperatura con Raspberry Pi ed il sensore DS18B20

Come rilevare la temperatura con Raspberry Pi ed il sensore DS18B20.
Scrivo questa nota perche' ho fatto degli esperimenti con il sensore in oggetto qualche settimana fa, ma quando sono tornato a testare il circuito di rilevazione della temperatura con il sensore collegato, mi sono accorto di essermi dimenticato completamente la procedura che avevo testato con le prime prove. Di conseguenza e' importanter che fissi alcune note su come ho condotto i miei esperimenti, altrimenti rischio (causa l'età avanzata) di non essere in grado di condurne di analoghi qualche giorno dopo!

Quiindi partiamo.

Si tratta di un sensore di temperatura tra i più utilizzati sia nel campo hobbistico che in quello professionale, ha una sensibilita' ed una accuratezza della rilevazione di tutto rispetto, con una precisione che si attesta nell'ordine del mezzo grado centigrado. Ottimo per ogni tipo di test a livello hobbistico e per la maggior parte delle applicazioni in campo domotico.
 Collegamenti da effettuare tra il sensore DS18B20 e la Raspberry Pi


Per caricare i moduli Kernel necessari, queste sono le istruzioni. Faccio notare che i moduli vengono caricati in modo temporaneo, al reboot della Raspberry Pi se vogliamo leggere la temperatura di nuovo, devono essere ricaricati, utilizzando le stesse istruzioni.
sudo modprobe w1_gpio && sudo modprobe w1_therm
sudo sh -c "echo 'w1_gpio\nw1_therm\n' >> /etc/modules"

A questo punto si deve andare a leggere all'interno della cartella /sys/bus/w1/devices/ il nome proprio del sensore che abbiamo attaccato alla nostra Raspberry, 
leggendo le directory create con l'istruzione  ls -l /sys/bus/w1/devices/

 
 Questa e' l'struzione da shell per ottenere la lettura diretta dal sensore. il sensore che avrete utilizzato si chiamera' con un nome univoco, quindi per fare altrettanto con un sensore diverso dovete cambiare il nome ( 28-000004bf24bf ) che ricaverete come destritto sopra.
cat /sys/bus/w1/devices/w1_bus_master1/28-000004bf24bf/w1_slave

Cio' che ricaviamo indietro dalla istruzione appena digitata sono le due righe nell'immagine qui sopra. La prima, per quello che ho capiro, conferma con il risultato "YES" l'effettiva lettura avvenuta, la seconda riga invece contiene la lettura vera e propria ( t=28875 ) nel caso in figura.
Il valore, per ottenere la lettura in gradi centigradi, deve essere diviso per 1000, in questo caso si otterra' una lettura in gradi centigradi di 28,875°C
Vi rimando alla pagina web dalla quale ho attinto per condurre questo esperimento
http://raspbrew.tumblr.com/post/40446499326/reading-temperatures-on-a-raspberry-pi-using-ds18b20
Leggete bene tutta la guida, e' fatta molto bene e a seguire riporta anche tutta una serie di esempi di come utilizzare l'informazione con programmini in Python costruiti per l'occasione.

Quando saro' in grado di svilupparne direttamente, certamente ne pubblichero' i risultati.
Molti altri esperimenti bollono in pentola, tra i tanti:
Costruzione di una sistema di telecontrollo con Raspberry Pi
Costruzione di un sistema di rilevazione presenze con Raspberry Pi e Arduino
Sistema di irrigazione alternativo con Arduino
ecc. ecc.  stay tuned
TecnoGeppetto

Nessun commento: