Deseamos desarrollar un proyecto que incluya medidas meteorológicas. Disponemos para las placas arduino de muchos sensores que permiten tomar estas medidas. Para el caso de temperatura y humedad, uno de los más utilizados es el sensor DHT22 (o DHT11, otro modelo menos preciso). Para utilizarlo necesitaremos las librerías del sensor.

Este sensor tiene cierta complejidad interna. Recordemos que sensores como potenciómetros o LDR (de luz) funcionaban como divisores de tensión, lo que nos permitía obtener entradas de voltaje analógicas que la placa de arduino podía leer directamente mediante la instrucción analogRead(0).

Los sofisticados circuitos de ciertos sensores requieren programas adicionales, muy complejos para principiantes. ¿Qué hacer entonces?.

Por fortuna, esos programas suelen estar disponibles en las llamadas librerías. Bastará con poner el nombre de esa librería de una forma especial (ver más adelante) y conocer cómo funciona para poder usar los datos en nuestro programa.

Trabajando con librerías

Las librerías, hablando de forma simplificada, contienen programas que permiten obtener de manera sencilla algunos datos de sensores más complejos. (Nota: una librería puede ser simplemente software que haga ciertas funciones, no tienen por qué estar asociadas a sensores).

La librería del sensor de humedad y su uso

Las librerías especiales para su uso en robótica educativa basada en arduino pueden instalarse buscando en el IDE de arduino, o bien descargarse como fichero comprimido de alguna página web.

a) Instalación directa buscando en el IDE de arduino.

Desde la barra de tareas, de dos formas:

  • herramientas -> administrar bibliotecas
  • programa -> incluir librerías -> administrar bibliotecas

Con cualquiera de las rutas mostradas, obtenemos la siguiente ventana (versión IDE 1.8.13), que permite seleccionar la librería e instalarla:

las librerías

Observamos que ya tenemos instalada la librería del DHT (DHT sensor library -> INSTALLED)

b) Fichero comprimido que se puede descargar de una página web

  • Barra de herramientas: programa -> incluir librería -> añadir biblioteca .zip …

Al hacer clic, se abre una ventana de windows donde podemos buscar el archivo .zip que hemos descargado. Basta seleccionarlo y aceptar para que se instale de forma automática.

las librerías

En ambos casos, una vez instalada la librería, en la pestaña archivo -> ejemplos del IDE, aparecerá un ejemplo de uso que nos permitirá conocer cómo funciona la librería y en muchos casos también indica en qué pines conectar el sensor para que el ejemplo funcione correctamente.

Estructura general de un programa

Los programas de microcontroladores como arduino están todos formados, como mínimo, por dos funciones obligatorias. Estas funciones son:

  • void setup ( ) { }
  • void loop ( ) { }

Previas a estas dos funciones aparecen las librerías, definiciones de constantes, etcétera. La función setup() inicializa la programación de los sensores. En la función loop() hacemos uso de las funciones contenidas en la librería y preparamos lo que queremos hacer en nuestro programa. (Ver la estructura en el programa más abajo)

Si deseamos incorporar al programa multitud de sensores, es interesante que, partiendo de los ejemplos de uso, tengamos en cuenta esta estructura. Así, iremos completando el programa el programa global como un puzle.

Esta es una forma rápida de hacer las cosas pero tiene algunas desventajas, como la posibilidad de interacción entre librerías, o pines que dichas librerías utilizan que puodrían interferir en el funcionamiento de otros sensores. Es conveniente, ir añadiendo y verificando cada sensor en nuestro programa para desartar cualquier interacción negativa.

La razón por la que cuento todo esto es el objetivo final de una serie de entradas que comenzará con esta: montar una estación meteorológica que incorpore varios sensores.

Programación. Las librerías del sensor DHT22

Esta parte es un poco extraña si no estás acostumbrado a programar. Pero enseguida puedes identificar cómo obtener los valores que te interesan. En el ejemplo que nos ocupa, es inmediato ver cómo obtener los valores de temperatura y humedad. Obtenemos el siguiente programa del ejemplo de la librería DHT22 (DHTtester):

El aspecto del programa, simplificado para obtener solo los valores de temperatura y humedad es este:

La librería se incluye en la primera línea que se ve en el programa:

#include «DHT.h»

En esta librería están todas las funciones que nos permiten obtener los valores de temperatura, humedad y otras.

Esquema de conexionado

Seguidamente vemos la conexión del sensor DHT22. En el módulo de 3 patas que nosotros usamos (ver foto cabecera) no es necesario añadir la resistencia de 10 kΩ.

Con esa conexión y el programa anterior, obtenido modificando el ejemplo del IDE de arduino obtenemos:

Continuaremos añadiendo entradas con los distintos sensores que pueden conformar una estación meteorológica.