Post on 10-Jul-2015
transcript
Controlador automᴩco de acuarios
Con este montaje pretendemos automatizar todos los elementos instalados en el acuario
a modo de acuario dom�o. Conseguiremos ahorrarnos algo de trabajo en el
mantenimiento del tanque y adem᳠tendremos un "vecino virtual" que nos lo cuide en
vacaciones.
El conjunto consta principalmente de una serie de m o᳠s que monitorizan los diferentes
par᳠tros del acuario (temperatura, Ph, etc...) y de un m�o de control que es el
encargado de tomar las decisiones oportunas para el mantenimiento de las condiciones
m᳠as. Adem᳠tenemos un m�o de configuraci� informaci�em> que, como su nombre
indica, permite tanto variar las condiciones del tanque como obtener
informaci�ctualizada de 鳴e.
En la figura anterior podemos ver como se interconectan los diferentes m�os con el
controlador principal y la conexi�esde el exterior con un navegador WEB o con una
conexi�erie RS232. Aunque en un primer momento se consider�se�los diferentes
m�os de forma separada (con su propio microcontrolador), la capacidad del
PIC16F874A nos da la posibilidad de controlarlo todo con un solo microcontrolador.
Los m�os desarrollados son los siguientes:
M�o de control: Es el m�o principal del sistema, recoge la
informaci�uministrada por los sensores y medidores y act? consecuencia.
Tambi鮠se encarga de realizar las tareas peri�as del acuario como encender
y apagar las luces y dar de comer a los peces.
M�o de configuraci� informaci�EB (acuaweb) y RS232: Se trata de un m�o
puramente software que permite la visualizaci�e datos a trav鳠de una interfaz
web o a trav鳠de un puerto serie. Adem�podemos configurar los par�tros del
acuario (temperatura, iluminacion, comidas, etc...) y realizar actuaciones
puntuales con alguno de ellos.
M�o de temperatura: Consiste en una serie de sensores de temperatura
encapsulados para poder sumergirlos y de unos actuadores para controlar los
diferentes calefactores.
M�o medidor de Ph: Mide el Ph del agua con un sensor estandar y convierte la
se�para que el m�o de control la pueda procesar. Tambi鮠tiene actuadores
para activar los controladores de Ph.
M�o medidor de nivel: Informa al m�o de control del nivel de agua existente
en el acuario.
M�o actuador de luces: Se encarga de alimentar los tubos de iluminaci�
M�o actuador de alimentaci�/a> Ser�l que introduzca comida en el agua
cuando el m�o de control lo considere necesario.
M�o generador de oleaje: Este m�o se encargar�e activar las bombas
generadoras de olas en el orden correcto.
M�o de control
El m�o 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 �mo.
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�ros/alarmas de
8 bits o uno de 16, puerto serie (USART) y ocho convertidores A/D de diez bits.
En la p�na de Microchip tenemos modelos m�peque�como el PIC12C509 de solo 8
pines y otros m�grandes y con m�prestaciones como el PIC18F8722 con 128 Kbytes
de memoria, 54 pines programables, convertidores A/D, USART. etc. Pr�icamente
todos los microcontroladores PIC son compatibles entre s튉 y podros poner cualquiera
de ellos con solo "recablear" los pines del integrado.
Para comunicarnos con el PIC16F874A utilizaremos el puerto serie USART integrado
en 鬮 Como los niveles del microcontrolador son TTL (0 y 5V para el "0" y el "1"
respectivamente) utilizaremos un adaptador de se�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� no
necesita ning?mponente externo.
M�o controlador de temperatura
ɳte m�o 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鳠que actuar�sobre los calefactores del acuario.
El DS18S20 es un term�ro digital de 9 bits que se conecta a trav鳠de un bus 1-wire.
Tiene una precisi�e ±0.5?C en el rango de -10?C a +85?C y cada uno de ellos dispone
de un identificador ? de 64 bits, lo que permite que puedan coexistir varios sensores en
un ? bus 1-wire. El bus 1-wire puede ser de hasta 100 metros de largo por lo que la
colocaci�e los sensores respecto del m�o no deberser un problema.
El DS18S20 es un integrado con forma de transistor, tiene tres pines de los cuales dos
sirven de alimentaci� (GND y Vdd) y el otro (DQ) es el que se conecta al bus. Este
sensor puede funcionar tambi鮠sin alimentaci�con lo que se conoce como
alimentaci�ar�ta. En este modo de funcionamiento la alimentaci�a 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�ico 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 鬠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� otro en el filtro biol�o.
Para controlar la temperatura utilizaremos dos calefactores tcos de acuario conectados
a T1 que se activar�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 �ma a? 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
conectaros 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頭�potencia necesita soportar por lo que
tendremos que instalar uno adecuado a nuestras necesidades o conectar varios en
paralelo.
M�o controlador de pH
Este m�o se encargar�e obtener el pH del agua y de manejar los actuadores de
control. El montaje est�asado (mas bien copiado) en el medidor de pH para acuarios
de Jos頍anuel Garc en su p�na podr�encontrar una explicaci�etallada 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 ?mente usaremos un
sensor y en caso de necesitar otro m�tendremos que duplicar el circuito anterior.
Usaremos una sonda de pH est�ar que suministra una tensi�nversamente
proporcional al pH del agua. Esta sonda proporciona 0V con pH neutro (ph 7) y
varaproximadamente 60mV por grado de pH. En la siguiente imagen tenemos una
gr�ca con el comportamiento de una sonda de este tipo.
Los sensores de pH se conectan al PIC16F874A por las entradas an�gicas de los
pines RA1, RA2 y RA3. Colocaremos uno en el recipiente del sif� ahorraremos espacio
en el acuario. Con uno es suficiente porque el pH cambia muy lentamente y la
circulaci�e agua es lo suficientemente r�da para que sea uniforme en todo el sistema.
Adem�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ḩmo.
M�o controlador del nivel del agua
La forma m�sencilla de controlar el nivel de agua del acuario es por medio de una
boya instalada en su interior. Esta boya accionar�nos contactos que nos indicar�que
el agua est�or encima o por debajo de un determinado nivel. Este m鴯do es
completamente v�do 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�preciso.
Necesitaremos controlar el nivel de agua en varios puntos del sistema: en el acuario, en
el filtro, en el dep�o de agua osmotizada y en el dep�o de cambio de agua. En el caso
del acuario es necesario saber si el agua baja de determinado nivel para a�rle m� en
el filtro biol�o es necesario para asegurarnos de que la bomba no trabaja en vac Los
otros dos sensores se encargan de controlar que no se acabe el agua del dep�o de
llenado y de que no se llene el dep�o de desag?
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�endo un poco cuando baje el nivel.
Adem�podremos hacer los cambios peri�os de agua autom�camente siempre que
dispongamos de un desag?e un dep�o de agua osmotizada.
M�o controlador de la iluminaci�h2>
El control de la iluminaci�onsiste b�camente 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�ombilla a modo de luna.
Adem� 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�o de alimentaci�h2>
Para automatizar la alimentaci�e los peces hemos
previsto varios actuadores con el fin de poder accionar
diferentes alimentadores autom�cos. Este m�o consiste
en uno o varios dep�os de comida colocados encima del
acuario con un dispensador que proporciona la dosis
adecuada. Los conectores C1 y C2 accionan los
dispensadores.
M�o de oleaje
Este m�o 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�una para el controlador y otra para la sonda
de pH), otra con el circuito acondicionador de se�para
la sonda de pH, la placa con el PIC16F874A y por ?o la
placa de rel鳮 La placa con el LCD y las seis teclas es
opcional si tenemos conectado un ordenador al
controlador.
Lo primero que haremos ser�l circuito que
proporcionar�a alimentaci�ecesaria para el resto de
placas. Suministra +5V por el conector cuatro para
alimentar el PIC16F874A, los dos ULN2801A, el
MAX233A, los rel鳠y el LCD. Adem�podremos conectar
por el conector correspondiente una baterrecargable
(1.5V x 4 = 6V) que nos proporcionar�a tensi�e
alimentaci�n caso de fallo de suministro el飴rico. Esta
placa la tendremos que alimentar con 18V AC. A
continuaci�enemos el listado de componentes de esta
placa:
Fuente de alimentaci�th>
Componente Descripci�th> Valor
U1 Puente rectificador
U2 Estabilizador de tensi 1᳠2V LM7812
R1 Resistencia limitadora para la baterrecargable 33Ω
R2 Resistencia de carga para el led indicador de
alimentaci t᳠d>
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 t᳠d> Rojo de
5mm
D3 Diodo zener 5.1V 1W
Para alimentar el acondicionador de se�de la sonda de
pH necesitamos tres voltajes: dos de +5V y uno de -5V Es
importante que la alimentaci�el circuito acondicionador
est頳eparada de la de alimentaci�e componentes para
evitar interferencias. Jos頍anuel Garcexplica todo esto
en su p�na del medidor de pH para acuarios. El
potenci�ro P1 nos servir�ara ajustar la tensi�e salida a
+5V exactos (la placa es exactamente igual a la de
Jos頍anuel y podros eliminar la placa de
alimentaci�nterior ya que 鳴a tambi鮠proporciona los
+5V necesarios para elimentar los elementos). Los
componentes necesarios los tenemos en la tabla
siguiente:
Fuente de alimentaci�el m�o sensor de pH
Componente Descripci�th> Valor
U1 Regulador de tensi j᳠ustable l200
U2 Estabilizador de tensi 5᳠V LM7805
U3 Estabilizador de tensi 5᳠V LM7905
R1 Resistencia de ajuste de tensi t᳠d> 0.33Ω
R2 Resistencia de ajuste de tensi t᳠d> 820Ω
R3 Resistencia de ajuste de tensi t᳠d> 330Ω
R4-R6 Resistencias de carga para los leds indicadores de
alimentaci t᳠d>
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 r᳠o multivuelta 470Ω
Una vez montadas la placas de alimentaci�montaremos
el m�o de control donde tenemos el PIC16F874A que es
el encargado de la adquisici�e 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�e datos por el
puerto serie y RC6 es el de transmisi�adem�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�nformaci�el
sistema en todo momento, aunque no es necesario para
el funcionamiento del controlador. Adem�de controlar
el LCD, en los pines RA0, RB2, RB3, RB4, RB5 y RB7
conectaremos seis teclas para poder navegar por el men?
esta forma implementaremos un terminal que nos
permitir�rogramar el controlador sin necesidad de
conectarlo a un ordenador.
Con el LM336 podremos ajustar la tensi�e referencia
del conversor A/D. Deberemos ajustar el potenci�ro P3
para que la tensi�ntre 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�n 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鳠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頱ue ser�l
que realmente active y desactive los actuadores. Los
rel鳠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�anto de la placa de
control como de la placa del terminal:
M�o de control
Componente Descripci�th> Valor
U1 Microcontrolador PIC16F874A
U2 Acondicionador de se /᳠td> MAX233A
U3 Generador de tensi e᳠ 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 /᳠td> 1N4148
D3-D6 Diodos led indicadores de actuaci n᳠ iluminaci t᳠d> Rojos de
3mm
D7,D8 Diodos led indicadores de actuaci n᳠ temperatura Rojos de
3mm
D9,D10 Diodos led indicadores de actuaci n᳠ pH Rojos de
3mm
D11,D12 Diodos led indicadores de actuaci n᳠ 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᳠ alimentaci t᳠d> Rojos de
3mm
D19,D20 Diodos led indicadores de comunicaci e᳠rie (Tx,Rx) Rojos de
3mm
D21-D26 Diodos de se /᳠td> 1N4007
XT1 Cristal 4Mhz
P1 Potenci r᳠o multivuelta para ajustar la tension de
referencia
10KΩ
P2 Control de contraste del LCD 10KΩ
P3 Control de iluminaci e᳠l LCD 10Ω
LCD LCD de 2x16 HD44780U
SW1 Pulsador de reset hardware
SW2-SW7 Teclado del terminal
El circuito acondicionador de se�lo tendremos montado
en una placa diferente para poder aislarlo de cualquier
interferencia tal y como explica Jos頍anuel Garc/a> en
su p�na. Los componentes necesarios para esta placa
los tenemos a continuaci�
Acondiciondor de se�del sensor de pH
Componente Descripci�th> 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 r᳠o de ajuste pH=7.0 10KΩ
P2 Potenci r᳠o de ajuste pH=4.0 2KΩ
Configuraci� funcionamiento del controlador
Para poner en marcha el controlador ?mente 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�nicializada 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�a pantalla de la izquierda. En el men?
podremos mover entre las diferentes opciones con las
teclas de ARRIBA y ABAJO. Para seleccionar una
opci�ulsaremos la tecla DERECHA y para salir del
men?tecla IZQUIERDA. El men?ajustes sirve para
configurar todos los par�tros del controlador. Podremos
poner la hora actual, introducir la temperatura y el pH
deseados, etc. El men?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?ncipal.
El men?ajuste de temperatura nos permite introducir en
el controlador la temperatura deseada en nuestro
acuario. Seleccionaremos la opci�em>temperatura del
men?ncipal y pulsaremos la tecla DERECHA.
Tendremos una pantalla en la que podremos variar la
temperatura mma y mḩma del acuario en pasos de
0.5?C. Con las teclas DERECHA e IZQUIERDA
seleccionaremos la temperatura mḩma o mma y con
ARRIBA y ABAJO iremos vari�ola hasta el valor �mo
deseado. Para salir pulsaremos la tecla IZQUIERDA.
Con este men?emos variar el nivel de pH necesario para
el acuario. El procedimiento para cambiar los valores de
pH es id鮴ico al del men?ajuste de temperaturas.
Seleccionaremos la opci�em>pH del men?ncipal y
pulsaremos la tecla DERECHA. Tendremos una
pantalla en la que podremos variar el pH mmo y
mḩmo del acuario en pasos de 0.1. Con las teclas
DERECHA e IZQUIERDA seleccionaremos el pH
mḩmo o mmo y con ARRIBA y ABAJO iremos
vari�ola hasta el valor �mo deseado. Para salir
pulsaremos la tecla IZQUIERDA.
Para controlar la iluminaci�el acuario disponemos de
cuatro controles para luces, 鳴os 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鮤onos 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?la hora de encendido y la
segunda la de apagado. En la pantalla de la derecha
tenemos que la luz n? 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�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?ara 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�s muy similar al de la
iluminaci�olo que en este caso tenemos ?mente dos
controles. En cada uno de 鳴os 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�saremos la tecla
IZQUIERDA.
Con este men?figuraremos todo lo relacionado a la
generaci�e olas en el acuario. Podemos configurar tres
periodos de oleaje (O1, O2 y O3) con hora de comienzo
y hora de finalizaci� y adem�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�suaves. El ?o
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�0:00 indica que no hay acci�
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�libres y las usaremos para
mostrar informaci�e todas las acciones que va
tomando el controlador. A la izquierda vemos que el
controlador encendi� 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� cebador uno a las
09:00. Conforme pase el tiempo el controlador
ir�oniendo en la linea de abajo la ?a acci�ue se ha
realizado.
Protocolo de comunicaciones RS232
El m�o de control estar�ontinuamente obteniendo
lecturas de temperatura, de pH y de nivel de agua de
los sensores, esperando �nes del m�o principal y
accionando los actuadores necesarios en cada
momento.
El puerto RS232 deber�star configurado a 9600 8N1.
Todas las ordenes comienzan con STX (0x02) y acaban
con ETX (0x03). Las �nes aceptadas son las de la tabla
siguiente:
Comando Respuesta Descripci�th>
Reboot STX 0x00
ETX
STX 0x00
ETX
Reinicia el m o᳠.
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 o᳠
con la hora
indicada.
GetTime STX 0x03
ETX
STX
HHMMSS
ETX
Pregunta al m o᳠ la
hora actual.
GetTemperatureAll STX 0x10
ETX
STX S1 S2
S3 ... ETX
Pregunta al m o᳠
las lecturas de
temperatura de
todos los sensores
que tiene
conectados.
GetTemperature STX 0x11
n ETX
STX Sn
ETX
Pregunta al m o᳠ 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 o᳠
para tomar las
temperaturas de
todos lo sensores
con el periodo
especificado.
SetTemperaturePeriod STX 0x15
n periodo
ETX
STX
estado
ETX
Programa el m o᳠
para tomar las
temperaturas del
sensor n con el
periodo
especificado.
SetMaxTemperature STX 0x16 STX Programa el lte
max ETX estado
ETX
superior de
temperatura para el
acuario (en ?C).
SetMinTemperature STX 0x17
min ETX
STX
estado
ETX
Programa el lte
inferior de
temperatura para el
acuario (en ?C).
GetPhAll STX 0x20
ETX
STX S1 S2
S3 ... ETX
Pregunta al m o᳠
las lecturas de pH
de todos los
sensores que tiene
conectados.
GetPh STX 0x21
n ETX
STX Sn
ETX
Pregunta al m o᳠ 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 o᳠
para tomar el pH
de todos lo
sensores con el
periodo
especificado.
SetPhPeriod STX 0x25
n periodo
ETX
STX
estado
ETX
Programa el m o᳠
para tomar el pH
del sensor n con el
periodo
especificado.
SetMaxPh STX 0x26
max ETX
STX
estado
ETX
Programa el lte
superior de pH
para el acuario.
SetMinPh STX 0x27
min ETX
STX
estado
ETX
Programa el lte
inferior de pH para
el acuario.
GetWaterLevelAll STX 0x30
ETX
STX S1 S2
S3 ... ETX
Pregunta al m o᳠
las lecturas de
nivel de agua de
todos los sensores
que tiene
conectados.
GetWaterLevel STX 0x31
n ETX
STX Sn
ETX
Pregunta al m o᳠ 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 o᳠
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 o᳠
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 o᳠ el
estado de todas las
luces que tiene
conectadas.
GetLight STX 0x41
n ETX
STX Sn
ETX
Pregunta al m o᳠ 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 o᳠
para encender
todas las luces a la
hora indicada.
SetLightTimeAllOff STX 0x43
hora ETX
STX
estado
ETX
Programa el m o᳠
para apagar todas
las luces a la hora
indicada.
SetLightTimeOn STX 0x44
n hora
ETX
STX
estado
ETX
Programa el m o᳠
para encender la
luz n a la hora
indicada.
SetLightTimeOff STX 0x45
n hora
ETX
STX
estado
ETX
Programa el m o᳠
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 o᳠s.
SetFeeding STX 0x51
m n hora
ETX
STX
estado
ETX
Programa la hora
de cebado m de los
peces en el m o᳠ n.
GetWavesAll STX 0x40
ETX
STX S1 S2
S3 ... ETX
Pregunta al m o᳠ el
estado de las
bombas
generadoras de
olas.
GetWaves STX 0x41
n ETX
STX Sn
ETX
Pregunta al m o᳠ 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 o᳠
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 e᳠ la bomba
n.
Estado Descripci�th>
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 asue no est� de m�comparar
varios sitios. La mayorde los precios de la tabla son de
la tienda donde habitualmente compro los
componentes, los dem�est�sacados de tiendas online
que son bastante m�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 M᳠336 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 electrolco 4700µF 1 0.95 0.95
Condensadores poliester 220nF 5 0.168 0.84
Condensadores electrolcos 1µF 3 0.048 0.144
Condensadores electrolcos 1000µF 3 0.164 0.492
Condensadores electrolcos 10µF 2 0.016 0.032
Condensadores 22pF 2 0.03 0.06
Condensador cer᳠co 0.33µF 1 0.144 0.144
Condensador cer᳠co 0.1µF 1 0.034 0.034
Condensador cer᳠co 150pF 1 0.03 0.03
Condensador cer᳠co 3.3pF 1 0.03 0.03
Condensador cer᳠co 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 1᳠N4148 2 0.024 0.048
Leds rojos 5mm 4 0.05 0.05
Leds rojos 3mm 18 0.063 1.134
Potenci r᳠os multivuelta 4 0.722 2.89
Potenci r᳠os 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鳠6V 16 2.0 32.0
Z o᳠ 8 pines 1 0.1443 0.1443
Z o᳠ 14 pines 1 0.1682 0.1682
Z o᳠s 18 pines 2 0.2380 0.4760
Z o᳠ 20 pines 1 0.28 0.28
Z o᳠ 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鳬 el LCD y el
sensor de pH se llevan aproximadamente el 70% del
presupuesto total por lo que podemos limitar el n? de
rel鳠a los que realmente necesitemos. El LCD lo
pondremos ?mente 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:
Luces: Control de las luces con PWM para
simular el amanecer y el ocaso. Esto se puede
hacer con el microcontrolador o con
circuiterexterna. En este ?o caso no serposible
configurar los tiempos de encendido y apagado
progresivo desde el terminal o desde el
ordenador.
Terminal de control: Posibilidad de conectar un
LCD de 2x16 en lugar de uno de 4x20 ya que
normalmente s�necesitamos la hora y los datos
de temperatura y pH.
Comunicaciones: Conexi�on el exterior por red.
Desarrollar un mini servidor de p�nas web que
permita todo el manejo del controlador a
trav鳠de 鬮
Sensores: A�r sensores de carbonatos (KH),
dureza (GH), amoniaco, nitratos y nitritos
(?conductividad?).
Fotos del controlador
640x480 800x600 1280x960 1600x1280
640x480 800x600 1280x960 1600x128
0 640x480 800x600 1280x960 1600x1280
640x480 800x600 1280x960 1600x1280
640x480 800x600 1280x960 1600x128
0