Termómetro para PC, registrador de temperaturas y control de 8 salidas

Este termómetro es como el otro que se presenta en esta web pero se le han añadido 8 salidas que se pueden activar o desactivar manualmente desde el PC o pueden hacerlo automaticamente si se alcanzan los límites de temperatura establecidos en el programa de control.

Características:

 

Esquema:

Funcionamiento: El microcontrolador PIC16F627 es el componente principal del circuito, interpreta los comandos que recibe del ordenador y los comunica a los sensores de temperatura o al circuito integrado ULN2803 que controla las 8 salidas. El circuito se alimenta con una tensión de 8 a 24 V, esta tensión alimenta también a los relés, por tanto debe coincidir con la tensión de funcionamiento de estos. El circuito estabilizador IC3 78L05 limita la tensión a 5 voltios para alimentar al microcontrolador. La resistencia R7 y el diodo zener DZ1 protegen al PIC de posibles picos de tensión en el bus 1-wire. La salida de la alarma va vonectada al transistor T3 que tiene la salida en colector abierto y puede activar un pequeño relé o zumbador con una alimentación externa. La velocidad de comunicación con el PC es de 1200bps, una velocidad baja pero suficiente para este proyecto ya que el número de bytes a enviar es bajo. El termómetro va conectado a través de un cable a un puerto serie del PC que disponga de un conector DB9 macho.

Sensor DS18B20 Los sensores usados son del tipo DS18B20, este es el sucesor del DS1820, tiene un margen de temperaturas de -55 a 125 grados con una resolución y una precisión de medio grado y funciona con el protocolo de comunicación 1wire de Dallas(Maxim), el microcontrolador PIC16F627 hace de adaptador entre este protocolo y los comandos RS232 con los que se comunica con el PC. Este sensor se usa en el modo "parasite power" que nos permite usar solo dos hilos en el bus, de este modo el pin de alimentación del sensor se une a masa y el pin central sirve tanto para alimentar el sensor como para leer los datos.

El termómetro tiene la posibilidad de conectar una alarma externa(además de las 8 salidas) que activará el programa del PC durante un segundo si al leer las temperaturas estas an alcanzado los límites prefijados. En este esquema vemos como conectar un relé que puede activar el dispositivo que queramos, este relé es activado por el transistor T3. El circuito se debe alimentar de una tensión externa que debe ser igual a la de funcionamiento del relé. El diodo D1 es necesario para proteger al transistor de las descargas que se producen al conmutar la bobina.

En la siguiente imagen vemos varios ejemplos de como pueden ir conectados los sensores al bus 1-wire, será suficiente con usar cable de tipo telefónico de dos hilos, la longitud del bus puede sobrepasar los 100 metros ampliamente sin que haya problemas de comunicación. Podemos usar la forma de conexión que más se adecue a nuestras necesidades y podemos usar el número de sensores que queramos: desde uno hasta ocho.

El orden en el que aparecerán los sensores en el programa de visualización no depende de la posición en el bus sino del número interno que lleva cada uno grabado en la ROM por tanto tendremos que comprobar cual corresponde al primero, al segundo, etc.

 

Programa de lectura de las temperaturas:

Este es un programa hecho para el PC que se comunica con el termómetro y visualiza los datos leidos, los compara con unos valores prefijados y si las temperaturas llegan a estos valores activa las alarmas sonora, externa o visual. además va registrando las temperaturas en un gráfico y opcionalmente en un archivo.

Gráfico de temperaturas

En el programa tenemos las siguientes solapas:

Gráfico: en la primera solapa tenemos un gráfico que nos permite ver de un vistazo el estado de las temperaturas. Aparecerán tantas columnas como sensores tengamos conectados, en la base de cada una de ellas vemos el valor de la temperatura y un cuadrado verde o rojo que nos indica si se ha superado el límite superior o inferior definido en la solapa "Márgenes". Como se pued ver, la precisión de los sensores es grande ya que todos marcan la misma temperatura al estar en el mismo ambiente excepto el 6º que está en el exterior.

Logs: en esta solapa van quedando registradas las últimas temperaturas leidas y también quedan los errores que pudiesen haberse producido.

Márgenes: aquí podemos seleccionar los límites superior e inferior para cada sensor, si estos se alcanzan se activará la alarma externa, la sonora del PC y la visual en las columnas de temperatura.

Máximas: en la solapa "Máximas" vemos las temperaturas máximas y mínimas alcanzadas por cada sensor.

ROM: aquí veremos el número de sensor(1 a 8), el tipo de familia(28h para estos), la dirección ROM que le corresponde, el CRC y la temperatura actual.

Config.: En la solapa "Config." podemos seleccionar varias opciones como por ejemplo el tiempo entre lecturas(5 a 300 segundos), el tiempo entre cada grabación en el archivo, validar o invalidar las alarmas, seleccionar los colores del gráfico, seleccionar el puerto serie, etc.

Salidas: En la solapa "Salidas" tenemos 8 botones que nos sirven para activar o desactivar cada salida, también hay 8 luces que nos indican el estado de estas. Cada salida se puede activar o desactivar desde su botón pero también se puede asignar a su sensor(marcando la casilla correspondiente) y entonces se activará si este alcanza los límites de temperatura establecidos.


Gráfico de registro de temperaturas: Si apretamos el botón central podemos ver un gráfico con las temperaturas registradas las últimas 24 horas si el tiempo entre medidas es de 5 segundos, pero si lo ponemos cada 10 segundos el tiempo registrado será de 48 horas, si ponemos un minuto, el tiempo registrado será de más de 12 días y así sucesivamente.

Gráfico de temperaturas

Listado: Si hemos marcado la casilla "Salvar temperaturas" en la solapa de configuración nos habrá pedido el nombre de un archivo en el que grabará la fecha, hora y temperaturas leidas como en el ejemplo siguiente:

Listado de temperaturas


 

Programa Aquí podemos descargar programa de lectura de las temperaturas.

Microcontrolador El programa del PIC no está disponible pero se puede enviar el termómetro montado o el chip programado a quien esté interesado en este proyecto.