Vamos a perfilar las funcionalidades de la primera versión de nuestro Controlador de Acuario por Ordenador, CAO V1.0.
De momento el ritmo de trabajo en este proyecto viene condicionado por el hecho de que lo arranco en solitario y no es ni el único proyecto que tengo en marcha.
Esta primera versión de CAO será capaz de controlar unos pocos susbsistemas mecánicos, eléctricos y electrónicos de un acuario tradicional. Concretamente nos centraremos en la iluminación y la calefacción. Será un diseño sencillo y dejaremos para futuras versiones retos como por ejemplo: cambios parciales de agua, vigilancia por vídeo, etc.
Características del ordenador central para CAO v1.0:
- Conexión a Internet.
- Acceso remoto por interfaz web a la aplicación CAO para el control del acuario.
- Acceso remoto para actualización del software y adminstración del sistema vía SSH.
- Acceso local mediante teclado y ratón inalábrico por USB.
- Reloj que se ponga en hora al encender el sistema.
- Posibilidad de conectar un monitor por HDMI.
- Posibilidad de enviar Alarmas a un móvil.
Todo lo anterior puede conseguirse mediante algo de programación en un sistema Rasperberry pi como el que ya hemos comentado. Este proyecto se desarrollará de forma incremental. Es decir, tenemos que ir implementado las funciones que consideramos interesantes poco a poco y sin tomar decisiones que limiten la funcionalidad de las versiones siguientes.
Los módulos Raspberry Pi y Arduino se comunicarán mediante USB y mediante los puertos de entradas/salidas GPIO que ambas unidades tienen.
Diseñaremos protocolos de comunicación entre ambos, una interfaz web de usuario, un sistema de registro automático de bitácoras de actividad del sistema, mensagería de alarma.
Cuidaremos el tema de la seguridad de funcionamiento de todo el sistema. Arduino debería poder seguir funcionando con un modo seguro y autónomo (antipánico) sin la supervisión del módulo Raspberry Pi en previsión de un posible cuelgue. Un Linux bien configurado no es especialmente susceptible a los cuelgues. GNU/Linux es utilizado por el 78% de los principales 500 servidores del mundo.
El motivo más habitual para que suceda un cuelgue sería un fallo de programación en la parte que nosotros hagamos o un fallo en algún controlador del propio sistema operativo, etc. También podría colgarse por culpa de algún ataque. Aunque el servidor Web que implementemos tendrá un uso privado y muy restringido desde Internet, no será posible garantizar totalmente la invulnerabilidad frente a los ataques. En previsión de este tipo de fallos, Arduino tomará la responsabilidad de verificar que el módulo Raspberrry Pi funciona. Una forma de chequear si el Raspberry Pi se ha quedado colgado, sería mediante un dialogo de chequeo entre esta unidad y Arduino a través de GPIO.
El objetivo de esta primera versión de CAO será sentar las bases para un sistema completo y versátil.
Otras características del hardware:
Además de los módulos de Raspberry + Arduino del diseño básico necesitaremos algunos componentes más para CAO v1.0. Concretamente necesitaremos una placa con cuatro Relés.
Las características de voltaje y amperaje de los relés son importantes para poder determinar su uso. Necesitamos reles para 220voltios que admitan potencia suficiente para conmutar la iluminación, el termo calentador, etc.
También necesitaremos de un sensor de temperatura sumergible.
La sencillez de CAO v1.0 nos permitirá centrarnos en la implementación de una cantidad importante de software que sería de uso común para la funcionalidad general de todo el sistema CAO.
Funcionalidad de CAO v1.0:
- El sistema debe contemplar un sistema de entradas y salidas flexible para actuar sobre una amplia gama de dispositivos eléctricos, electrónicos, y electromecánicos, tales como sensores, motores, relés, etc.
- El sistema se ocupará del mantenimiento de seres vivos por lo cual se requiere un alto nivel de seguridad.
- Existirán como mínimo dos niveles de alerta. 1) Simple aviso. 2) Alarma que exige una respuesta del usuario en un plazo de tiempo razonable antes de entrar en modo antipánico.
- El propio sistema efectuará tests de chequeo sobre su funcionamiento para detectar problemas tales como caída del acceso a Internet, caída del servidor, avería de otros elementos, etc.
- El sistema debería tener un programa de control básico llamado antipánico que entraría en un modo seguro de funcionamiento ante la detección de un alto nivel de alerta importante que no fuera atendido en el plazo requerido.
- Usará un sistema de 4 reles (Vease foto: Relay Shield) para controlar 5 circuitos. Uno de los relés se usará para dos circuitos antagónicos.
- Controlará tres circuitos de luces (Nocturna, Diurna y Crepuscular) usando solo dos reles. La luz nocturna se encenrá al apagarse la luz crepuscular. El fotoperiodo se adaptará a la latitud que se indique y establecerá 3 fotoperiodos día/noche para las cuatro estaciones del año. El fotoperiodo en primavera y en otoño será el mismo, hará uso del calendario y el reloj del sistema, y podrá ser parametrizado por el usuario con datos de latitud, momento del zenit, duración de las estaciones, etc.
- Medirá la temperatura y controlará un circuito de termocalentadores. Se podrá establecer temperaturas un régimen de temperaturas diurnas, y otro de temperaturas nocturnas, así como variaciones estacionales de las mismas.
- Tendrá un indicador luminoso y acústico de alarma.
Las funcionalidades que podrían implementarse en futuras versiones serían:
- Indicaciones de: Temperatura, PH, nivel de agua, hora y día, conductividad, flujo del filtro, y visualización de las últimas condiciones de alarma registradas indicando naturaleza, día y hora.
- Acceso a acciónes manuales putuales, tales como dar de comer a los peces, parar/encender filtros, puesta en hora, apagar/encender luces. Paso al modo de funcionamiento seguro sin ordenador.
- Generación de avisos de alarmas por condiciones preestablecidas: de temperatura, nivel de agua, pérdida de potencia del flujo en el filtro, nivel de PH, corte de suministro eléctrico, etc. y generación de un aviso al movil.
- Control de iluminación: Iluminación diurna progresiva, Iluminación nocturna, simulación de fases lunares, control estacional del fotoperiodo. Todo ello coordinado por el reloj y el calendario del sistema.
- Acceso a stream de video de vigilancia, generación y archivo de las últimas comidas de los peces.
- Acceso a la bitácora del sistema (caja negra) donde todas las acciones quedan registradas.
- Avisos de vencimiento de fechas de mantenimiento.
- Temperatura diurna, temperatura nocturna, refrigeración en verano, variación de temperatura estacional.
- Cambio parcial de agua automático y con una programación periódica.
- Control de alimentación automática y manual.
- Control de oleaje para acuarios marinos.
- Simulación de mareas para acuarios marinos.
- Control de PH mediante suministro de CO2
- Control de dosificación de aditivos.
- Control del comedero.
- Control de flujo del filtro.
Un caso hipotético de lo que podría lograrse de un acuario inteligente:
Imagina que estás en la playa leyendo el libro de Blénidos del mediterráneo de José María Cid cuando recibes un aviso en to Smartphone. «Atención se produjo un corte de luz desde las 13:05 a las 13:25 El sistema rearrancó normalmente.» Verificas la temperatura, compruebas que el equipo después de rearrancar ha cogido la hora y fecha correcta, así como y otros parámetros. Accedes a la webcam que te muestra en directo que todo parece normal. Verificas el nivel de agua. Decides administrar una toma extra de comida para poder observar como comen tus peces y si todos muestran un apetito y un comportamiento normal. Activas el aireador de emergencia. Consultas la bitácora del sistema para ver como se comportó el equipo. Por último una vez que todo está a tu gusto cortas la comunicación en tu Smartphone y continuas con la lectura de tu libro a cientos de kilómetros de tu acuario.
isidoro
y de donde se puede bajar una esa maravilla de programa para provarlo
ya que parece que promete CAO v1.0
Antonio Castro
Los capítulos de este proyecto está numerados. El último publicado CAO-5 contiene un vídeo y el código fuente para un primer prototipo: Cao-05-prototipo-01
Se trata de diseñar un controlado de acuarios por ordenador. Es decir, aun no hay nada utilizable para el acuario. Estoy trabajando en ello y documentado todo el proceso de diseño.