Umidade e temperatura são parâmetros comuns para medir as condições ambientais. Neste projeto baseado em Arduino, vamos medir a temperatura ambiente e a umidade e exibi-las em uma tela LCD 16x2. Um sensor combinado de temperatura e umidade DHT11 é usado com o Arduino uno para desenvolver este termômetro em escala Celsius e projeto de medição de umidade em escala percentual. Em um de meus projetos anteriores, também desenvolvi um termômetro digital usando o sensor de temperatura LM35.
Este projeto consiste em três seções - uma detecta a umidade e temperatura usando o sensor de umidade e temperatura DHT11. A segunda seção lê a saída do módulo DHTsensor e extrai os valores de temperatura e umidade em um número adequado em porcentagem e escala Celsius. E a terceira parte do sistema exibe a umidade e a temperatura no LCD.
O trabalho deste projeto é baseado na comunicação serial monofilar. Primeiro o arduino envia um sinal de início para o módulo DHT e, em seguida, o DHT dá um sinal de resposta contendo dados de temperatura e umidade. O Arduino coleta e extrai em duas partes uma é a umidade e a segunda é a temperatura e, em seguida, envia para o LCD 16x2.
Aqui neste projeto, usamos um módulo sensor denominado DHT11. Este módulo apresenta um complexo de umidade e temperatura com uma saída de sinal digital calibrada, o que significa que o módulo do sensor DHT11 é um módulo combinado para detectar umidade e temperatura que fornece um sinal de saída digital calibrado. O DHT11 nos dá valores muito precisos de umidade e temperatura e garante alta confiabilidade e estabilidade a longo prazo. Este sensor possui um componente de medição de umidade do tipo resistivo e componente de medição de temperatura do tipo NTC com um microcontrolador de 8 bits embutido que tem uma resposta rápida e econômica e está disponível em um pacote de 4 pinos de uma fileira.
O módulo DHT11 funciona com comunicação serial, ou seja, comunicação de fio único. Este módulo envia dados em forma de trem de pulso de período de tempo específico. Antes de enviar dados para o arduino, é necessário algum comando de inicialização com um atraso de tempo. E todo o tempo do processo é de cerca de 4ms. Uma transmissão de dados completa é de 40 bits e o formato de dados deste processo é dado abaixo:
Dados RH integrais de 8 bits + dados RH decimais de 8 bits + dados T integrais de 8 bits + dados T decimais de 8 bits + soma de verificação de 8 bits.
Processo Completo
Em primeiro lugar, o arduino envia um sinal de início de alto para baixo ao DHT11 com atraso de 18 µs para garantir a detecção do DHT. E então o arduino puxa a linha de dados e espera 20-40 µs pela resposta do DHT. Uma vez que o DHT detecta o sinal de início, ele enviará um sinal de resposta de baixo nível de tensão para o arduino com atraso de tempo de cerca de 80 µs. E então o controlador DHT puxa a linha de dados e a mantém por 80 µs para o DHT organizar o envio de dados.
Quando o barramento de dados está em nível de baixa tensão, significa que o DHT11 está enviando um sinal de resposta. Uma vez feito isso, o DHT novamente faz o pull-up da linha de dados por 80 µs para preparar a transmissão de dados.
O formato de dados enviado pelo DHT para o arduino para cada bit começa com nível de baixa tensão de 50 µs e o comprimento do sinal de nível de alta tensão determina se o bit de dados é “0” ou “1”.
Uma coisa importante é certificar-se de puxar o valor do resistor porque se estivermos colocando o sensor DHT a uma distância de <20 metros, o resistor de puxar 5k é recomendado. Se colocar o DHT a mais de 20 metros, use o resistor de pull de valor apropriado.
Diagrama de Circuito e Explicação
Uma tela de cristal líquido é usada para exibir a temperatura e a umidade diretamente conectada ao Arduino no modo de 4 bits. Os pinos do LCD, a saber RS, EN, D4, D5, D6 e D7, são conectados ao pino digital arduino número 2, 3, 4, 5, 6 e 7. E um módulo de sensor DHT11 também é conectado ao pino digital 12 do arduino com um Resistor pull-up de 5k.
Descrição de Programação
Na programação, usaremos bibliotecas pré-construídas para sensor DHT11 e módulo de display LCD.
Em seguida, definimos os pinos para o sensor LCD e DHT e inicializamos todas as coisas na configuração. Então, em um loop, usando a função dht lê o sensor DHT e, em seguida, usando algumas funções dht, extraímos a umidade e a temperatura e as exibimos no LCD.
Aqui, o símbolo de grau é criado usando o método de caractere personalizado.