CAO-13: Refrigerador para acuarios realizado con Arduino.

Motivación:

Este ha de considerarse un subproyecto derivado del proyecto principal de CAO. Obedece a una necesidad personal muy concreta, la de automatizar un sistema de refrigeración eficaz para garantizar que la temperatura de mi acuario de 465L no se dispare durante los días que en vacaciones decida ausentarme.

Todos los años suelo dejar el acuario con algún pequeño ventiladorcito en el cual voy modificando su posición hasta conseguir que enfríe lo suficiente, pero no demasiado. Cuando este sistema rudimentario enfría más de la cuenta, entra en funcionamiento el sistema de calefacción que garantiza que el acuario no se enfríe demasiado. Esto provocaba que durante las ausencias prolongadas, la evaporación excesiva del agua del acuario hacía descender mucho el nivel del agua y finalmente, el sistema de refigeración, que requiere que el ventilador esté cercano a la superficie, perdiera eficacia. Por ello, cuando tardaba más de cinco días en volver los peces y las plantas terminaban pasando calor.

El control de la refrigeración es una de las funcionalidades que yo pensaba implementar en CAO, pero el desarrollo no para de crecer y me he quedado sin tiempo para hacer una versión de CAO reducida que cumpla siquiera ese objetivo. La única opción era simplificar al máximo, coger mi Arduino de reserva y construirme un automatismo lo más simple posible que con los elementos hardware disponibles. Necesitaba un sistema similar al usado hasta ahora, pero que enfríe lo justo porque así no descendería tanto el nivel del agua en mi ausencia.

Los ventiladores:

Me compré un par de ventiladorcitos de 12 voltios y 1 vatio de potencia. Son de los que se usan para refrigerar CPUs. Puede parecer difícil de creer que ventiladores tan pequeños sean capaces de enfriar varios grados un gran acuario, pero el secreto está en hacer que el chorro de aire incida a corta distancia contra la superficie del agua. Esto provoca el rizado de la superficie del agua que es la señal de que se está forzando la evaporación. Es como soplar en una cuchara, hay que hacerlo a corta distancia.  Lo cierto es que estos ventiladorcitos están un pelín justos de potencia para lo que necesito, pero me aseguraron que eran muy silenciosos. Si la temperatura no sube más de lo habitual cumplirán perfectamente su cometido. Bajar una décima de grado centígrado en mi acuario de 465 litros durante el día en el momento de más calor, usando estos ventiladorcitos, puede necesitar del orden de cuatro horas continuadas de funcionamiento de los mismos. Cualquier subida de temperatura tambien necesitaría bastante tiempo así que no hay problema. El tamaño de estos ventiladores no coincidía con el de las rejillas y opté por pegarlas con Araldite rápido.

El sensor de temperatura:

El sensor que usé es un sensor digital de temperatura del cual ya hablé. Véase: CAO-9: Sensor digital de temperatura DS18x20. Opté por adquirir un modelo de sonda sumergible.

Lo único que cabe añadir es que con el software que estoy usando para controlar este sensor DS18x20 no he conseguido evitar que de forma ocasional se produzcan algunas lecturas falsas de la temperatura con valores alejados de los valores reales. Esto no está afectando a la regulación, porque ocurre de forma muy ocasional, se presentan estos errores en forma de rachas. Los días que grabé el vídeo no apareció el problema, pero otros días son peores y no sé a qué es debido.

Concretamente cuando la temperatura es de 27.5 o de 27.6 suele ocurrir que la lectura falsa sea de 19.5 o de 19.6 respectivamente. Alguna vez aparece 11.5 o 11.6 respectivamente pero también algún otro resultado.

Necesito hacer pruebas con registros que me permitan investigar el tema de las lecturas falsas.  La alarma me está sirviendo para darme cuenta de cuando ocurren siempre que esté cerca.

El número de lecturas falsas es proporcionalmente muy pequeño al de las lecturas correctas y por ello el control de la temperatura no se ve afectado.

Las causas de estos extraños errores pueden ser: el software, la electrónica del sensor, la memoria interna del sensor, podría ser algún mal contacto en el circuito o en algún conector, problema de humedad en el sensor (esto sería grave porque podría ir a mayores), o cualquier otra cosa. Me basé en el código publicado en foros de Arduino, que parece estar bien, porque en una prueba con otro circuito, y usando una sonda diferente no sumergida, realicé 20000 lecturas y no ocurrió ni un solo error.

Otros elementos del hardware:

Estoy usando un display LCD de 16×2 con protocolo I2C para que visualice la temperatura y algún mensaje.

Un piezo electrico me sirve como avisador acústico ante temperaturas demasiado altas o demasiado bajas.

La conmutación del circuito de ventilación, al requerir muy poca potencia la realizo con un mini relé, el  TQ2-5V del que también hablé. Véase CAO-11: El uso de relés en Arduino. En aque artículo viene el esquema para gobernar ese mini relé con Arduino.

Dado que necesito 12 voltios para el ventilador, alimento todo el aparato con 12 voltios. Este valor está en el límite máximo de voltaje que Arduino puede soportar. Arduino funcionaría dando soporte vital a mis peces, 24 horas al día y en condiciones altas de temperatura, así que decidí reducir el voltaje de 12 voltios a 8 voltios con un integrado 7808 que llevará un disipador.

Placa Protoshield:

Para soldar en una placa los diferentes componentes del circuito, use una plaquita protoshield, con ello se evita un montón de cableado entre la placa desarrollada y el Arduino al ir pinchada directamente encima.

Hay distintos modelos de placas de este tipo que resultan muy practicas para la realización de pequeños prototipos. Yo usé el modelo que veis en las figuras siguiente:

ArduinoProtoShield_Back
ArduinoProtoShield_Back

ArduinoProtoShield_Front
ArduinoProtoShield_Front

La principal incompatibilidad de esta placa para su uso con un Arduino Mega, es la disposición de los pines  SLC y SDA que no coincidiran con lo indicado en la serigrafía de esta placa ya que está pensada para modelos de la gama baja de Arduino. La solución es conectar los pines SLC y SDA mediante cables a los pines correctos que que en Arduino Mega son el 20 para SDA y el 21 para el SCL (en lugar del 4 y 5).

Con los pines SLC y SDA más los de GND y +5V tendremos el bus I2C que en nuestro caso se usa para el display.

La caja:

La caja se realizó pegando placas de metacrilato de 4mm cortadas a unas medidas que, a la vista está, no fueron demasiado bien calculadas. Todo se hizo en plan chapuzilla y de forma algo precipitada, pero funcional. El objetivo era conseguir un aparato a tiempo, e ir practicando la fabricación de cajas a medida realizadas en metacrilato.

Lo que más me costó fue acoplar los conectores de alimentación y de salida en la caja, porque el metacrilato no es fácil de trabajar y menos con un grosor de 4mm. Las sierras de madera no van bien con el metacrilato. Pueden astillarlo, y las de metal se embotan rapidamente porque la fricción funde el metacrilato parcialmente. Lo suyo es usar una sierra de calado que yo no tengo.

Perforar con calor tampoco es fácil porque el metacrilato tiende a contraerse cuando se enfría de nuevo. Son cosas que me sirven de entrenamiento de cara a diseños de cajas más ambiciosas para el proyecto CAO porque encontrar una buena caja para el equipo tampoco me está resultando sencillo.

Valortes de temperatura en el código:

Para el control de temperatura elegí 27.5 grados centígrados con una histeresis de media décima de grado. Es decir, que a 27.55 ºC o más, se conectará el ventilador y a de 27.45 ºC o menos, se desconectará.

Las constantes de temperatura se definieron en el código:

#define MIN_TEMP 22.5 // Por debajo ==> Suena Alarma (peligro punto blanco)
#define TEMP_FRIO 24.3 // Entre óptimo y algo frio
#define TEMP_CALOR 27.5 // Por encima se activa el ventilador para refrescar
#define MAX_TEMP 29.3 // Por encima ==> suena la alarma (peligro plantas)

Para variar alguna de ellas hay que editar el código, recompilarlo y volverlo a cargar por USB. La caja tiene una pequeña abertura de forma cuadrada alineada con el conector USB de arduino para poder enchufar un cable USB en caso necesario de actualización.

El display no muestra la resolucion de centésimas de grado. Un led rojo indicará cuando entra en funcionamiento el ventilador y cuando deja de hacerlo.

Resultados prácticos:

Aún es muy pronto para sacar conclusiones ya que vengo usando este aparato desde hace solo una semana. Le cuesta tiempo alcanzar la temperatura idónea cuando parte de una temperatura alta, pero luego mantiene perfectamente la temperatura a 27.5 ºC.

Descarga del código fuente: 

CAO_Refrig.ino.zip (3Kb)  (273 líneas)

PD:

(31-jul-2013) ¡Solucionado! (Eso creo):

El problema que ya detalle en la nota que veis a continuación. Ha quedado solucionado reforzando la hermeticidad de esa sonda que me vendieron como sumergible. De todas formas dado que el anterior problema tardo algún tiempo en aparecer lo confirmaré uno o dos meses más tarde. Es un problema serio, porque el agua y la electricidad no se llevan muy bien, y en CAO este tipo de obstáculos pueden aparecer más de una vez.

(26-jul-2013) Detalle de algunas incidencias de funcionamiento: 

Este artículo no está terminado porque el vídeo y las primeras pruebas salieron demasiado bien.

El tema de los sensores es delicado, estos pueden verse afectados por multitud de factores. En la lectura de la temperatura se han presentado errores esporádicos que no han afectado a la regulación de la temperatura. Se presentan en forma de rachas y rara vez se presentan seguidos, pero ayer, ocurrió una racha de errores muy intensa. Aparecián errores de forma continua y valores absurdos comprendidos entre el valor correcto de temperatura y el valor cero que apareció más de una vez. Es decir, parece que el funcionamiento del sensor está empeorando.

Se me ocurrió toquetear los contactos, pero nada. Saqué la sonda del agua y empezó a funcionar perfectamente. Sumergí solo la punta metálica de la sonda en el agua y también parecía funcionar perfectamente. Es difícil sacar conclusiones, pero perdí la confianza en la correcta impermeabilización de la sonda.

Lo dejé así, solo con la punta metálica sumergida y parece que no volvieron a aparecer errores. Una parte importante de todos estos sistemas es un sistema de registro que no contemplé para esta mini versión.

Desconecté el aparato y revile el alimentador. Medí con el polímetro la resistencia desde los dos polos de toma de corriente eléctrica a 220v hasta los dos polos de la salida de corriente continua variando la polarización y el aislamiento entre la toma de corriente y la salida de la alimentación parece perfecta. También medí la posibilidad de que la funda de acero de la sonda estuviera eléctricamente en contacto con alguna de los hilos del sensor, pero también está perfectamente aislada eléctricamente. Cabe no obstante que a través del cuello de la sonda  exista alguna fuga de corriente y que las interfenrencias entren desde allí. Si es muy pequeña puede ser complicado verificarlo. 

Lo que hice es tomar la segunda sonda idéntica a la que tengo y reforzar su hermeticidad entubándola dentro de un tubo termo retráctil rellenado con silicona. (No es exactamente silicona, es CEYS MS Tech) Tiene la adherencia de un poliuretano y la elasticidad de una silicona. Amabas cualidades son esenciales para este caso.

Al calentar para retrotraer el tubo y que quede ajustado, tuve cuidado de que no ardiera la silicona No es la primera prueba que hago, ya impermeabilicé un termistor NTC con buenos resultados. 

El tema de la impermeabilización de los sensores es crítico ya que un mal funcionamiento puede ser desastrosos, y porque un sensor puede parecer que funciona bien y empezar a funcionar mal al cabo de un tiempo por pérdida de la hermeticidad.

Ya he cambiado la sonda, ahora la parte metálica de la sonda no hace contacto con el agua y las juntas sospechosas en el cuello de la sonda han sido embutidas en plástico con silicona y parece ir perfecta por el momento (la otra tardó varios días en empezar a fallar).

En cualquier caso, compré una sonda sumergible y por ello más cara, y parece que ese dinero extra no ha valido la pena.

Me está pareciendo más aconsejable desarrollar un buen sistema de impermeabilización y someter personalmente las sondas sumergidas a un montón de pruebas.

La sonda presuntamente defectuosa está siendo probada en seco y con un programa que registra en mi ordenador una lectura cada 1.5 segundos y lleva 1800 lecturas de temperatura sin un solo fallo. La electrónica tiene estas cositas.

(2-ago-2013) Prueba de fuego:

Procedí a impermeabilizar mediante un procedimiento casero una sonda idéntica a la empleada anteriormente y funcionó perfectamente. Básicamente usé tubo termoretractil rellenado de silicona. Durante algunas semanas comprobé que no ocurría ni un solo fallo en lecturas de temperatura.

Después de eso rellené el acuario hasta arriba y me fui de vacaciones 10 días. A la vuelta, como es lógico me encontré el acuario con un nivel bastante más bajo, por la evaporación forzada de los ventiladores.

Elegí precisamente una temperatura un pelín alta (27.5) para reducir en la medida de lo posible la evaporación y que el invento aguantara el mayor tiempo posible. Una vez que el nivel del agua desciende considerablemente, se pierde mucha eficiencia de refrigeración por evaporación.

Concretamente la situación que me econtré a la vuelta de las vacaciones fue un acuario con cuatro dedos menos de agua. La temperatura del agua pasó de estar clavada en 27.5 a estar a 27.6. Es casi lo mismo pero eso implica que los ventiladores funcionaban ahora de forma contínua y ya estaban en el límite de su capacidad de refrigeración. Si hubiera tardado más de 10 días, la temperatura habría ido elevándose día a día.

En cualquier caso, ha sido un éxito rotundo, ni una baja y las plantas aguantaron pero estuvo un poco al límite. Este sistema no es válido para ausencias prolongadas sin un sistema de llenado automático. (Todo se andará).

Rellené el acuario de agua hasta arriba y ahora he bajado la temperatura a 26.5 ºC porque los 27.5 ºC hacen que la ambulia (Limnophila sessiflora) crezca mal por encontrarse en el límite de su temperatura ideal.

El cacharrillo lleva más de un mes sin dar un solo problema, con lo cual queda confirmado que la sonda usada inicialmente perdía hermeticidad a medio plazo y por eso dio problemas. El arreglo casero a medio ha funcionado bien, pero ignoro si a más largo plazo podría dar problemas. De hecho pese a que funciona ahora perfectamente, he notado que la funda hermética llena de silicona ha aumentado algo de grosor (posible hidratación) y ahora pasa con dificultad por el agujero de la tapa de metacrilato.

Para cambiar la temperatura de regulación de 27.5 ºC a 26.5 ºC he tenido que hacer el cambio en el código, lo cual no es práctico, supone desnchufar el aparato y conectarlo al ordenador para cargar el nuevo código.

Estoy pensando que para el verano que viene convendría añadir botones para poder variar esos parámetros.

 

 

Share

4 opiniones en “CAO-13: Refrigerador para acuarios realizado con Arduino.”

    1. Los tengo a la menor distancia que he podido del agua, porque pierden mucha eficiencia si el chorro no impacta con la suficiente fuerza en la superficie. De hecho con la evaporación baja el nivel y va perdiendo mucha eficiencia.

      1. Gracias Antonio.

        Vi tus magnificos videos del montaje de la pantalla led y los ventiladores incrustados en la misma, y quisiera montar algo parecido.

        Mis ventiladores calculo estarían a 10cm del agua, ¿demasiado?.

  1. Depende de la potencia del ventilador, de la cantidad de agua que se tenga que enfriar, de la diferencia de temperatura que se pretenda rebajar, etc. Lo que te puedo decir es que si reduces la distancia de 10 cmts a la mitad la eficiencia sería muy superior al doble. La distancia es muy importante, pero el resultado depende todos esos factores. Siempre vas a conseguir alguna reducción de temperatura si introduces ventilación pero el número de grados que puedas bajar variará de como lo montes.

    Puedes ver perfectamente en el vídeo lo cerca que yo pongo esos dos ventiladores del agua y me enfrían sin problemas 465 litros. Elije ventiladores que no hagan ruido.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *