Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Tutorial de temperatura e umidade dos sensores DHT11 e DHT22 usando Arduino


Neste tutorial do Arduino, aprenderemos como usar o sensor DHT11 ou DHT22 para medir temperatura e umidade com a placa Arduino. Você pode assistir ao vídeo a seguir ou ler o tutorial escrito abaixo para obter mais detalhes.

Visão geral


Esses sensores são muito populares para os entusiastas da eletrônica porque são muito baratos, mas ainda oferecem ótimo desempenho. Aqui estão as principais especificações e diferenças entre esses dois sensores:

O DHT22 é a versão mais cara que obviamente tem especificações melhores. Sua faixa de medição de temperatura é de -40 a +125 graus Celsius com precisão de +-0,5 graus, enquanto a faixa de temperatura DHT11 é de 0 a 50 graus Celsius com precisão de +-2 graus. Além disso, o sensor DHT22 possui melhor faixa de medição de umidade, de 0 a 100% com precisão de 2-5%, enquanto a faixa de umidade DHT11 é de 20 a 80% com precisão de 5%.

Existem duas especificações onde o DHT11 é melhor que o DHT22. Essa é a taxa de amostragem que para o DHT11 é de 1Hz ou uma leitura a cada segundo, enquanto a taxa de amostragem do DHT22 é de 0,5Hz ou uma leitura a cada dois segundos e também o DHT11 tem tamanho de corpo menor. A tensão de operação de ambos os sensores é de 3 a 5 volts, enquanto a corrente máxima usada na medição é de 2,5 mA.

Você pode obter esses componentes em qualquer um dos sites abaixo:
  • Sensor DHT11………………………………..
  • Sensor DHT22…………………………….
  • Placa Arduino ………………………………
  • Breadboard e jump wires ……… 

Princípio de funcionamento do DHT11/DHT22


Ok, agora vamos ver como esses sensores realmente funcionam. Eles consistem em um componente de detecção de umidade, um sensor de temperatura NTC (ou termistor) e um IC na parte traseira do sensor.

Para medir a umidade, eles usam o componente sensor de umidade que possui dois eletrodos com substrato de retenção de umidade entre eles. Assim, à medida que a umidade muda, a condutividade do substrato muda ou a resistência entre esses eletrodos muda. Esta mudança na resistência é medida e processada pelo IC que o torna pronto para ser lido por um microcontrolador.

Por outro lado, para medir a temperatura, esses sensores usam um sensor de temperatura NTC ou um termistor.

Um termistor é na verdade um resistor variável que muda sua resistência com a mudança da temperatura. Esses sensores são feitos por sinterização de materiais semicondutores, como cerâmicas ou polímeros, a fim de fornecer maiores mudanças na resistência com apenas pequenas mudanças na temperatura.

O termo “NTC” significa “Coeficiente de Temperatura Negativo”, o que significa que a resistência diminui com o aumento da temperatura.

Esquema do circuito


Os sensores DHTxx possuem quatro pinos, VCC, GND, pino de dados e um pino não conectado que não tem uso. Um resistor pull-up de 5K a 10K Ohms é necessário para manter a linha de dados alta e para permitir a comunicação entre o sensor e a placa Arduino. Existem algumas versões desses sensores que vêm com placas de fuga com resistor pull-up embutido e têm apenas 3 pinos.

Os sensores DHTXX têm seu próprio protocolo de fio único usado para transferir os dados. Este protocolo requer um tempo preciso e os diagramas de tempo para obter os dados dos sensores podem ser encontrados nas folhas de dados dos sensores. No entanto, não precisamos nos preocupar muito com esses diagramas de tempo porque usaremos a biblioteca DHT que cuida de tudo.

Tutorial relacionado:Aprenda a construir uma estação meteorológica sem fio baseada em Arduino

Código-fonte


Primeiro, precisamos incluir a biblioteca DHT que pode ser encontrada no site oficial do Arduino, depois definir o número do pino ao qual nosso sensor está conectado e criar um objeto DHT. Na seção de configuração, precisamos iniciar a comunicação serial porque usaremos o monitor serial para imprimir os resultados. Usando a função read22() vamos ler os dados do sensor e colocar os valores da temperatura e da umidade nas variáveis ​​t e h. Se você usar o sensor DHT11, você precisará da função read11(). Ao final imprimiremos os valores de temperatura e umidade no monitor serial.
/*  DHT11/ DHT22 Sensor Temperature and Humidity Tutorial
 *  Program made by Dejan Nedelkovski,
 *  www.HowToMechatronics.com 
 */
/*
 * You can find the DHT Library from Arduino official website
 * https://playground.arduino.cc/Main/DHTLib
 */
 
#include <dht.h>

#define dataPin 8 // Defines pin number to which the sensor is connected
dht DHT; // Creats a DHT object

void setup() {
  Serial.begin(9600);
}
void loop() {
  int readData = DHT.read22(dataPin); // Reads the data from the sensor
  float t = DHT.temperature; // Gets the values of the temperature
  float h = DHT.humidity; // Gets the values of the humidity
  
  // Printing the results on the serial monitor
  Serial.print("Temperature = ");
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print("    Humidity = ");
  Serial.print(h);
  Serial.println(" % ");
  
  delay(2000); // Delays 2 secods, as the DHT22 sampling rate is 0.5Hz
}Code language: Arduino (arduino)

Após fazermos o upload deste código para a placa Arduino, os resultados de temperatura e umidade do sensor podem ser vistos no monitor Serial.

Também fiz um exemplo onde mostro os resultados em um LCD. Aqui está o código-fonte desse exemplo:
/*  DHT11/ DHT22 Sensor Temperature and Humidity Tutorial
 *  Program made by Dejan Nedelkovski,
 *  www.HowToMechatronics.com 
 */
/*
 * You can find the DHT Library from Arduino official website
 * https://playground.arduino.cc/Main/DHTLib
 */

#include <LiquidCrystal.h> // includes the LiquidCrystal Library
#include <dht.h>


#define dataPin 8
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
dht DHT;

void setup() {
  lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
}

void loop() {
  int readData = DHT.read22(dataPin);
  float t = DHT.temperature;
  float h = DHT.humidity;
  lcd.setCursor(0,0); // Sets the location at which subsequent text written to the LCD will be displayed
  lcd.print("Temp.: "); // Prints string "Temp." on the LCD
  lcd.print(t); // Prints the temperature value from the sensor
  lcd.print(" C");
  lcd.setCursor(0,1);
  lcd.print("Humi.: ");
  lcd.print(h);
  lcd.print(" %");
  delay(2000);
}Code language: Arduino (arduino)

Sinta-se à vontade para fazer qualquer pergunta na seção de comentários abaixo.

Processo de manufatura

  1. Sensor de temperatura Python e Raspberry Pi
  2. Temperatura e umidade fáceis no Raspberry Pi
  3. Sensores analógicos no Raspberry Pi usando um MCP3008
  4. Controle remoto universal usando Arduino, 1Sheeld e Android
  5. Faça você mesmo voltímetro usando Arduino e Smartphone
  6. Registrador de dados de temperatura e umidade
  7. Medição de frequência e ciclo de trabalho usando Arduino
  8. BME280 Temperatura, Umidade e Pressão na Tela Nextion
  9. Controle de brilho do LED usando Bolt e Arduino
  10. Como ler a temperatura e umidade em Blynk com DHT11