Sensor de temperatura DS18B20

El sensor DS18B20 nos permitirá tomar medida de la temperatura en exteriores sin preocuparnos de aislar el sensor de las inclemencias del tiempo. El sensor viene encapsulado y preparado para su montaje casi directo.

El modelo seleccionado fue comprado en DealExtreme.

El modelo tiene las siguientes características:

A prueba de agua y humerdad.

Voltaje: 3 a 5V.

Resolución: 9 a 12 bits.

Rango de temperatura: -55 a 125ºC.

Interfaz de bus único.

El sensor cuenta con 3 cables, alimentación, masa y cable de datos, por lo que su conexión es muy sencilla.

Diagrama:

Podeís ver el tutorial de cómo conectar y manejar el sensor en Adafruit. Aunque en el diagrama se muestra el sensor con 4 cables el que hemos adquirido en DealExtreme solo tiene dos. Necesitaremos también una ressistencia.

El sensor va conectado en el diagrama al puerto GPIO 4 y debe ir en dicho puerto por el interfaz 1-Wire que usa y que va integrado en el kernel de raspbian. El sensor de humedad deberá ser desplazado a otro puerto GPIO, pero para este sensor no es un problema.

Para leer los datos de este sensor, dado que el propio kernel ya incluye el interfaz 1-Wire, no hace falta más que leer el "archivo" que el módulo genera una vez iniciado.

En la ruta /sys/bus/w1/devices el módulo del kernel que maneja el interfaz deja un "archivo" en una carpeta cuyo nombre comienza por 28-XXXXXXXX. No hay más que leer el "arcihvo" para leer los datos del sensor. El fichero contiene los datos de temperatura y al final de la primera linea el texto "YES" o "NO" en función de si la lectura ha sido correcta. En la siguiente línea los datos de temperatura precedidos de los caracteres "t=".

En nuestro caso, dado que empleamos C como lenguaje de control, buscando un poco en google encontraremos librerías que nos permitan comunicarnos con módulos que implementen el protocolo 1-Wire.