Controlador automático de acuarios

Hardware:

Software:

Downloads:

Enlaces:

Google

Controlador automático de acuarios

Con este montaje pretendemos automatizar todos los elementos instalados en el acuario a modo de acuario domótico. Conseguiremos ahorrarnos algo de trabajo en el mantenimiento del tanque y además tendremos un "vecino virtual" que nos lo cuide en vacaciones.

El conjunto consta principalmente de una serie de módulos que monitorizan los diferentes parámetros del acuario (temperatura, Ph, etc...) y de un módulo de control que es el encargado de tomar las decisiones oportunas para el mantenimiento de las condiciones óptimas. Además tenemos un módulo de configuración e información que, como su nombre indica, permite tanto variar las condiciones del tanque como obtener información actualizada de éste.

En la figura anterior podemos ver como se interconectan los diferentes módulos con el controlador principal y la conexión desde el exterior con un navegador WEB o con una conexión serie RS232. Aunque en un primer momento se consideró diseñar los diferentes módulos de forma separada (con su propio microcontrolador), la capacidad del PIC16F874A nos da la posibilidad de controlarlo todo con un solo microcontrolador. Los módulos desarrollados son los siguientes:

Módulo de control

El módulo de control es el encargado de obtener datos de todos los sensores del sistema y de manejar los actuadores que mantienen el acuario en su estado óptimo.

El encargado de todo esto es un microcontrolador, en concreto el PIC16F874A de Microchip. Es un microcontrolador RISC con 35 instrucciones diferentes que se ejecutan en cuatro ciclos de reloj, puede funcionar hasta a 20Mhz y tiene 4096 posiciones de memoria de 14 bits para el programa, 192 bytes de ram y 128 bytes de memoria EEPROM para poder guardar datos permanentemente. Tiene treinta y tres pines programables como entradas o salidas independientes, dos cronómetros/alarmas de 8 bits o uno de 16, puerto serie (USART) y ocho convertidores A/D de diez bits.

En la página de Microchip tenemos modelos más pequeños como el PIC12C509 de solo 8 pines y otros más grandes y con más prestaciones como el PIC18F8722 con 128 Kbytes de memoria, 54 pines programables, convertidores A/D, USART. etc. Prácticamente todos los microcontroladores PIC son compatibles entre sí y podríamos poner cualquiera de ellos con solo "recablear" los pines del integrado.

Para comunicarnos con el PIC16F874A utilizaremos el puerto serie USART integrado en él. Como los niveles del microcontrolador son TTL (0 y 5V para el "0" y el "1" respectivamente) utilizaremos un adaptador de señal para convertirlos a niveles RS232 (12 para el "0" y -12V para el "1"). El adaptador elegido es el MAX233A de dallas/maxim. Este integrado es capaz de manejar dos canales de comunicación y no necesita ningún componente externo.

Módulo controlador de temperatura

Éste módulo contiene tanto los sensores de temperatura como los actuadores que manejan los calefactores. Consiste en una serie de sensores de temperatura DS18S20 de dallas/maxim y los relés que actuarán sobre los calefactores del acuario.

El DS18S20 es un termómetro digital de 9 bits que se conecta a través de un bus 1-wire. Tiene una precisión de ±0.5°C en el rango de -10°C a +85°C y cada uno de ellos dispone de un identificador único de 64 bits, lo que permite que puedan coexistir varios sensores en un único bus 1-wire. El bus 1-wire puede ser de hasta 100 metros de largo por lo que la colocación de los sensores respecto del módulo no debería ser un problema.

El DS18S20 es un integrado con forma de transistor, tiene tres pines de los cuales dos sirven de alimentación (GND y Vdd) y el otro (DQ) es el que se conecta al bus. Este sensor puede funcionar también sin alimentación, con lo que se conoce como alimentación parásita. En este modo de funcionamiento la alimentación la saca directamente de la linea DQ por lo que solo se necesitan dos cables (DQ y GND).

Para proteger el sensor del agua lo montaremos dentro de una ampolla de vidrio o plástico rellena de silicona. Es importate que no entre humedad en el sensor para que no haya posibilidad de cortocircuito o de que se oxiden los pines.

El bus 1-wire es capaz de manejar varios dispositivos conectados a él por lo que con un bus es suficiente, este bus lo manejaremos por el pin RA4. Por el conector 1-wire concectaremos los sensores de temperatura DS18S20 y podemos colocar tantos como queramos repartidos por el acuario, en nuestro caso pondremos uno en el recipiente del sifón y otro en el filtro biológico.

Para controlar la temperatura utilizaremos dos calefactores típicos de acuario conectados a T1 que se activarán cuando la temperatura del acuario baje del nivel preestablecido. Estos calefactores disponen de un termostato que los enciende y apaga cuando es necesario, pero como el control de temperatura lo realizaremos nosotros, configuraremos los calefactores a una temperatura un poco mayor de la que necesitemos para que en caso de mal funcionamiento del controlador no suba la temperatura excesivamente. El hecho de usar dos calefactores nos asegura que la temperatura del tanque sea la óptima aún en el caso de que uno de ellos deje de funcionar.

Habitualmente nunca necesitamos enfriar el agua ya que la temperatura ambiente suele ser menor que la necesaria para el acuario, si necesitaramos manejar un enfriador lo conectaríamos a la borna marcada como T2 que se acciona cuando la temperatura supera el nivel configurado. Debemos tener en cuenta que cuantos mas calefactores/enfriadores conectemos al relé más potencia necesita soportar por lo que tendremos que instalar uno adecuado a nuestras necesidades o conectar varios en paralelo.

Módulo controlador de pH

Este módulo se encargará de obtener el pH del agua y de manejar los actuadores de control. El montaje está basado (mas bien copiado) en el medidor de pH para acuarios de José Manuel García, en su página podrás encontrar una explicación detallada del circuito y otras muchas cosas interesantes.

A grandes rasgos diremos que la salida del circuito nos da una tension de 0 a 999mV que corresponden a un pH de entre 0 y 9.99. Esta salida la conectaremos directamente a uno de los conversores A/D del PIC16F874A. En un principio únicamente usaremos un sensor y en caso de necesitar otro más tendremos que duplicar el circuito anterior.

Usaremos una sonda de pH estándar que suministra una tensión inversamente proporcional al pH del agua. Esta sonda proporciona 0V con pH neutro (ph 7) y varía aproximadamente 60mV por grado de pH. En la siguiente imagen tenemos una gráfica con el comportamiento de una sonda de este tipo.

Los sensores de pH se conectan al PIC16F874A por las entradas análogicas de los pines RA1, RA2 y RA3. Colocaremos uno en el recipiente del sifón y ahorraremos espacio en el acuario. Con uno es suficiente porque el pH cambia muy lentamente y la circulación de agua es lo suficientemente rápida para que sea uniforme en todo el sistema. Además son bastante caros (alrededor de 60 euros).

Al igual que en el caso de la temperatura, tenemos dos conectores para el control del pH: PH1 y PH2. PH1 se activa cuando el nivel de pH del acuario baja del nivel configurado y PH2 cuando se eleva por encima del nivel máximo.

Módulo controlador del nivel del agua

La forma más sencilla de controlar el nivel de agua del acuario es por medio de una boya instalada en su interior. Esta boya accionará unos contactos que nos indicarán que el agua está por encima o por debajo de un determinado nivel. Este método es completamente válido pero hemos previsto que en un futuro podamos conectar un sensor de nivel que nos indique exactamente la cantidad de agua del acuario, las entradas del PIC16F874A a las que conectaremos los sensores son conversores A/D por lo que simplemente con un sensor que nos proporcione una salida proporcional al nivel de agua tendremos un control mucho más preciso.

Necesitaremos controlar el nivel de agua en varios puntos del sistema: en el acuario, en el filtro, en el depósito de agua osmotizada y en el depósito de cambio de agua. En el caso del acuario es necesario saber si el agua baja de determinado nivel para añadirle más, en el filtro biológico es necesario para asegurarnos de que la bomba no trabaja en vacío. Los otros dos sensores se encargan de controlar que no se acabe el agua del depósito de llenado y de que no se llene el depósito de desagüe.

Disponemos de dos actuadores para controlar el nivel de agua, uno para introducir agua en el acuario y otro para sacarla. Con esto podemos mantener constante el nivel de agua del acuario simplemente añadiendo un poco cuando baje el nivel. Además podremos hacer los cambios periódicos de agua automáticamente siempre que dispongamos de un desagüe y de un depósito de agua osmotizada.

Módulo controlador de la iluminación

El control de la iluminación consiste básicamente en encender y apagar las luces a unas horas determinadas. Con este montaje podemos hacer algo mas complicado y manejar varias luces, por ejemplo unos tubos haciendo de luz solar y una pequeña bombilla a modo de luna. Además, con la posibilidad de conectar un ordenador por el puerto serie al controlador, podemos hacer ciclos de varias luces, por ejemplo podriamos emular las horas de luz y la fase de la luna con la fecha actual, simular dias nublados encendiendo menos luces, etc.

Para poder controlar varias luces tenemos cuatro conectores diferentes: L1, L2, L3 y L4.

Módulo de alimentación

Para automatizar la alimentación de los peces hemos previsto varios actuadores con el fin de poder accionar diferentes alimentadores automáticos. Este módulo consiste en uno o varios depósitos de comida colocados encima del acuario con un dispensador que proporciona la dosis adecuada. Los conectores C1 y C2 accionan los dispensadores.

Módulo de oleaje

Este módulo es el encargado de simular oleaje en el acuario. El oleaje se consigue activando unas bombas distribuidas por el acuario de forma ordenada.

Montaje del sistema

Montaremos cinco placas diferentes: dos de alimentación (una para el controlador y otra para la sonda de pH), otra con el circuito acondicionador de señal para la sonda de pH, la placa con el PIC16F874A y por último la placa de relés. La placa con el LCD y las seis teclas es opcional si tenemos conectado un ordenador al controlador.

Lo primero que haremos será el circuito que proporcionará la alimentación necesaria para el resto de placas. Suministra +5V por el conector cuatro para alimentar el PIC16F874A, los dos ULN2801A, el MAX233A, los relés y el LCD. Además podremos conectar por el conector correspondiente una batería recargable (1.5V x 4 = 6V) que nos proporcionará la tensión de alimentación en caso de fallo de suministro eléctrico. Esta placa la tendremos que alimentar con 18V AC. A continuación tenemos el listado de componentes de esta placa:


Fuente de alimentación
Componente Descripción Valor
U1 Puente rectificador
U2 Estabilizador de tensión +12V LM7812
R1 Resistencia limitadora para la batería recargable 33Ω
R2 Resistencia de carga para el led indicador de alimentación 560Ω
C1 Condensador estabilizador del regulador 0.33µF
C2 Condensador estabilizador del regulador 0.1µF
D1 Diodo rectificador 1N4007
D2 Diodo led indicador de alimentación Rojo de 5mm
D3 Diodo zener 5.1V 1W

Para alimentar el acondicionador de señal de la sonda de pH necesitamos tres voltajes: dos de +5V y uno de -5V Es importante que la alimentación del circuito acondicionador esté separada de la de alimentación de componentes para evitar interferencias. José Manuel García explica todo esto en su página del medidor de pH para acuarios. El potenciómetro P1 nos servirá para ajustar la tensión de salida a +5V exactos (la placa es exactamente igual a la de José Manuel y podríamos eliminar la placa de alimentación anterior ya que ésta también proporciona los +5V necesarios para elimentar los elementos). Los componentes necesarios los tenemos en la tabla siguiente:


Fuente de alimentación del módulo sensor de pH
Componente Descripción Valor
U1 Regulador de tensión ajustable l200
U2 Estabilizador de tensión +5V LM7805
U3 Estabilizador de tensión -5V LM7905
R1 Resistencia de ajuste de tensión 0.33Ω
R2 Resistencia de ajuste de tensión 820Ω
R3 Resistencia de ajuste de tensión 330Ω
R4-R6 Resistencias de carga para los leds indicadores de alimentación 560Ω
C1 Condensador de filtrado 4700µF
C2 Condensador de filtrado 220nF
C3 Condensador de filtrado 1µF
C4-C6 Condensadores de filtrado 1000µF
C7,C8 Condensadores de filtrado 220nF
C9,C10 Condensadores de filtrado 1µF
C11,C12 Condensadores de filtrado 10µF
D1-D3 Diodos rectificadores 1N4007
D4-D6 Diodos led indicadores de funcionamiento Rojos de 5mm
P1 Potenciómetro multivuelta 470Ω

Una vez montadas la placas de alimentación montaremos el módulo de control donde tenemos el PIC16F874A que es el encargado de la adquisición de datos de todos sensores de temperatura y de activar y desactivar los actuadores. El pulsador S1 provoca el reset hardware del PIC16F874A. RC7 es el pin de recepción de datos por el puerto serie y RC6 es el de transmisión, además tenemos la posibilidad de conectar un LCD de cuatro lineas y veinte caracteres por linea por los pines RA0, RB2, RB3, RB4, RB5, RB6 y RB7. Este LCD mostrará información del sistema en todo momento, aunque no es necesario para el funcionamiento del controlador. Además de controlar el LCD, en los pines RA0, RB2, RB3, RB4, RB5 y RB7 conectaremos seis teclas para poder navegar por el menú. De esta forma implementaremos un terminal que nos permitirá programar el controlador sin necesidad de conectarlo a un ordenador.

Con el LM336 podremos ajustar la tensión de referencia del conversor A/D. Deberemos ajustar el potenciómetro P3 para que la tensión entre el pin RA3 y masa (sin tener conectado el PIC16F874A) sea de 2.56V. Con esto y el conversor A/D configurado en 8 bits nos dará un cambio cada 10mV.

Para poder accionar los actuadores usaremos dos integrados ULN2801A. Constan de ocho drivers de 0.5A cada uno y los usaremos para suministrar la corriente necesaria a los relés ya que el PIC16F874A no es capaz de suministrar tanta corriente por los pines de salida. En cada uno de los drivers conectaremos un relé que será el que realmente active y desactive los actuadores. Los relés los tendremos en una placa diferente ya que necesitamos tener 220V en el circuito para activar los elementos de control.

En las siguiente tabla tenemos los componentes necesarios para la construcción tanto de la placa de control como de la placa del terminal:


Módulo de control
Componente Descripción Valor
U1 Microcontrolador PIC16F874A
U2 Acondicionador de señal MAX233A
U3 Generador de tensión de referencia ajustable LM336
U4,U5 Drivers para los actuadores ULN2801A
R1 Resistencia de carga para el reset hardware. 10kΩ
R2 Resistencia de carga para el regulador. 2K5
R3 Resistencia de pull-up para el bus 1-Wire. 4K7
R4-R21 Resistencias de carga para los leds indicadores de actividad 560Ω
C1,C2 Condensadores estabilizadores del reloj 15-33pF
D1,D2 Diodos de señal 1N4148
D3-D6 Diodos led indicadores de actuación en iluminación Rojos de 3mm
D7,D8 Diodos led indicadores de actuación en temperatura Rojos de 3mm
D9,D10 Diodos led indicadores de actuación en pH Rojos de 3mm
D11,D12 Diodos led indicadores de actuación en Nivel Rojos de 3mm
D13-D16 Diodos led indicadores de actividad de las bombas de oleaje. Rojos de 3mm
D17,D18 Diodos led indicadores de actuación en alimentación Rojos de 3mm
D19,D20 Diodos led indicadores de comunicación serie (Tx,Rx) Rojos de 3mm
D21-D26 Diodos de señal 1N4007
XT1 Cristal 4Mhz
P1 Potenciómetro multivuelta para ajustar la tension de referencia 10KΩ
P2 Control de contraste del LCD 10KΩ
P3 Control de iluminación del LCD 10Ω
LCD LCD de 2x16HD44780U
SW1 Pulsador de reset hardware
SW2-SW7 Teclado del terminal

El circuito acondicionador de señal lo tendremos montado en una placa diferente para poder aislarlo de cualquier interferencia tal y como explica José Manuel García en su página. Los componentes necesarios para esta placa los tenemos a continuación:


Acondiciondor de señal del sensor de pH
Componente Descripción Valor
U1 Amplificador operacional de entrada JFET LF356M
U2 Amplificador operacional de entrada JFET TL084
R1 150KΩ
R2 10KΩ
R3 4K7
R4-R7 22KΩ
R8,R9 100KΩ
R10 15KΩ
R11 1K5
C1 150pF
C2 3.3pF
C3 5.6pF
C4,C5 220nF
P1 Potenciómetro de ajuste pH=7.0 10KΩ
P2 Potenciómetro de ajuste pH=4.0 2KΩ

Configuración y funcionamiento del controlador

Para poner en marcha el controlador únicamente tendremos que conectarlo a un transformador que nos proporcione entre 18 y 24 voltios de corriente alterna. Una vez puesto en marcha tendremos una pantalla con la hora actual en la primera linea y con las medidas correspondientes a la temperatura y al pH en la segunda. Estas medidas son la media de todas las lecturas proporcionadas por los sensores que tengamos conectados al sistema. La hora estará inicializada a las 00:00:00 por lo que deberemos ajustarla a la hora actual. Las dos lineas inferiores sirven para mostrar las diferentes acciones que va realizando el controlador: encender y apagar luces, activar cebadores, mostrar las alarmas de temperatura y pH, etc.

Pulsando la tecla MENU en el teclado del terminal aparecerá la pantalla de la izquierda. En el menú nos podremos mover entre las diferentes opciones con las teclas de ARRIBA y ABAJO. Para seleccionar una opción pulsaremos la tecla DERECHA y para salir del menú la tecla IZQUIERDA. El menú de ajustes sirve para configurar todos los parámetros del controlador. Podremos poner la hora actual, introducir la temperatura y el pH deseados, etc. El menú de acciones nos sirve para activar o desactivar alguno de los elementos puntualmente.

Para ajustar la hora del reloj pulsaremos la tecla menú, seleccionaremos la entrada Hora posicionando el cursor sobre ella y pulsando la tecla DERECHA. Nos aparecerá entonces una pantalla como la que tenemos a la derecha. En ella nos podremos mover entre la hora, minutos y segundos con las teclas de DERECHA e IZQUIERDA, para aumentar o disminuir el valor usaremos las teclas de ARRIBA y ABAJO. Una vez tengamos la hora ajustada pulsaremos la tecla IZQUIERDA hasta salir al menú principal.

El menú de ajuste de temperatura nos permite introducir en el controlador la temperatura deseada en nuestro acuario. Seleccionaremos la opción temperatura del menú principal y pulsaremos la tecla DERECHA. Tendremos una pantalla en la que podremos variar la temperatura mínima y máxima del acuario en pasos de 0.5°C. Con las teclas DERECHA e IZQUIERDA seleccionaremos la temperatura máxima o mínima y con ARRIBA y ABAJO iremos variándola hasta el valor óptimo deseado. Para salir pulsaremos la tecla IZQUIERDA.

Con este menú podemos variar el nivel de pH necesario para el acuario. El procedimiento para cambiar los valores de pH es idéntico al del menú de ajuste de temperaturas. Seleccionaremos la opción pH del menú principal y pulsaremos la tecla DERECHA. Tendremos una pantalla en la que podremos variar el pH mínimo y máximo del acuario en pasos de 0.1. Con las teclas DERECHA e IZQUIERDA seleccionaremos el pH máximo o mínimo y con ARRIBA y ABAJO iremos variándola hasta el valor óptimo deseado. Para salir pulsaremos la tecla IZQUIERDA.

Para controlar la iluminación del acuario disponemos de cuatro controles para luces, éstos los configuraremos con el menú iluminacion. Una vez tengamos seleccionado el submenú de control de luces podremos variar las horas de encendido y apagado de las cuatro luces moviéndonos arriba y abajo para seleccionar L1, L2, L3 o L4. Una vez seleccionada la luz que queremos configurar pulsaremos la tecla DERECHA hasta posicionarnos en el valor a modificar. Con las teclas ARRIBA y ABAJO modificaremos este valor y saldremos pulsando IZQUIERDA hasta salir a la seleccion de luz.

La primera hora del menú es la hora de encendido y la segunda la de apagado. En la pantalla de la derecha tenemos que la luz número uno se enciende a las 8:30 y se apaga a las 22:00, la luz dos se enciende a las 8:40 (un poco más tarde que la primera) y se apaga a las 21:50 (un poco antes que la anterior) y la luz tres se enciende por la noche de 21:00 a 9:00 simulando la luna. La luz cuatro aparece debajo de la luz tres en el menú y para que no haga nada debe estar configurada como hora de encendido las 00:00 y hora de apagado las 00:00.

El control de la alimentación es muy similar al de la iluminación solo que en este caso tenemos únicamente dos controles. En cada uno de éstos podemos programar dos horas de cebado. La hora 00:00 es especial y la usaremos para indicar que no hay cebado. En el ejemplo de la derecha podemos ver que el cebador uno se activa dos veces al dia, una a las 9:00 y otra a las 21:00, el cebador dos se activa una vez al dia a las 13:00. Para configurar las horas usaremos las teclas ARRIBA y ABAJO para seleccionar el cebador y una vez seleccionado con DERECHA e IZQUIERDA nos movemos por las horas y con ARRIBA y ABAJO las modificamos. Para salir de la selección usaremos la tecla IZQUIERDA.

Con este menú configuraremos todo lo relacionado a la generación de olas en el acuario. Podemos configurar tres periodos de oleaje (O1, O2 y O3) con hora de comienzo y hora de finalización y además podemos configurar la frecuencia de las olas para cada uno de ellos. En la pantalla de ejemplo tenemos configurados los tres periodos, el primero de 8:00 a 13:00 con una frecuencia de un segundo, es decir, las bombas se activan alternativamente cada segundo, el segundo perioido es de 13:00 a 22:00 con un periodo de tres segundos, lo que quiere decir que las olas son más suaves. El último periodo comprende toda la noche de 22:00 a 8:00 con un periodo de diez segundos. Al igual que en el resto de configuraciones, la configuracion de inicio 00:00 y de finalización 00:00 indica que no hay acción.

Una vez lo tengamos todo configurado tendremos que volver a la pantalla inicial en la que tenemos la hora, la temperatura y el pH. Como hemos visto anteriormente, las dos lineas de abajo están libres y las usaremos para mostrar información de todas las acciones que va tomando el controlador. A la izquierda vemos que el controlador encendió la luz dos a las 08:40 (la linea de activacion del oleaje a las 08:00 y de la luz uno a las 08:30 desaparecen) y que activó el cebador uno a las 09:00. Conforme pase el tiempo el controlador irá poniendo en la linea de abajo la última acción que se ha realizado.

Protocolo de comunicaciones RS232

El módulo de control estará continuamente obteniendo lecturas de temperatura, de pH y de nivel de agua de los sensores, esperando órdenes del módulo principal y accionando los actuadores necesarios en cada momento.

El puerto RS232 deberá estar configurado a 9600 8N1.

Todas las ordenes comienzan con STX (0x02) y acaban con ETX (0x03). Las órdenes aceptadas son las de la tabla siguiente:

Comando Respuesta Descripción
Reboot STX 0x00 ETX STX 0x00 ETX Reinicia el módulo.
Status STX 0x01 ETX STX estado ETX Indica el estado del controlador (ver tabla de estados).
SetTime STX 0x02 HHMMSS ETX STX estado ETX Programa el módulo con la hora indicada.
GetTime STX 0x03 ETX STX HHMMSS ETX Pregunta al módulo la hora actual.
GetTemperatureAll STX 0x10 ETX STX S1 S2 S3 ... ETX Pregunta al módulo las lecturas de temperatura de todos los sensores que tiene conectados.
GetTemperature STX 0x11 n ETX STX Sn ETX Pregunta al módulo la lectura de temperatura del sensor n.
ResetTemperatureAll STX 0x12 ETX STX OK ETX Inicializa todos los sensores de temperatura.
ResetTemperature STX 0x13 n ETX STX OK ETX Inicializa el sensor n.
SetTemperatureAllPeriod STX 0x14 periodo ETX STX estado ETX Programa el módulo para tomar las temperaturas de todos lo sensores con el periodo especificado.
SetTemperaturePeriod STX 0x15 n periodo ETX STX estado ETX Programa el módulo para tomar las temperaturas del sensor n con el periodo especificado.
SetMaxTemperature STX 0x16 max ETX STX estado ETX Programa el límite superior de temperatura para el acuario (en °C).
SetMinTemperature STX 0x17 min ETX STX estado ETX Programa el límite inferior de temperatura para el acuario (en °C).
GetPhAll STX 0x20 ETX STX S1 S2 S3 ... ETX Pregunta al módulo las lecturas de pH de todos los sensores que tiene conectados.
GetPh STX 0x21 n ETX STX Sn ETX Pregunta al módulo la lectura de pH del sensor n.
ResetPhAll STX 0x22 ETX STX OK ETX Inicializa todos los sensores de pH.
ResetPh STX 0x23 n ETX STX OK ETX Inicializa el sensor n.
SetPhAllPeriod STX 0x24 periodo ETX STX estado ETX Programa el módulo para tomar el pH de todos lo sensores con el periodo especificado.
SetPhPeriod STX 0x25 n periodo ETX STX estado ETX Programa el módulo para tomar el pH del sensor n con el periodo especificado.
SetMaxPh STX 0x26 max ETX STX estado ETX Programa el límite superior de pH para el acuario.
SetMinPh STX 0x27 min ETX STX estado ETX Programa el límite inferior de pH para el acuario.
GetWaterLevelAll STX 0x30 ETX STX S1 S2 S3 ... ETX Pregunta al módulo las lecturas de nivel de agua de todos los sensores que tiene conectados.
GetWaterLevel STX 0x31 n ETX STX Sn ETX Pregunta al módulo la lectura de nivel de agua del sensor n.
ResetWaterLevelAll STX 0x32 ETX STX OK ETX Inicializa todos los sensores de nivel.
ResetWaterLevel STX 0x33 n ETX STX OK ETX Inicializa el sensor n.
SetWaterLevelAllPeriod STX 0x34 periodo ETX STX estado ETX Programa el módulo para tomar el nivel de agua de todos lo sensores con el periodo especificado.
SetWaterLevelPeriod STX 0x35 n periodo ETX STX estado ETX Programa el módulo para tomar el nivel de agua del sensor n con el periodo especificado.
GetLightAll STX 0x40 ETX STX S1 S2 S3 ... ETX Pregunta al módulo el estado de todas las luces que tiene conectadas.
GetLight STX 0x41 n ETX STX Sn ETX Pregunta al módulo el estado de la luz n.
SetLightAllOn STX 0x42 brillo ETX STX estado ETX Enciende todas las luces con el nivel de brillo especificado.
SetLightAllOff STX 0x43 ETX STX estado ETX Apaga todas la luces.
SetLightOn STX 0x44 brillo n ETX STX estado ETX Enciende la luz n con el nivel de brillo especificado.
SetLightOff STX 0x45 n ETX STX estado ETX Apaga la luz n.
SetLightTimeAllOn STX 0x42 hora ETX STX estado ETX Programa el módulo para encender todas las luces a la hora indicada.
SetLightTimeAllOff STX 0x43 hora ETX STX estado ETX Programa el módulo para apagar todas las luces a la hora indicada.
SetLightTimeOn STX 0x44 n hora ETX STX estado ETX Programa el módulo para encender la luz n a la hora indicada.
SetLightTimeOff STX 0x45 n hora ETX STX estado ETX Programa el módulo para apagar la luz n a la hora indicada.
SetFeedingAll STX 0x50 m hora ETX STX estado ETX Programa la hora de cebado m de los peces de todos los módulos.
SetFeeding STX 0x51 m n hora ETX STX estado ETX Programa la hora de cebado m de los peces en el módulo n.
GetWavesAll STX 0x40 ETX STX S1 S2 S3 ... ETX Pregunta al módulo el estado de las bombas generadoras de olas.
GetWaves STX 0x41 n ETX STX Sn ETX Pregunta al módulo el estado de la bomba n.
SetWavesAllOn STX 0x42 ETX STX estado ETX Conecta todas las bombas.
SetWavesAllOff STX 0x43 ETX STX estado ETX Desconecta todas las bombas.
SetWavesOn STX 0x44 n ETX STX estado ETX Conecta la bomba n.
SetWavesOff STX 0x45 n ETX STX estado ETX Desconecta la bomba n.
SetWavesPeriodAll STX 0x42 periodo ETX STX estado ETX Programa el módulo para conectar todas las bombas con el periodo indicado (en segundos).
SetWavesPeriod STX 0x44 n periodo ETX STX estado ETX Programa el periodo de conexión de la bomba n.

Estado Descripción
0x00 Correcto
0x01 Error
0x11 Temperatura por encima del nivel establecido
0x12 Temperatura por debajo del nivel establecido
0x21 pH por encima del nivel establecido
0x22 pH por debajo del nivel establecido

Costes del controlador

En la siguiente tabla tenemos el coste aproximado de los componentes, este coste depende mucho del sitio donde los compremos así que no está de más comparar varios sitios. La mayoría de los precios de la tabla son de la tienda donde habitualmente compro los componentes, los demás están sacados de tiendas online que son bastante más caras.

Componente Cantidad Precio unitario (¤)Total (¤)
Puente rectificador 1 0.24 0.24
Regulador +12V LM7812 1 0.29 0.29
Regulador +5V LM7805 1 0.29 0.29
Regulador -5V LM7905 1 0.32 0.32
Regulador ajustable L200 1 1.56 1.56
Generador de tensión LM336 1 0.42 0.42
Microcontrolador P16F874 1 8.80 8.80
Acondicionador MAX233 1 6.80 6.80
Drivers ULN2803 2 0.56 1.12
Amplificador operacional LF356M 1 0.48 0.48
Amplificador operacional TL084 1 0.4 0.4
Resistencias 0.25W 5% 36 0.009 0.324
Resistencias 0.25W 1% 4 0.016 0.064
Condensador electrolítico 4700µF 1 0.95 0.95
Condensadores poliester 220nF 5 0.168 0.84
Condensadores electrolíticos 1µF 3 0.048 0.144
Condensadores electrolíticos 1000µF 3 0.164 0.492
Condensadores electrolíticos 10µF 2 0.016 0.032
Condensadores 22pF 2 0.03 0.06
Condensador cerámico 0.33µF 1 0.144 0.144
Condensador cerámico 0.1µF 1 0.034 0.034
Condensador cerámico 150pF 1 0.03 0.03
Condensador cerámico 3.3pF 1 0.03 0.03
Condensador cerámico 5.6pF 1 0.03 0.03
Diodo zener 5.1V 1 0.084 0.084
Diodos rectificadores 1N4007 10 0.021 0.21
Diodos de señal 1N4148 2 0.024 0.048
Leds rojos 5mm 4 0.05 0.05
Leds rojos 3mm 18 0.063 1.134
Potenciómetros multivuelta 4 0.722 2.89
Potenciómetros horizontales 2 0.23 0.46
Cristal 20Mhz 1 0.84 0.84
LCD 20x4 1 21.0 21.0
Switchs 7 0.144 1.008
Placa fotosensible positiva 200x300mm 1 12.74 12.74
Relés 6V 16 2.0 32.0
Zócalo 8 pines 1 0.1443 0.1443
Zócalo 14 pines 1 0.1682 0.1682
Zócalos 18 pines 2 0.2380 0.4760
Zócalo 20 pines 1 0.28 0.28
Zócalo 40 pines 1 0.7212 0.7212
Disipadores 4 0.2280 0.9120
Tornillos para los disipadores 4 0.01 0.04
Tuercas para los disipadores 4 0.0088 0.0352
Tira de pines macho 1 0.1836 0.1836
Tira de pines hembra 1 0.5580 0.5580
Sonda de pH 1 60.0 60.0
Sensor de temperatura DS1820 1 2.0 2.0
Total: 162.02¤

Podemos ver en la tabla que los relés, el LCD y el sensor de pH se llevan aproximadamente el 70% del presupuesto total por lo que podemos limitar el número de relés a los que realmente necesitemos. El LCD lo pondremos únicamente si no vamos a usar un ordenador para configurar el controlador.

Modificaciones y mejoras

Estas son algunas de las posibles mejoras a efectuar en el controlador:

Fotos del controlador

Placa de alimentación
640x480 800x600
1280x960 1600x1280
Placa de alimentación del sensor de pH
640x480 800x600
1280x960 1600x1280
Placa del controlador
640x480 800x600
1280x960 1600x1280
Placa del terminal de control
640x480 800x600
1280x960 1600x1280
Placa del sensor de pH
640x480 800x600
1280x960 1600x1280


Críticas constructivas a carlitos (las demás a /dev/null) Powered by apache Powered by php Powered by postgresql Powered by linux


Licencia de Creative Commons
Estas páginas están bajo una licencia de Creative Commons.