Misurare la Temperatura
DS18x10
Gli integrati della famiglia ds18x10 (come il ds18s10 o il ds18b10) sembrano dei transistor, ma sono termometri che si collegano al bus 1wire. Il collegamento di questi integrati è già stato decritto nella pagina 1Wire e il sensore di temperatura ds18s10
LM35
Anche l'integrato lm35 sembra un transitor ed e' anch'esso un termometro elettronico pero', a differenza dei ds18x10, e' un componente analogico.
L'uso appare banale.
Questa immagine (tratta da questa pagina e rilasciate in GNU FDL) mostra come collegare l'LM35.
Potete collegare l'integrato a un alimentatore e leggere con un tester la tensione presente nel pin centralecome mostrato in questa figura.
Il valore letto e' la temperatura in gradi celsius, un centesimo di volt (10mV) per ogni grado. Se quindi leggerete 0.203V significa che il termometro misura 20.3 gradi.
Questo sensore potrebbe misurare anche temperature negative ma occorre un circuito piu' complesso, in questa configurazione semplice puo' essere un valido strumento per misurare temperature interne di locali, per esempio per costruire un termostato per la caldaia.
E' possibile collegare il sensore LM35 ad un ingresso di un convertitore MCP300x (il collegamento degli integrati MCP300x al Raspberry PI e' descritto nella pagina Input Analogico SPI: gli integrati MCP300x).
IL programma python e' il seguente (il sensore e' collegato all'ingresso 0 di un mcp3008):
#!/usr/bin/env python import spidev import time mcp3008 = spidev.SpiDev(0,0) adcnum=0 ret=mcp3008.xfer2([1,(8+adcnum)<<4,0]) adcout = ((ret[1]&3) << 8) + ret[2] print "{:10.3}'C".format(adcout * 3.3 * 100 / 1024) mcp3008.close()L'output e': 20.3'C