Ya estamos en marcha de nuevo ….

Bueno, depues de unas semanitas de trabajo, el nuevo Riegamatico 3.0 ya esta trabajando de nuevo para mantener sin sed a las plantas, aunque aqui ya no recordamos desde cuando no vemos el sol, asi que todavia no ha tenido mucho trabajo, lo que ha venido bien para hacer unas cuantas pruebas y escribir unas cuantas lineas de código.

image

Como ya adelantaba en alguna entrada anterior, esta nueva version tiene algunas mejoras respecto a la anterior version. Veamos un poco el “guat is niu”:

– Nuevo deposito de 18L a base de caja “Strofen” de los suecos.

– Display I2C que permite ahorrar un monton de pines del arduino.

– 2 Bombas en vez de 1 para hacer 2 circuitos de riego y poder regar con diferentes frecuencias unas plantas u otras (de momento solo utilizo una).

– Sensor para detectar bajo nivel de agua en el deposito (4l.)

– Sensor DTH22 de temperatura / humedad relativa en el exterior (fácil de usar ya que hay disponible libreria para su lectura)

– Sensor barométrico BMP085 para medir la presion atmosferica. Tambien hay una libreria en google code para su lectura, aunque veo que tiene un problema al leer la primera medida si lleva rato en reposo, cosa que tendremos que revisar. Este sensor esta ubicado en el interior ya que así no le afectan los vientos ni nada. Tambien mide la temperatura, así que podemos saber la temperatura que hace dentro, en la electrónica.

– Placa de control de carga de bateria a traves de un panel solar. De momento, esta parte tiene el hardware instalado, pero esta sin usar ya que debido al mayor consumo energético, ahora requiere un panel mas grande que el que tenia la anterior version, asi que de momento se alimenta mediante una linea de alimentacion de 12V que he sacado de casa.

imageDetalle de las 2 bombas y el sensor de nivel

 

imageValvula de vaciado del circuito, necesaria al estar el nivel del deposito mas alto que los aspersores

Y por supuesto, la verdadera mejora del nuevo Riegamatico 3.0, y que es el uso del Arduino Ethernet, que permite a nuestro Riegamatico comunicarse con el mundo exterior. De momento he implementado un pequeño servidor telnet que nos permite leer el estado desde cualquier parte del mundo con conexion a internet

Ahora los siguentes pasos inmediatos seran, por un lado, optimizar el código un poco para reducir el tamaño del programa y sobre todo el uso de RAM (los textos del telnet y el display ocupan mucha memoria RAM en el Arduino), poner un par de sensores de humedad de la tierra y despues de eso ya nos meteremos en la aventura de implementar un sistema sencillo de comunicaciones con el PC para enviar los datos de los sensores a una base de datos MySQL. Veremos a ver que sale.

 

El Bus I2C, con ejemplo de DS1307

Aprovechando que estamos con el software del nuevo riegamatico, y que estoy con el tema, ahi van unas clases de bus I2C por si le sirven a alguien. Esta bien porque para pequeños proyectos con Arduino permite hacer cosas con gran variedad de sensores y perifericos de muchos otros tipos de forma sencilla.

Cómo funciona el bus I2C explican un poco aquí. Básicamente es que los Dispositivos I2C (sensores de mil tipos, voltímetros, memorias, LCD y displays, relojes, dispositivos de audio y video, drivers para leds, … ) digamos que son como miniordenadores. Van alimentados por 5v o 3.3V generalmente (2 cables), y se comunican por otros 2 cables de datos que los recorren a todos a forma de red. La distancia máxima de este cable puede ser hasta 8 – 10m según dicen, dependiendo de lo bien que pongamos los cables y la velocidad de datos, pero para leer sensores se suele hacer una vez por segundo o menos aun, y eso es poco (velocidades altas con memorias por ejemplo igual si  …). Aun así se puede extender esa distancia con circuitos electrónicos que mejoran y repiten las señales  ( hay hasta quien dice por ahí que ha llegado a una milla con I2C y todo ). Esta bien …

Dos micros (arduinos por ejemplo), y unos conversores Analogico digital y viceversa comunicados por I2C

 

Incluso en muchos multicopteros, el procesador controla los motores por I2C, enviando a cada motor, que tiene una dirección diferente en el bus, a que velocidad tiene que girar. Y se la envía 400 veces por segundo a cada uno en el caso de mi hexa.

Controladora I2C de motor Brushless de Multocoptero

 

Cada tipo de “cacharrillo” I2C tiene su forma de trabajar, pero no suele ser muy dificil. Todo depende de como lo hayan diseñado. Tendrá una o incluso varias direcciones en el bus. En algunos dispositivos esta dirección se puede programar, generalmente dentro de un rango, para poder tener varios del mismo tipo en el mismo bus. Otros no se puede cambiar y todos vienen de fabrica con la misma, porque están pensados mas para estar con dispositivos de otro tipo y no muchos del mismo, y así al no ser programable la dirección son mas baratos …

La mejor forma de entender un poco y poder hacer pruebillas es con un ejemplo. En el riegamatico, que estoy en plena renovación, tengo yo un reloj real I2C y un display de 2 lineas tambien I2C.

Display LCD y Reloj I2C. Se ven los pines de Alimentacion y lineas SDA (SerialDAta) y SCL (SerialCLock) del BUS

 

Realmente el funcionamiento interno del bus I2C y como viajan los datos no necesitamos saber mucho. Solo que nos suene en principio. Tenemos una libreria en arduino, con 10 funciones, que nos hace muy fácil enviar y leer datos de los cacharrillos I2C.

En la siguiente pagina veremos un ejemplo de comunicacion con el reloj I2C DS1307.

 

Sensores de humedad

Bueno, hoy han llegado tambien un par de sensores para medir la humedad de la tierra. La verdad es que no tienen mucho misterio, ya que simplemente miden la conductividad del suelo con un transistor y poco mas, pero ya que los venden por una miseria…. Ademas parece que viene galvanizado para no oxidarse (que es la pega que tienen estos sensores), así que solo por eso merece la pena pillarlo.

Sin título

Ah, por cierto, que ya he comido los 2 primeros Tomates cosecha Riegamatico. Muuuuy ricos !!!

Sin títuloSin título

Riegamatico: The Origins

Esta fue la primera placa del Riegamatico, que estaba formado por poco mas que esto. El microprocesador, rele para la bomba, reloj y para de contar. Unos pines para conectar el LCD y los cacharros externos y a funcionar. Como veis montar un arduino en realidad es facil ya que no es mas que un microporcesador y alguna circuiteria auxiliar.

LAYOUT

Finalizando el Hardware

A falta de unos retoques y alguna que otra corrección que se necesite a medida que alguna cosa no funcione bien, la parte de hardware esta ya terminada !!!

Sin título

Lo siguiente que toca es ponerse a programar el software. En este caso lo primero que haré sera adaptar el software actual para que funcione en este nuevo hardware y poder ponerle a regar lo antes posible (el actual Riegamatico acusa ya el paso del tiempo y ademas a las plantas ya no les llegan los 10 litros de agua mas que para 4 dias). Para empezar con buen pie a programar tenemos que tener claro el hardware, asi que lo mejor y mas facil es documentar todo con algunas fotos sacadas con el movil o de internet y unas notas puestas con el Greenshot.

Layout_General

Layout_Arduino

Ademas luego dejas de hacer cosas en el proyecto unos días y luego te da pereza empezar porque no te acuerdas ya como ibas. También estoy usando el Google Drive para guardar las cosas del proyecto y pasarme las fotos y ficheros entre el móvil y los ordenadores y la verdad es que es muy útil. Te deja instalar una movida en windows y lo ves como una carpeta donde tu quieras, y siempre tienes lo mismo en todos los ordenadores.

Cambio de LCD

He comprado un LCD en ebay (no se cuanto durara el link) con interfaz serie (I2C) y voy ha cambiar el otro que habia puesto, que es de interfaz paralelo y lleva unos pocos mas cables que este. Así aprovecho y lo pruebo y probablemente compre unos cuantos mas para tener para los futuros loqueseamaticos …

Untitled

LCD Paralelo y sus tropecientos cables junto al I2C con sus 4.

Así en vez de tanto cable solo se necesitan 2 cables para la alimentación ( GND y +5V ) y 2 cables que forman el bus I2C ( SerialCLock y SerialDAta ). Asi, utilizando la libreria wire podremos enviar comandos al display, o controlarlo directamente con alguna libreria para LCD I2C. Yo creo que voy a partir de una por ahi y modificarla para hacer una a mi gusto.

Placa de control de carga

Esta es la placa de control de carga del Riegamatico 3.0. Una forma rapida de construir un pequeño circuito es con estas placas de circuito que venden, que esta toda llena de agujeros y un cuadradito para soldar en cada uno.

Untitled

Luego tu vas uniendo los componentes segun requiera tu esquema. Yo lo hago solo con estaño, que es fácil si tienes un poco de practica soldando. Y si no puedes ir uniendo con cables.

Untitled

Esta placa va a servir para tomar una muestra de la tensión de la batería y otra muestra de la tensión del panel solar. Digo una “muestra” porque como la batería digamos que oscila de 0 a 15V, pero el arduino solo puede medir de 0 a 5V, pues se toma una fracción de esa tensión. Si tomamos 1/3 pues tenemos que de los 0-15V nosotros pillamos 0-5V la muestra. Esto se hace con un par de resistencias formando un divisor de tension, aunque en este caso esta hecho con una resistencia y un potenciómetro, para luego poder ajustar esa fracción de tensión que cogemos y así calibrar bien nuestro voltimetro digital.

La placa también lleva un relé que se activara para desconectar el panel solar cuando la batería este ya cargada, y un potenciómetro que servirá para controlar el contraste del display.

Riegamatico 3.0

Parece que el pobre riegamatico 2.0 esta un poco cansado ya de tanto cuidar las plantas. Al Display no le ha gustado tanta humedad, ni le debe haber gustado tampoco que le eche yo algo de agua por encima de vez en cuando, y se ha escachifurciau media fila de arriba !!!

Untitled

Así que para no quedarme sin Riegamatico, y aprovechando que he terminado de ajustar unas cosillas en en CNC-Matico, he empezado a montar el Riegamatico 3.0

Untitled

 Esto del CNC es un invento. Estas cosas con la lima ni se las plantea uno, y asi mira que facil !!!!

Untitled

Untitled

Encaja todo que te cagas. Bien pegado el cristal y por ahí ya no entra la humedad. Lo que no he hecho es mirar que tal se ve. Ya veremos cuando lo encienda …

Arduino y las plantas

Con la llegada de la primavera se pone en marcha de nuevo el jardincillo de ventana regado por arduino. Este año hemos mejorado los paneles solares, y por las pruebas preliminares parece que han sido un exito porque ahora le sobra energía eléctrica. Igual le hago una toma para cargar el movil ahi en la sombra.

IMAG0422

IMAG0411

El artilugio completo (en adelante “Riegamatico”), consta de una garrafa de gasolina de 10l + una bomba de lavabo de auto-caravana + unos cuantos tubos y regadores del Leroy + una especie de válvula vacia-circuito casera (boli bic) + una bateria 12V 7 Ah + unos paneles solares + un cerebro para gobernarlos a todos (esto me suena ….) hecho de arduino y regado con un software made in “la casa”. Mantiene el jardin regadito el solo, llenando la garrafa cada 15 dias.

IMAG0429

IMAG0425

Una ventaja mas de este jardincito de ventana es que estando bien frondoso y regado en verano, refresca el aire que entra por la ventana a modo de aire acondicionado natural.