InicioTarjetas de DesarrolloArduino¿Cómo visualizar los datos del sensor de Humedad y Temperatura KY-015?

¿Cómo visualizar los datos del sensor de Humedad y Temperatura KY-015?

Te mostraremos como visualizar datos del Sensor de Humedad y Temperatura KY-015 (también llamado DHT11) por medio de una interfaz con el display Oled de 128×32 pixeles.

El KY-015 censa temperatura y humedad con salida digital, la cual nos facilita la lectura directa de estos valores sin tener que realizar conversiones de datos analógicos a digitales.

Por otro lado el display Oled cuenta con una resolución de 128×32 pixeles , suficientes para poder mostrar información y con interfaz de comunicación I2C muy fácil de implementar.

Componentes y diagrama de conexión.

Para realizar nuestro proyecto necesitaremos:

Y la siguiente conexión entre nuestros componentes:

Recuerda revisar bien las conexiones antes de energizar tu placa de desarrollo.

Código en Arduino para censar Temperatura y Humedad del KY-015.

En el siguiente programa podremos visualizar datos del Sensor de Humedad y Temperatura KY-015 desplegadas en el display OLED

Para el siguiente código es importante tener en cuenta que se requiere la librería para DHT11 y OLED.

Si tienes duda de como instalar ambas librerías te recomendamos revisar los siguientes links:

#include <DHT.h>                 //Cargamos la librería DHT
#include <Adafruit_GFX.h>       //Liberia para gráficos
#include <Adafruit_SSD1306.h>  /*Liberia para Oleds monocromáticos basados ​​en controladores SSD1306
                                  Se declara el pin de reset, este es requerido por el constructor de la librería SSD1306
                                  para definir el tipo de OLED y la comunicación I2C en los (pines SDA, SCL)*/
#define OLED_RESET 13
#define DHTTYPE 11                //Definimos el modelo DHT11
#define DHTPIN    8              //Se define el pin para conectar el sensor
float h, t;

Adafruit_SSD1306 display(OLED_RESET);            /*Se define una condición para saber si en la librería esta definida la altura de 32 de lo contrario
                                                  no dejara compilar el código hasta que se cambie la altura correcta desde la librería*/
#if (SSD1306_LCDHEIGHT != 32)
#error("Altura incorrecta, cambie en la librería de Adafruit_SSD1306.h!");
#endif

DHT dht(DHTPIN, DHTTYPE);
void setup()
{
  Serial.begin(9600);   //Se inicia la comunicación serial
  dht.begin();          //Se inicia la libreria DHT
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //Se inicia la comunicación I2C en la direcion 0x3C para la pantalla oled 128x32
}
void loop()
{
  display.clearDisplay();              //Borra el buffer
  display.setTextSize(1);             //Establece el tamaño de fuente, admite tamaños de 1 a 8
  display.setTextColor(WHITE);       //Establece el color

  h = dht.readHumidity();           //Se realiza la lectura de humedad
  t = dht.readTemperature();        //Se realiza la lectura de temperatura

  //Se imprimen las variables en el display y puerto serial 
  display.setCursor(0, 10);  //Establecer las coordenadas para mostrar la posición del texto
  display.println("Humedad");
  display.setCursor(60, 10);
  display.println(h);
  display.setCursor(0, 20);  //Establecer las coordenadas para mostrar la posición del texto
  display.println("Temperatura");
  display.setCursor(80, 20);
  display.println(t);
  display.setCursor(110, 20);
  display.println("C");
  display.setCursor(0, 30);
  display.println("********************************************************************");
  display.display(); //Muestra el texto
  Serial.println("Humedad: "); Serial.println(h);
  Serial.println("Temperatura: "); Serial.println(t);
  delay(2000);              //Se espera 2 segundos para seguir leyendo datos
}
 

Ahora solo compila el código y cárgalo al Arduino Uno, el resultado que obtendrás será el siguiente:

Esta aplicación es ideal para visualizar la información censada muy rápidamente y lo puedes incluir en proyectos mas robustos.

Puedes también revisar nuestro tutorial ¿Cómo conectar el Display Oled 128×32 SSD1306 con Arduino Uno?, en donde podrás revisar otras opciones de despliegue de información para el OLED.

TUTORIALES RELACIONADOS