Arduino UNO R4 - DHT22 - OLED

Neste guia, vamos aprender a verificar e mostrar a temperatura e a umidade usando o módulo DHT22 em uma tela OLED.

Módulo sensor de temperatura e umidade DHT22 com tela OLED no Arduino UNO R4

Sobre a Tela OLED e o Sensor de Temperatura e Umidade DHT22

Conheça a tela OLED e o sensor de temperatura e umidade DHT22, incluindo a pinagem, o funcionamento e como programá-los, nos tutoriais abaixo.

Diagrama de Ligação

Diagrama de ligação do módulo sensor de temperatura e umidade DHT22 com tela OLED no Arduino UNO R4

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Uno R4 e outros componentes.

Código Arduino UNO R4 - Sensor DHT22 - OLED

/* * Este código de Arduino UNO R4 foi desenvolvido por pt.newbiely.com * Este código de Arduino UNO R4 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.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(); }

Passos Rápidos

Siga estas instruções passo a passo:

  • Se esta é a sua primeira vez usando o Arduino Uno R4 WiFi/Minima, consulte o tutorial sobre como configurar o ambiente para o Arduino Uno R4 WiFi/Minima na Arduino IDE.
  • Conecte a placa Arduino Uno R4 ao módulo DHT22 e à tela OLED conforme o diagrama fornecido.
  • Conecte a placa Arduino Uno R4 ao seu computador usando um cabo USB.
  • Abra a Arduino IDE no seu computador.
  • Selecione a placa Arduino Uno R4 correta (por exemplo, Arduino Uno R4 WiFi) e a porta COM.
  • Vá até o ícone Libraries no lado esquerdo da Arduino IDE.
  • Pesquise por "SSD1306" e localize a biblioteca SSD13011406 da Adafruit.
  • Pressione o botão Install para instalar a biblioteca.
Biblioteca OLED do Arduino UNO R4
  • Você precisa instalar dependências adicionais da biblioteca.
  • Clique no botão Install All para instalar todas as bibliotecas necessárias.
Biblioteca Adafruit GFX do Arduino UNO R4
  • Pesquise por "DHT" e procure a biblioteca DHT sensor library da Adafruit.
  • Clique no botão Install para instalar a biblioteca.
Biblioteca do sensor DHT do Arduino UNO R4
  • Você precisará instalar dependências adicionais da biblioteca.
  • Clique no botão Install All para instalar todas as dependências da biblioteca.
Biblioteca Adafruit Unified Sensor do Arduino UNO R4
  • Copie o código e abra-o na Arduino IDE.
  • Pressione o botão Upload na Arduino IDE para enviar o código ao seu Arduino UNO R4.
  • Coloque o sensor em água quente e fria, ou segure-o na mão.
  • Confira os resultados na tela OLED e no Serial Monitor.

※ Nota:

O código centraliza o texto automaticamente, na horizontal e na vertical, na tela OLED.

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!