Práctica 28. Medir la humedad del suelo y manifestar la lectura por medio del monitor serie e iluminación led.

28.1 Objetivo General:

Por medio de la incorporación del sensor de humedad de tierra en
un circuito controlado por un Arduino se toma la muestra del valor
de humedad y en función de esta lectura se encienden diferentes
leds que muestran visualmente cual es el resultado.

En la sección de Tutoriales->Arduino podrán encontrar todas las
prácticas relacionadas con la tarjeta Arduino.

En esta práctica se desarrolla un programa que pueda leer los
valores de medición del sensor de humedad de suelo,
posteriormente se simula el circuito electrónico y la programación
del Arduino en thinkercad.

28.2 Materiales y metodos:

  1. Tarjeta Arduino uno – R3 o Arduino mega.
  2. Un cable de impresora
  3. Un Computador
  4. Cables para el montaje del circuito
  5. Protoboard
  6. Soil moisture sensor (Sensor de humedad de tierra)
  7. Una resistencia de 220Ω.
  8. Cinco leds.

28.2.1 Polaridad de un LED

Un LED, es un dispositivo diodo emisor de luz que se usa como
indicador en muchos dispositivos y en iluminación. Los primeros
LEDS emitían luz roja de baja intensidad, pero los dispositivos
actuales emiten luz de alto brillo en el espectro infrarrojo, visible y ultravioleta. Un LED comienza a funcionar aproximadamente con 2
voltios.


Formas de determinar la polaridad de un LED:
Existen tres formas principales de conocer la polaridad de un led:

  • La pata más larga siempre va a ser el ánodo.
  • En el lado del cátodo, la base del LED tiene un borde plano.
  • Dentro del LED la plaqueta indica el ánodo. Se puede reconocer porque es más pequeña que el yunque que indica el cátodo.

28.3 Montaje de la Práctica:

Antes de comenzar a la realización del montaje del circuito
electrónico, primero se visualiza en el programa TinkerCad como se
muestra en la figura 1, se debe tener en cuenta el conocimiento de
cuál es el cátodo y ánodo de los LEDS.

Figura 1. Montaje del circuito en Tinkercad.

Podemos observar en la Figura 1 el montaje del circuito para encender y apagar los LED con Arduino Uno, dependiendo del valor de la humedad que mida el sensor se encenderá un led en específico, el procedimiento es similar si se emplea la tarjeta Arduino Mega. También se utiliza para el montaje un Protoboard¿Qué es un Protoboard?, es un tablero con orificios conectados eléctricamente entre sí, habitualmente siguiendo patrones de líneas, en el cual se pueden insertar componentes electrónicos y cables para el armado de prototipos de circuitos electrónicos y sistemas similares. Está hecho de dos materiales, un aislante, generalmente un plástico, y un conductor que conecta los diversos orificios entre sí. Uno de sus usos principales es la creación y comprobación de prototipos de circuitos electrónicos antes de llegar a la impresión mecánica del circuito en sistemas de producción comercial.

Como se observa en la Figura 1, el Protoboard ayuda a insertar los leds, la resistencia y los cables e instalar el circuito en general.

Luego de elaborar el circuito en el programa TinkerCaD, se desarrolla el código en el IDE de Arduino.

  • En el menú desplegable Herramientas -> placa se selecciona la tarjeta Arduino que se está utilizando sea Arduino Uno-R3 o Arduino Mega 2560.
  • Herramientas -> Puerto se debe seleccionar bajo que puerto USB se va a conectar el Arduino con el computador.
  • NOTA:

Para que el IDE de Arduino pueda entender los comandos es necesario que al final de cada instrucción se coloque punto y coma (;).

28.3.2 Procedimiento de cómo llevar a cabo el codificado del programa:

  • Se inicia indicando el nombre del programa, para insertar comentarios se emplea el símbolo //.
  • se declara de tipo entero int humedad y se le asigna el valor “0”.
  • Se define el tipo de variable: entrada o de salida, mediante void setup (), se abre llave ({ )para saber qué es lo que contiene ese comando y al finalizar el comando se cierra con llave (}). Internamente del corchete se declarara que A0 y A1 serán salida y entrada respectivamente, para encender los LEDS se necesita salidas eléctricas del Arduino, mediante el comando pinMode(LED,OUTPUT); donde OUTPUT  indica que la señal saldrá del pin 8,9,10,11,12. Se declara que se va a utilizar la ventana de puerto serial, esto es, Serial.begin(9600), siendo 9600 un indicativo de la velocidad de comunicación.
  • Luego de definir las variables, se desarrolla el código dentro del comando void loop (), se abre llave ({) y se cierra luego de terminar su cumplimiento (}). Internamente del corchete se establecen las instrucciones que ejecutará Arduino continuamente. Primero se induce electricidad al sensor por medio de digitalWrite(A0,HIGH), se espera 10 milisegundos para hacer la lectura con humedad = analogRead(A1), luego de la lectura podemos apagar el sensor para no tenerlo encendido todo el tiempo y evitar corrosión del mismo. Con Serial.println (humedad) enviamos el valor al monitor serie. Se asegura que todos los puertos estén en estado bajo con digitalWrite (LED, LOW), y finalmente en función del valor de humedad se entra en una de las instrucciones para encender el respectivo led con digitalWrite (LED, HIGH).

28.3.3 Algoritmo de la práctica 29

A continuación, el código completo requerido para la realización de esta práctica.



	// Código para medir la humedad del suelo

int humedad = 0;

void setup()
{
  pinMode(A0, OUTPUT);
  pinMode(A1, INPUT);
  Serial.begin(9600);

  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
}

void loop()
{
  // Se le aplica electricidad al sensor de humedad
  digitalWrite(A0, HIGH);
  delay(10); // Espera 10 milisegundos.
  humedad = analogRead(A1);
  // Se apaga el sensor para evitar corrosión en el metal.
  digitalWrite(A0, LOW);
  Serial.println(humedad); // Se muestra el valor en el monitor serie
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
  digitalWrite(10, LOW);
  digitalWrite(11, LOW);
  digitalWrite(12, LOW);
  if (humedad < 200) {
    digitalWrite(12, HIGH);
  } else {
    if (humedad < 400) {
      digitalWrite(11, HIGH);
    } else {
      if (humedad < 600) {
        digitalWrite(10, HIGH);
      } else {
        if (humedad < 800) {
          digitalWrite(9, HIGH);
        } else {
          digitalWrite(8, HIGH);
        }
      }
    }
  }
  delay(100); // espera 100 milisegundos.

Algoritmo 1. Lectura de señal analógicas, y leds que se deben encender.

  • Finalmente, se debe verificar que al final de cada instrucción se haya colocado el respectivo punto y coma, de lo contrario habrá errores a la hora de compilar.
  • Una vez compilado el programa este se ejecuta. Si las conexiones se hicieron de manera correcta el sensor capta y envía la señal a la tarjeta posteriormente al monitor serial y a encender el respectivo led.

Enlace de implementación del algoritmo 1 en el simulador TinkerCad

28.3.4 Monitor Serial

  • Para activar el monitor serial se hace click izquierdo en la barra de herramientas del IDE de Arduino que señaliza el monitor serial en la parte superior derecha, ver Figura 2.

Figura 2. Botón para activar el Monitor Serial.

Para observar los cambios de humedad registrados por el sensor, y tener una idea de si estaba funcionando de manera correcta, primero se mide la humedad que mide en el ambiente. Seguidamente, se procede a insertar el sensor en la tierra. Si ocurre algún cambio en los datos medidos se verifica que el sensor está funcionando.

Finalmente, se observa cuál de los leds encendió indicando al rango en el que se encuentra la humedad.

28.4 Conclusión:

Luego de conocer cómo utilizar el sensor de humedad se puede explorar nuevas aplicaciones tanto a nivel personal como en jardines o a nivel industrial como en invernaderos y casas de cultivo, solo es necesario saber en que parte del suelo debe estar ubicado el sensor para lograr una buena lectura y luego utilizando el Arduino se activan salidas eléctricas para ser inducidas en una electroválvula e ingresar el paso del agua.

Si nuestro contenido te fue de utilidad, por favor considera dar tu apoyo a lo que hacemos: