Arduino UNO R4 - DHT22 - OLED

En esta guía, aprenderemos cómo medir y mostrar la temperatura y la humedad utilizando el módulo DHT22 en una pantalla OLED.

Arduino UNO R4 módulo sensor DHT22 de temperatura y humedad con pantalla OLED

Acerca de la pantalla OLED, Sensor de Temperatura y Humedad DHT22

Aprende sobre la pantalla OLED y el sensor de temperatura y humedad DHT22, incluyendo sus pines, cómo funcionan y los métodos de programación, en los tutoriales a continuación.

Diagrama de Cableado

Diagrama de cableado OLED para Arduino UNO R4 con sensor de temperatura y humedad DHT22

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Uno R4 y otros componentes.

Código Arduino UNO R4 - Sensor DHT22 - OLED

/* * Este código de Arduino UNO R4 fue desarrollado por es.newbiely.com * Este código de Arduino UNO R4 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-dht22-temperature-humidity-sensor-oled */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <DHT.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels #define DHT22_PIN 2 // The Arduino UNO R4 pin connected to DHT22 sensor Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // create SSD1306 display object connected to I2C DHT dht22(DHT22_PIN, DHT22); String temperature; String humidity; void setup() { Serial.begin(9600); // initialize OLED display with address 0x3C for 128x64 if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); while (true); } delay(2000); // wait for initializing oled.clearDisplay(); // clear display oled.setTextSize(3); // text size oled.setTextColor(WHITE); // text color oled.setCursor(0, 10); // position to display dht22.begin(); // initialize DHT22 the temperature and humidity sensor temperature.reserve(10); // to avoid fragmenting memory when using String humidity.reserve(10); // to avoid fragmenting memory when using String } void loop() { float humi = dht22.readHumidity(); // read humidity float tempC = dht22.readTemperature(); // read temperature // check if any reads failed if (isnan(humi) || isnan(tempC)) { temperature = "Failed"; humidity = "Failed"; } else { temperature = String(tempC, 1); // one decimal places temperature += char (247); // degree character temperature += "C"; humidity = String(humi, 1); // one decimal places humidity += "%"; Serial.print(tempC); // print to Serial Monitor Serial.print("°C | " ); // print to Serial Monitor Serial.print(humi); // print to Serial Monitor Serial.println("%"); // print to Serial Monitor } oledDisplayCenter(temperature, humidity); // display temperature and humidity on OLED } void oledDisplayCenter(String temperature, String humidity) { int16_t x1; int16_t y1; uint16_t width_T; uint16_t height_T; uint16_t width_H; uint16_t height_H; oled.getTextBounds(temperature, 0, 0, &x1, &y1, &width_T, &height_T); oled.getTextBounds(temperature, 0, 0, &x1, &y1, &width_H, &height_H); // display on horizontal and vertical center oled.clearDisplay(); // clear display oled.setCursor((SCREEN_WIDTH - width_T) / 2, SCREEN_HEIGHT/2 - height_T - 5); oled.println(temperature); // text to display oled.setCursor((SCREEN_WIDTH - width_H) / 2, SCREEN_HEIGHT/2 + 5); oled.println(humidity); // text to display oled.display(); }

Pasos R\u00e1pidos

Sigue estas instrucciones paso a paso:

  • Si es la primera vez que usas el Arduino Uno R4 WiFi/Minima, consulta el tutorial sobre configurar el entorno para Arduino Uno R4 WiFi/Minima en el IDE de Arduino.
  • Conecta la placa Arduino Uno R4 al módulo DHT22 y a la pantalla OLED según el diagrama proporcionado.
  • Conecta la placa Arduino Uno R4 a tu computadora utilizando un cable USB.
  • Inicia el IDE de Arduino en tu computadora.
  • Selecciona la placa Arduino Uno R4 adecuada (p. ej., Arduino Uno R4 WiFi) y el puerto COM.
  • Ve al ícono de Bibliotecas en el lado izquierdo del IDE de Arduino.
  • Busca "SSD1306" y localiza la biblioteca SSD13011406 de Adafruit.
  • Pulsa el botón Instalar para instalar la biblioteca.
Biblioteca OLED para Arduino UNO R4
  • Necesita instalar dependencias de bibliotecas adicionales.
  • Haga clic en el botón Instalar todo para instalar todas las bibliotecas necesarias.
Biblioteca de sensores Adafruit GFX para Arduino UNO R4
  • Busca "DHT" y localiza la biblioteca de sensores DHT de Adafruit.
  • Haz clic en el botón Instalar para instalar la biblioteca.
Biblioteca de sensores DHT para Arduino UNO R4
  • Necesitará instalar dependencias de bibliotecas adicionales.
  • Haga clic en el botón Instalar todo para instalar todas las dependencias de la biblioteca.
Biblioteca de sensores unificada de Adafruit para Arduino UNO R4
  • Copie el código y ábralo en el IDE de Arduino.
  • Presione el botón Subir en el IDE de Arduino para transferir el código a su Arduino UNO R4.
  • Coloque el sensor en agua caliente y fría, o sosténgalo en la mano.
  • Verifique los resultados en la pantalla OLED y en el Monitor Serial.

※ Nota:

El código centra automáticamente el texto horizontalmente y verticalmente en la pantalla OLED.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!