14 de mayo de 2015

Control y Monitorizacion de Huerto Parte II: Arduino MEGA2560 y sensores

ESPECIFICACIONES INICIALES MEGA 2560
Este es el modelo de arduino con el que vamos a intentar ir desarrollando el proyecto. De todas las especificaciones de la placa, vamos a resaltar algunas que vamos a tener presentes desde el principio:
  • 54 DI/DO (Digital Input/Digital Output)
    • 02-13 PWM (tienen posibilidad proporcionar salidas alimentadas) I/O: 5V-40mA
      IMPORTANTE:
      Estos pines pueden ser usados como AI/AO.
      Hay que saber que aunque cada pin individual PWM está habilitado para ofrecer 40mA.Arduino agrupa la os pines tomando como restricción que ofrezcan a lo sumo 100mA(0,1,2,3,4) y 100mA(5,6,7,8,9,10,11,12,13).
    • 22-53 DIGITALES si alimentación. I/O: 5V-40mA/5V
  • 16 AI (Analog Inputs)
    • A01-A15
      Pueden recibir voltajes en el rango 0-5V. La placa solo trabaja de forma digital, por lo que incorpora a cada canal un conversor analógico-digital de 10bits.
      NOTA: los pines hembra AI pueden ser usados totalmente como DI/DO numerándose entonces como 14-28.


  •  4 TTL-UART (Puertos Serie por Hardware)
    • (TX0,RX0),(TX1,RX1),(TX2,RX2),(TX3,RX3)
  • Conexión USB,Conexión ICSP
  • Botón RESET.
ALIMENTACIÓN
La placa Arduino Mega trabaja bajo un voltaje de 5V. Dicho voltaje podemos ofrecerlo de varias formas:
  • USB: La forma más sencilla sera conectarlo al ordenador, a través de un puerto USB. El puerto controlará el voltaje a 5V y ofrecerá un consumo máximo de 500mA. En este caso la potencia máxima consumida por la placa no excederá de los 2,5W. En caso de ser sobrepasado el límite, la placa cuenta con un fusible reseteable que interrumpirá las comunicaciones hasta que desaparezca el motivo por el que se activó. Si se usa esta forma de alimentación, es clara la necesidad de calcular el consumo necesario, sobre todo en proyectos con elementos que consumen mucha potencia.
  • FUENTE EXTERNA: Hablamos en este caso de alimentar la placa con un transformador AC/DC o con una batería. La conexión puede realizarse al conector tipo jack 2,1(Exterior-,Interior+) o a los bornes Vin(+) y GND(-) de la placa. En este caso la placa esta preparada para recibir un voltaje de 6-20V aunque lo recomendable es 7-12V. La placa ya se encarga de acomodar este sobrevoltaje a 5V.
    Se debe saber que si la placa está conectada mediante el jack, el borne Vin ofrecerá 5V y 40mA, que pueden ser usados para alimentar algún elemento consumidor externo.
    Idéntica funcionalidad tenemos en el borne llamado 5V.
    El borne 3,3V ofrece este voltaje y un amperaje de 50mA.
SENSORES

Nuestro objetivo es controlar un huerto/invernadero. Tendremos que pensar que variables me gustaría controlar y buscar los posibles elementos que me posibiliten dicho control. Enumeremos las variables y posteriormente veremos que sensores, usaremos.
  1. Luminosidad o intensidad de luz que reciben las plantas.
  2. Temperatura del entorno.
  3. Temperatura dentro del huerto/invernadero.
  4. Humedad relativa del ambiente.
  5. Humedad del suelo.
  6. Nivel de liquido en depósitos, quizás abono, quizás agua...
La información de los sensores que escribo a continuación ha sido extraída de varias paginas web, sobre todo de venta de dichos sensores. No es complicado encontrar bastante mas información de cada uno de ellos.
SENSOR DE LUMINONSIDAD: TSL2561

El Lux Sensor TSL2561 es un sensor de luz digital avanzada, ideal para utilizarse en un amplio rango de aplicaciones. Comparado con las fotoceldas CdS de bajo costo, este sensor es más preciso, permitiendo cálculos exactos de luz y puede ser configurado sobre la marcha con diferentes rangos de ganancia para detectar rangos de luz de hasta 0.1 . 40,000+. La mejor parte de este sensor es que contiene diodos tanto en el espectro infrarrojo como en el completo. Esto significa que permite realizar mediciones separadas de luz infrarroja y de espectro completo o luz visible al ojo humano. La mayoría de los sensores pueden detectar solo una de las dos.
El sensor tiene una interfaz digital I2C. Puedes seleccionar una de las tres direcciones para que así puedas tener hasta tres sensores en el microcontrolador, cada uno con una dirección I2C diferente. El consumo de corriente es extremadamente bajo, así que es perfecto para registro de datos de baja potencia (alrededor de 0.5mA al detectar actividad y menos de 15uA en modo apagado).  
Características: 
  • Se aproxima a la respuesta del ojo humano
  • Medidas de iluminación precisas en diversas condiciones de luz 
  • Rango de temperatura: -30 to 80 *C
  • Rango dinámico (Lux): 0.1 to 40,000 Lux
  • Rango de voltaje: 2.7-3.6V
  • Interfaz: I2C
  • Esta tarjeta/chip utiliza direcciones I2C de 7-bits 0x39, 0x29, 0x49, seleccionable con jumpers.

SENSOR DE TEMPERATURA EXTERIOR TMP36
El TMP36 es el sustituto del LM335A y es un sensor de temperatura analógico muy popular y sencillo de utilizar. Funciona como un diodo Zener con un voltaje de corte proporcional a la temperatura absoluta con un rango de 10mV/ºK. Conecta una resistencia desde 5V a GND y el sensor te dará en su salida un voltaje que podrás medir con el ADC de tu microcontrolador favorito y también con Arduino. La salida del sensor es lineal por lo que no tendrás que hacer calculos de conversión. Puede operar de -40ºC a 100ºC.

Para obtener un menor margen de error (típico de 1%), debes calibrar el sensor. Consulta el datasheet.
Características:
  • Calibrado en grados Kelvin
  • Funciona desde: 400 μA a 5 mA
  • Impedancia: Menos de 1Ω
  • Fácil calibración con pin de ajuste
  • Temperatura de funcionamiento: -40 a 100 ºC

SENSOR DE HUMEDAD EN SUELO OCTOPUS


Sensor de humedad Octopus, puede leer la humedad presente en el suelo que lo rodea. Es un sensor de baja tecnología, pero ideal para monitorear un jardín urbano, o el nivel de agua de sus plantas. Esta es una herramienta indispensable para un jardín conectado!

Este sensor utiliza las dos sondas para pasar corriente a través del suelo, y luego lee la resistencia para obtener el nivel de humedad. Más agua hace que la electricidad circule por el suelo más fácilmente (menos resistencia), mientras que el suelo seco conduce la electricidad mal (mayor resistencia).
Specification
  • Power supply: 3.3v or 5v
  • Output voltage signal: 0~4.2v
  • Current: 35mA
  • Pin definition:
  • Analog output(Yellow wire)
  • GND(Black wire)
  • Power(Red wire)
NOTA: Con objeto de evitar en la medida de lo posible los efectos de la electrólisis en el sensor habilitaremos junto a este un relé que solo deje pasar la electricidad cuando vaya a ser tomada la lectura.

SENSOR DE TEMPERATURA y HUMEDAD INTERIOR DHT11
Los sensores DHT11 nos permiten medir la temperatura y la humedad. A diferencia de otros sensores, éstos los tendremos que conectar a pines digitales, ya que la señal de salida es digital. Llevan un pequeño microcontrolador interno para hacer el tratamiento de señal.

¿Cómo funcionan?

Se componen de un sensor capacitivo para medir la humedad y de un termistor. Están calibrados por lo que no es necesario añadir ningún circuito de tratamiento de señal. Esto sin duda es una ventaja porque nos simplifica las cosas en la protoboard. Además, como los DHTxx han sido calibrados en laboratorios, presentan una gran fiabilidad.

Funcionan con ciclos de operación de duración determinada de 1s. En este tiempo, el microcontrolador externo (Arduino por ejemplo) y el microcontrolador que lleva integrado el sensor, se hablan entre sí de la siguiente manera:
  • El microcontrolador (Arduino) inicia la comunicación.
  • El sensor responde estableciendo un nivel bajo de 80us y un nivel alto de 80us.
  • El sensor envía 5 bytes.
  • Se produce el handshaking.
A modo resumen, las características de cada uno de los sensores las resumimos en la siguiente tabla:
Parámetro DHT11
Alimentación 3Vdc ≤ Vcc ≤ 5Vdc
Señal de Salida Digital
Rango de medida Temperatura De 0 a 50 °C
Precisión Temperatura ±2 °C
Resolución Temperatura 0.1°C
Rango de medida Humedad De 20% a 90% RH
Precisión Humedad 4% RH
Resolución Humedad 1%RH
Tiempo de sensado 1s
Tamaño 12 x 15.5 x 5.5mm

SENSOR DE NIVEL HC-SR04
El sensor de ultrasonidos se enmarca dentro de los sensores para medir distancias o superar obstáculos, entre otras posibles funciones.
En este caso vamos a utilizarlo para la medición de distancias. Esto lo consigue enviando un ultrasonido (inaudible para el oído humano por su alta frecuencia) a través de uno de la pareja de cilindros que compone el sensor (un transductor) y espera a que dicho sonido rebote sobre un objeto y vuelva, retorno captado por el otro cilindro.
Este sensor en concreto tiene un rango de distancias sensible entre 3cm y 3m con una precisión de 3mm.

¿Qué recibimos en el sensor? 

El tiempo que transcurre entre el envío y la recepción del ultrasonido.

¿Cómo vamos a traducir dicho tiempo en distancia?

 Aprovechando que la velocidad de dicho ultrasonido en el aire es de valor 340 m/s, o 0,034 cm/microseg (ya que trabajaremos con centímetros y microsegundos). Para calcular la distancia, recordaremos que v=d/t (definición de velocidad: distancia recorrida en un determinado tiempo).
De la fórmula anterior despejamos d, obteniendo d=v·t, siendo v la constante anteriormente citada y t el valor devuelto por el sensor a la placa Arduino.
También habrá que dividir el resultado entre 2 dado que el tiempo recibido es el tiempo de ida y vuelta.

No hay comentarios:

Publicar un comentario