Arduino - Sensor de Temperatura e Umidade - LCD

Vamos aprender a:

Sobre o DHT11, DHT22 e LCD

Se você ainda não conhece o sensor de temperatura DHT11, DHT22 e o LCD (pinagem, como funcionam, como programar...), aprenda sobre eles nos seguintes tutoriais:

Diagrama de Ligação

Arduino - Ligação do Módulo DHT11 com LCD

Diagrama de ligação do Arduino com DHT11 de temperatura e umidade e LCD

This image is created using Fritzing. Click to enlarge image

Arduino - Ligação do Módulo DHT22 com LCD

Diagrama de ligação do Arduino com DHT22 de temperatura e umidade e LCD

This image is created using Fritzing. Click to enlarge image

Ligação real para o DHT11

Ligação do Arduino com DHT11 e LCD

This image is created using Fritzing. Click to enlarge image

Código Arduino - Sensor DHT11 - LCD I2C

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-temperature-humidity-sensor-lcd */ #include <DIYables_LCD_I2C.h> #include "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT11 DIYables_LCD_I2C lcd(0x27, 16, 2); // I2C address 0x27 (from DIYables LCD), 16 column and 2 rows DHT dht(DHTPIN, DHTTYPE); void setup() { dht.begin(); // initialize the sensor lcd.init(); // initialize the lcd lcd.backlight(); // open the backlight } void loop() { delay(2000); // wait a few seconds between measurements float humi = dht.readHumidity(); // read humidity float tempC = dht.readTemperature(); // read temperature lcd.clear(); // check if any reads failed if (isnan(humi) || isnan(tempC)) { lcd.setCursor(0, 0); lcd.print("Failed"); } else { lcd.setCursor(0, 0); // start to print at the first row lcd.print("Temp: "); lcd.print(tempC); // print the temperature lcd.print((char)223); // print ° character lcd.print("C"); lcd.setCursor(0, 1); // start to print at the second row lcd.print("Humi: "); lcd.print(humi); // print the humidity lcd.print("%"); } }

※ Nota:

O endereço I2C do LCD pode variar de acordo com o fabricante. No código, usamos 0x27, que é o endereço especificado pelo fabricante DIYables

Passos Rápidos

  • Conecte o Arduino ao PC usando o cabo USB
  • Abra o Arduino IDE e selecione a placa e a porta corretas
  • Vá até o ícone Libraries na barra esquerda do Arduino IDE.
  • Pesquise “DHT” e encontre a biblioteca DHT sensor library da Adafruit
  • Clique no botão Install para instalar a biblioteca.
Biblioteca DHT sensor no Arduino
  • Será solicitado que você instale algumas outras dependências da biblioteca
  • Clique no botão Install All para instalar todas as dependências da biblioteca.
Biblioteca Adafruit Unified Sensor no Arduino
  • Pesquise “DIYables LCD I2C” e encontre a biblioteca DIYables_LCD_I2C da DIYables
  • Clique no botão Install para instalar a biblioteca DIYables_LCD_I2C.
Biblioteca DIYables LCD I2C no Arduino
  • Copie o código acima e abra-o no Arduino IDE
  • Clique no botão Upload no Arduino IDE para carregar o código no Arduino
  • Deixe o ambiente ao redor do sensor mais quente ou mais frio
  • Veja o resultado no LCD
Ligação do Arduino com DHT11 e LCD

This image is created using Fritzing. Click to enlarge image

O código acima também funciona com o Arduino Nano. Um avô, que aprendeu com este tutorial para orientar seu neto, testou este código com o Arduino Nano e nos enviou o resultado abaixo:

Arduino mostrando temperatura e umidade no LCD

Se o LCD não mostrar nada, veja Solução de Problemas no LCD I2C

Código Arduino - Sensor DHT22 - LCD I2C

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-temperature-humidity-sensor-lcd */ #include <DIYables_LCD_I2C.h> #include "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT22 DIYables_LCD_I2C lcd(0x27, 16, 2); // I2C address 0x27 (from DIYables LCD), 16 column and 2 rows DHT dht(DHTPIN, DHTTYPE); void setup() { dht.begin(); // initialize the sensor lcd.init(); // initialize the lcd lcd.backlight(); // open the backlight } void loop() { delay(2000); // wait a few seconds between measurements float humi = dht.readHumidity(); // read humidity float tempC = dht.readTemperature(); // read temperature lcd.clear(); // check if any reads failed if (isnan(humi) || isnan(tempC)) { lcd.setCursor(0, 0); lcd.print("Failed"); } else { lcd.setCursor(0, 0); // start to print at the first row lcd.print("Temp: "); lcd.print(tempC); // print the temperature lcd.print((char)223); // print ° character lcd.print("C"); lcd.setCursor(0, 1); // start to print at the second row lcd.print("Humi: "); lcd.print(humi); // print the humidity lcd.print("%"); } }

※ Nota:

O código para o DHT11 e o DHT22 é idêntico, exceto por uma linha de código. A biblioteca para o DHT11 e o DHT22 é a mesma.

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!