Os presento mi gran proyecto Arduino que he bautizado como CCCP, Control Patiota. Grande no tanto por su complejidad sino especialmente porque es una idea que llevaba mascullando ya algunos años, pero claro también por el tiempo que me ha llevado la instalación y puesta en marcha.
El proyecto básicamente consiste en una instalación de riego por goteo y micro-aspersores accesible desde internet y completada con algunos «extras» como un alimentador (mejorado) para los peces del patio y algunos sensores de temperatura y humedad con los que monitorizar el espacio. El siguiente vídeo podéis ver la instalación y como funciona.

Lógicamente la tarea más complicada de todo este tinglado ha sido todo lo referente a los componentes no-electrónicos: la instalación del sistema de riego y conexión a la red, la instalación de 20 mts de cable de red entre el router y la caja y los cientos de micro-goteros instalados, uno por maceta.
En cuanto a la electrónica no me calenté mucho la cabeza, he cogido los componentes y los he metido tal cual en una caja de plástico, incluida la propia placa de prototipado, los cables de conexión entre placas y los transformadores de corriente. Puesto que para la pruebas y la subida del código al Arduino las conexiones/desconexiones iban a ser frecuentes, la condición inexcusable era que la caja fuese fácil/rápida de desmontar y trasladable, y que alojase dentro todo la electrónica necesaria de manera que al desconectar los «periféricos» quede una caja de plástico con un enchufe. Con un par de regletas y un par de cables USB desmontarlo todo son apenas 15 segundos.

Elementos Arduino

La instalación es una placa Arduino UNO sobre la que acopla una Ethernet Shield de la que salen los habituales conexiones a sensores y controles.
La placa Ethernet se comporta como un servidor web conectándose al router de casa con una IP fija (192.168.1.205 en este caso), y es a través de la intranet desde el arduino informa desde estado de los sensores y espera la ejecución de órdenes.

Elementos y arduinoElementos y arduino

Otro de los elementos fundamentales es la placa de relés. Estoy usando una placa de 8 reles de los cuales solo 4 están conectados y de estos solo 2 en uso. Los otros dos suministran corriente a 220V y son activados/desactivados por los relés 3 y 4. No tengo muy claro su uso, probablemente controlar alguna luz para cenar en el patio.
Dentro de la caja además se alojan un transformador de 6.5v (en el vídeo todavía estaba usando uno de 12v) y otro transformador de 220>24Va para las electroválvulas. Un viejo cable de conexión motherboard-USB que me ha venido de perlas para poder conectar/desconectar fácilmente el servo del alimentador de peces y el sensor de humedad de suelo.

Código Arduino

El código Arduino es muy elemental. Básicamente activa los dispositivos conectados, lee su estado (activo/inactivo) y escribe un par de líneas de texto con esta información. Cuando recibe una solicitud por la red lee la cadena de texto de esta solicitud y busca determinados patrones que le ordenen abrir o cerrar algún pin. Ejecuta la orden si la encuentra y termina emitiendo su estado, así si (por ejemplo) encuentra la cadena rele0on se activa inmediatamente el relé 0.
Para evitar conflictos y sobrecargas al activar algún relé se asigna true a la booleana sistemaocupado de tal manera que mientras algún relé esté activo no es posible activar otro relé o el servo. Al mismo tiempo que enciende el led rojo indicando que algún elemento está trabajando.
Asi para regar el patio activando el relé 0 bastaría con hacer en un terminal curl 'http://192.168.1.205/?rele0on'

La línea de texto se imprime en formato Javascript, de esta manera es mi propio ordenador el que construye la página web de gestión y se comunica via JSON con el Arduino. De esta manera se evita sobrecargar de trabajo al Arduino haciéndole servir muchas Kb de datos y sobretodo se pueden hacer todos los cambios que se deseen sin tener que manipular ó andar desconectando la placa.

Respuesta ArduinoRespuesta Arduino

Archivo PDE para Arduino

Materiales

Todos los materiales de riegos (mangueras, goteros, difusores, electroválvulas) los compré en Torre-Pacheco en distribuidor agrícola. Los componentes Arduino y sensores en distribuidores chinos. Estos son los componentes que estoy usando:
SainSmart UNO ATMEGA328P-PU ATMEGA8U2 Microcontroller For Arduino, 11$.
Ethernet Shield W5100, 6€
Relay shield 8 canales, 6.3€
Sensor humedad y temperatura DHT11, 2€
Sensor humedad de suelo, 1.4€