Cómo fabricar un «Controlador de Acuario por Ordenador (CAO)»
Esta es la página de presentación de un proyecto que nace como un proyecto personal. En el momento de escribir estas líneas tengo material comprado y estoy experimentando por mi cuenta. Para ello dispongo de un Raspberry Pi, un Arduino Mega, una placa de prototipos de circuitos electrónicos, y ya he pasado a la fase de probar sensores y relés, así como construir algunos circuitos electrónicos soldando componentes en placas de circuito impreso. Uso el entorno de programación de Arduino y supongo voy a necesitar gastar bastantes meses para implementar todo lo que tengo ahora esbozado en mi cabeza.
Para aquellos que sean novatos en lo referente a proyectos Arduino, les recomiendo un artículo lleno de ejemplos, tutoriales y otras refrencias útiles para aprender Arduino desde cero.
Mi idea es diseñar un acuario inteligente, controlable desde cualquier lugar por medio por ejemplo de un iPhone o de una tablet, gracias al uso de una interfaz WEB que residirá en el Raspberry Pi que entre otras funciones hará de servidor WEB.
Iremos paso a paso compartiendo los obstáculos encontrados y los avances en la construcción del sistema CAO para que cada cual pueda introducir las variaciones que considere oportunas.
Videos del proyecto CAO:
(Lista actualizada el 15-sep-2013)
- Refrigerador para acuarios (Un subproyecto de CAO realizado con Arduino)
- Módulo para el uso de Arduino PH Shield, de Dormant Labs
- Controlador de Acuarios por Ordenador (CAO prototipo 01 usando Arduino)
Véase: Artículos sobre CAO publicados hasta la fecha.
oscar
Hola Antonio,
llegué vía el video «El pez más viejo y más listo de mi acuario.» y me he acabé leyendo todo tu blog. Muy interesante también el proyecto CAO.
Actualmente tengo la Raspberry y un Arduino Uno dedicados a otras cosas… pero no descarto montar mi CAO jeje
Muchas gracias por compartir tu conocimiento de acuariofilia 🙂
PD: mi pequeña «recompensa» por todo lo que has compartido: la imagen del link a «google plus» de la derecha esta «rota» (al menos en Google chrome) falta el «ciberdroide.com/AcuBioMed/» para que se muestre correctamente 🙂
y el link de «Suscripción en eReader» no me permitía añadirte a mi reader, el otro link de más abajo https://acubiomed.com/feed/ si 🙂
Antonio Castro
Gracias por tus observaciones. Acabo de dar un repaso a la web.
Oscar, compruebo que compartimos el interés por ciertos temas. Me encantará, continuar compartiendo conocimientos, proyectos, inquietudes… lo que te apetezca.
Un cordial saludo, espero verte por aquí.
Antonio Cortes
saludos soy Antonio y me interesa saber mas sobre el proyecto CAO. tengo poca experiencia en automatización pero tengo deseos de agrandar mi conocimiento. Tengo conocimiento en electrónica y tengo un acuario y me interesaría implementar el CAO a el para che car desde el simples niveles del agua hasta los niveles de amonia , espectros de luz y mas .pudiendo utilizar termo sensores ,foto sensores , termo resistencias ……. espero una satisfactoria respuesta gracias.
Antonio Castro
Me encanta que alguien se interese por este proyecto y que afirme que tiene en mente proyectos y aplicaciones concretas que le interesa llevar a cabo.
De las cosas que mencionas hay partes fáciles, como: Medir niveles de agua, temperatura, PH, y espectros de luz, son cosas muy factibles, y tengo varias ideas para todo ello.
Todo lo que dices se puede hacer aunque los niveles de amoniaco y de otros muchos parámetros químicos será complicado automatizarlos. Habría que hacer un colorímetro, y un sistema automatizado para tomar una muestra de agua, poner reactivos, agitar la muestra y analizarla por colorimetría. En realidad algo así tendría un interés y una dificultad que justificaría un proyecto aparte, pero también tendría muchas partes comunes con lo que yo estoy haciendo y averiguando. No me asustan los retos.
La forma de llevar a cabo esta colaboración sería tratarlo todo en público, ya que esa sería la mejor forma de que más gente aproveche estos conocimientos y de encontrar más que quiera de alguna forma sumarse al proyecto.
Forma de empezar:
No es imprescindible, pero podrías comprarte una placa protoboard de tamaño mediano para antes de soldar nada poder hacer pruebas y ensayar los circuitos electrónicos (la mía me costó 15 euros).
También deberías comprarte un Arduino. Yo en enero me compré directamente un Arduino Mega 2560 porque no quería tener ninguna limitación (me costó 40 euros en Cetronic). La verdad es que es un modelo que va muy sobrado para casi todo.
El siguiente paso sería instalarte el entorno de desarrollo Arduino en tu ordenador y realizar algunas prácticas.
Ignoro si ya has usado el soldador de estaño alguna vez para hacerte alguna plaquita con algún circuito electrónico.
No mencionas si tienes conocimientos de programación en lenguaje C o en algún otro lenguaje. Te lo pregunto para saber de donde partimos y de identificar obstáculos, pero la existencia de limitaciones de conocimientos técnicos solo supondrá un poquito más de trabajo por tu parte. Con ayuda todo se puede y me comprometo a ayudarte.
Hector Tugores
excelente blog, al igual que Oscar no e podido dejar de leer su blog es estupendo, soy técnico en Instalaciones eléctricas y curso la ingeniería en mecatronica por lo que comprenderá que estoy muy interesado en su idea ¨CAO¨ igual estoy comenzando con la acuariofilia y encuentro muy apunto los consejos y sugerencias que veo me gustaría mantenerme en contacto para poder poner en pie un poco del arte de tras de este magnifico hobbie.
saludos desde Mérida Yucatán México
Antonio Castro
Hector, me encanta tener contacto con los aficionados a la acuariofilia y estoy dedicando bastante esfuerzo al proyecto CAO. No estoy publicando ahora gran cosa porque estoy muy centrado en la parte del software y no tengo ahora una versión que considere suficientemente estable.
Respecto a la mecatrónica me gustaría poder autoconstruir un comedero automático. El principio de funcionamiento sería similar al del comedero de EHEIM 3581 pero sin la parte de programación digital ya que sería gobernado por arduino. Aún no he empezado con ello pero me he comprado un motor DC reductor 12V 3,7 RPM. en superRobotica.com
Daniel
Estimado Antonio, primero que todo, mis felicitaciones por la notable información que llevas compartiendo durante tanto tiempo, principalmente sobre la acuariofilia. He visto algunos de tus videos y ahora justamente me embarco en un proyecto para reproducir ramirezi. Justamente por tu video, he llegado a tu blog y leer sobre este proyecto (CAO), es todo un estímulo.
Espero seguir visitando tu blog y si en algún momento se puede, compartir información.
Mis cordiales saludos y reiterar mis felicitaciones.
Antonio Castro
El proyecto CAO es un proyecto ambicioso. Los obstáculos son varios pero sigue adelante. Te agradezco tu interés.
Alfonso
Hola, yo también he llegado a tu blog buscando información en Google sobre refrigeradores para acuario. Llevo 2 horas leyendo algo de diversos temas y he añadido tu blog a mi carpeta de ‘Muy Interesante’. Muchas gracias por compartir tus conocimientos.
Saludos desde Madrid 🙂
Fidel
Hola Antonio, muchas gracias por mostrarnos y enseñarnos tanto a los aficionados a la acuarofilia, me gustaria hacerte una pregunta sobre tu proyecto CAO1 el cual estoy probando ahora mismo, se que este post es muy antiguo pero de todos los proyectos con arduino para controlar un acuario el tuyo es el mas versatil y para mi mas util. He instalado el software y cambiafo las direcciones de las sondas ds18b20 para probarlas y al medir las temperaturas me da medidas diferentes a cada refresco, a veces de 5 o 6 grados de diferencia, obviamente he comprobado las sondas con un programa diferente de prueba que viene en la libreria de onewire y las medidas son correctas, despues he probado a cambiar las librerias de onewire por otras diferentes a las que trae el arduino Ide pero sigue igual, yo no tengo conocimientos de programacion por lo que para mi es imposible saber a que es debido el fallo, si me pudieras decir si a ti te paso esto en alguna de tus pruebas o a que podria ser debido el error te lo agradeceria mucho. Un saludo y si necesitas algun dato mas no dudes en pedirmelo.
Fidel
Hola Antonio, muchas gracias por el increible trabajo que realizas con este proyecto.
Me gustaria hacerte una pregunta sobre las sondas ds18b20, estoy haciendo pruebas con ellas y tu software CAO 1.2.1 y la lectura de la sonda es erratica, con valores diferentes de temperatura en cada refresco y en algunos casos de 4 o 5 grados de diferencia y al calentar la sonda el valor no se incrementa, he hecho pruebas con otros programas para la toma de lectura de temoeraturas para saber si lo que esta mal es la sonda y lis valores que me da son correctos, luego opte por descargar otras librerias onewire pero el resultado es el mismo, me gystaria saber si has tenido algun problema relacionado con este tema o si sabrias que podria estar haciendo algo mal.
Antonio Castro
Primero dame todos los detalles de hardware que puedas. ¿Es una sonda sumergible? Qué tipo de conexión usas normal o modo prásito (esta última no la recomiendo). Has mirado
septiembre 4, 2017
Fidel
de momento solo estoy haciendo pruebas por lo tanto la sonda es tan solo el chip soldado en una placa pcb, uso el modo de conexion normal y he descargado la libreria onewire 2.3.3 que es la ultima, ya he probado las anteriores pero el error de medida persiste. tengo un arduino mega por supuesto y las medidas con el programa de prueba de la libreria onewire son perfectas, se mantiene la medida de temperatura hasta que empiezo a calentar la sonda y baja al enfriarse. he probado con otras dos sondas y hacen lo mismo por eso me parece algo raro. hasta ayer usaba el ide de arduino 1.6 pero al surgirme este problema he actualizado al ultimo 1.8.4 aunque no he resuelto el problema.
Antonio Castro
Ignoro como lo hace la librería que usas y como la utilizas tú asi que te explico algunos detalles de bajo nivel que suelen estar en la raiz de muchos problemas de esta sonda.
En esta sonda la lectura de un dato consta de dos operaciones.
La primera operación prepara la sonda y sería algo del tipo
// ***********************************************************************************************
// Prepara la recogida de la temperatura de un sensor ubicado en una direccion del bus OneWire
// **********************************************************************************************
void PrevGetTempPos(int pos){
ds.reset();
ds.select(_addr[pos]);
ds.write(0x44,1); // Indica al dispositivo que tome lectura de la temperatura y la ubique en la EEPROM
}
La segunda operación es la lectura del resultado pero no puede hacerse inmediatamente sino que ha esperar unos 700 milisegundos a que finalice la preparación de la lectura que se supone que es la verdadera lectura y que finaliza guardando el resultado en la eeprom.
Por eso lo que yo hago al inicializar es preparar un las lecturas de todos los dispositivos conectados y luego cada vez que leo la temperatura lo que en realidad hago es leer el ultimo resultado y lanzar otra preparacion que dejará el resultado para la vez siguiente. Suelo leer la temperatura una vez por segundo y obtengo el dato con un segundo de retraso como mínimo pero ese retraso no importa para la mayoría de las aplicaciones donde la temperatura evoluciona lentamente.
// Obtener el dato de la temperatura
int GetTempPos(int pos){
byte data[12];
float tempRead;
float Temp;
byte present = ds.reset();
ds.select(_addr[pos]);
ds.write(0xBE); // Leer la EEPROM
for (int i = 0; i < 9; i++) { // Necesitamos leer 9 bytes data[i] = ds.read(); } ds.reset_search(); byte MSB = data[1]; byte LSB = data[0]; tempRead = ((MSB << 8) | LSB); Temp = tempRead / 16; PrevGetTempPos(pos); // Preparamos la siguiente lectura return (int) (Temp*10); }
Fidel
Entiendo el funcionamiento de la lectura de temperatura de las sondas porque es algo que explicas muy bien en tu libro lo cual es de agradecer lo que pasa es que tal vez como mis conocimientos de programacion pues al presentarse un problema la dificultad es demasiado grande,yo lo que he echo es instalar CAO1 y cambiar las direcciones de las sondas y la parte de
// ********************************************************
// Includes de librerías de proposito general de Arduino
// ********************************************************
#include
#include
#include
#include
#include
#include «CAO1_CONFIG.h»
#include «Cao1_DS18x20.h»
#include «Cao1_RTC.h»
#include «Cao1_Buzz.h»
#include «Cao1_DelayPlus.h»
#include «Cao1_Sensor.h»
#include «Cao1_Dimmer4Lz.h»
#include «Cao1_MathMisc.h»
#include «Cao1_FotoPeriod.h»
#include «Cao1_Parm.h»
#include «Cao1_Botonera5Puls.h»
#include «Cao1_DelayPlus.h»
#include «Cao1_Menu.h»
#include «Cao1_Menu_Princip.h»
#include «Cao1_Menu_Parm.h»
#include «Cao1_Menu_DailySchDO.h»
#include «Cao1_Menu_Fotoperiodo.h»
#include «Cao1_Menu_CalibraPh.h»
#include «Cao1_Misc.h»
#include «Cao1_Lcd20x4.h»
#include «Cao1_FrecPWM.h»
#include «Cao1_SerialFmt.h»
#include «Cao1_DailySchDO.h»
#include «Cao1_LinealSensor.h»
supuse que son las librerias que trae el arduino ide al instalarlo por eso que puede que el problema sea que tengo que instalar algo mas, no se si me explico. Muchas gracias por tu tiempo, seguire trasteando con el programa y si por algun casual tubieras alguna idea se agradece toda tu ayuda. Gracias por compartir todo lo que sabes sobre arduino y acuarofilia con nosotros, me encantan tus videos.
Raul Nasi
Hola Antonio, estoy en Argentina, acabo de leer tus comentarios sobre los venenos en frutas y verduras. Estoy haciendo algunos estudios aqui a titulo personal, me confirman que algunas frutas las fumigan hasta 7 veces y he comprobado en mi la afectacion de comer frutas con piel. Me gustaria poder consultarte