logomarca lojamundi
Contatos
61 99137 5620

11 2666 4242
21 2169 8855
31 4042 1799
Outros Telefones
logomarca lojamundi
botão minha contabotão entrarbotão cadastro
botão servicosbotão blogbotão contato

Interface do sensor de temperatura e umidade DHT11 com Raspberry Pi
Interface-do-sensor-de-temperatura-e-umidade-DHT11-com-Raspberry-Piblog_image_banner

Interface do sensor de temperatura e umidade DHT11 com Raspberry Pi

Temperatura e umidade são os parâmetros mais comuns monitorados em qualquer ambiente. Existem muitos sensores para escolher para medir temperatura e umidade, mas o mais usado é o DHT11 devido à sua faixa de medição decente e precisão.

Ele também funciona com comunicação de um pino e, portanto, é muito fácil de fazer interface com microcontroladores ou microprocessadores. Neste tutorial, vamos aprender como fazer a interface do popular sensor DHT11 com Raspberry Pi e exibir o valor de temperatura e umidade em uma tela LCD 16x2.

Já o usamos para construir a estação meteorológica IoT Raspberry Pi.

Visão geral do sensor DHT11:

O sensor DHT11 pode medir umidade relativa e temperatura com as seguintes especificações

Temperature Range: 0-50°C

Temperature Accuracy: ±2 °C

Humidity Range: 20-90% RH

Humidity Accuracy: ±5 %

O sensor DHT11 está disponível em forma de módulo ou em forma de sensor. Neste tutorial, estamos usando a forma de módulo do sensor, a única diferença entre os dois é que na forma de módulo o sensor tem um capacitor de filtragem e um resistor pull up conectado ao pino de saída do sensor.

Portanto, se você estiver usando o sensor sozinho, certifique-se de adicionar esses dois componentes. Aprenda também a interface do DHT11 com o Arduino.

Como funciona o sensor DHT11:

O sensor DHT11 vem com um invólucro de cor azul ou branco. Dentro desta caixa, temos dois componentes importantes que nos ajudam a sentir a umidade relativa e a temperatura. O primeiro componente é um par de eletrodos; a resistência elétrica entre esses dois eletrodos é decidida por um substrato de retenção de umidade.

Portanto, a resistência medida é inversamente proporcional à umidade relativa do ambiente. Quanto maior a umidade relativa menor será o valor da resistência e vice-versa. Observe também que a umidade relativa é diferente da umidade real. A umidade relativa mede o conteúdo de água no ar em relação à temperatura do ar.

O outro componente é um termistor NTC montado em superfície. O termo NTC significa coeficiente de temperatura negativo, para aumento na temperatura o valor da resistência diminuirá

Pré-requisitos:

Presume-se que o seu Raspberry Pi já tenha um sistema operacional atualizado e seja capaz de se conectar à Internet. Caso contrário, siga o tutorial Introdução ao Raspberry Pi antes de continuar.

Também presume-se que você tenha acesso ao seu pi por meio de janelas de terminal ou por meio de outro aplicativo por meio do qual você pode escrever e executar programas em Python e usar a janela de terminal.

Instalando a biblioteca Adafruit LCD no Raspberry Pi:

O valor da temperatura e umidade será exibido em um display LCD 16 * 2. Adafruit nos fornece uma biblioteca para operar facilmente este LCD no modo de 4 bits, então vamos adicioná-lo ao nosso Raspberry Pi abrindo a janela do terminal Pi e seguindo as etapas abaixo.

Etapa 1: instale o git em seu Raspberry Pi usando a linha abaixo. O Git permite clonar qualquer arquivo de projeto no Github e usá-lo no seu Raspberry pi. Nossa biblioteca está no Github, então temos que instalar o git para baixar essa biblioteca no pi.

apt-get install git

Etapa 2: a linha a seguir leva à página do GitHub onde a biblioteca está presente, basta executar a linha para clonar o arquivo do projeto no diretório inicial do Pi

git clone git://github.com/adafruit/Adafruit_Python_CharLCD

Passo 3: Use o comando abaixo para mudar a linha de diretório, para entrar no arquivo de projeto que acabamos de baixar. A linha de comando é fornecida abaixo

cd Adafruit_Python_CharLCD

Passo 4: Dentro do diretório terá um arquivo chamado setup.py, temos que instalá-lo, para instalar a biblioteca. Use o seguinte código para instalar a biblioteca

sudo python setup.py install

É isso que a biblioteca deveria ter sido instalada com sucesso. Agora, da mesma forma, vamos prosseguir com a instalação da biblioteca DHT, que também é da Adafruit.

Instalando a biblioteca Adafruit DHT11 no Raspberry Pi:

O sensor DHT11 funciona com o princípio do sistema de um fio. O valor de temperatura e umidade é detectado pelo sensor e, em seguida, transmitido através do pino de saída como dados seriais. Podemos então ler esses dados usando o pino de E / S em um MCU / MPU.

Para entender como esses valores são lidos, você teria que ler a ficha técnica do sensor DHT11, mas por enquanto, para simplificar, usaremos uma biblioteca para conversar com o sensor DHT11.

A biblioteca DHT11 fornecida pela Adafruit pode ser usada para DHT11, DHT22 e outros sensores de temperatura de um fio também. O procedimento para instalar a biblioteca DHT11 também é semelhante ao seguido para instalar a biblioteca LCD.

A única linha que mudaria é o link da página GitHub na qual a biblioteca DHT é salva.

Insira as quatro linhas de comando uma por uma no terminal para instalar a biblioteca DHT

git clone https://github.com/adafruit/Adafruit_Python_DHT.git

cd Adafruit_Python_DHT

sudo apt-get install build-essential python-dev

sudo python setup.py install

Assim que terminar, você terá ambas as bibliotecas instaladas com êxito em nosso Raspberry Pi. Agora podemos prosseguir com a conexão do hardware.

Diagrama de circuito:

O diagrama de circuito completo Interfaceando DH11 com Raspberry pi é dado abaixo, ele foi construído usando Fritzing. Siga as conexões e faça o circuito

Ambos os sensores LCD e DHT11 funcionam com alimentação de + 5V, então usamos os pinos de 5V no Raspberry Pi para alimentar ambos. Um resistor pull up de valor 1k é usado no pino de saída do sensor DHT11, se você estiver usando um módulo, pode evitar esse resistor.

Um potenciômetro de corte de 10k é adicionado ao pino V do LCD para controlar o nível de contraste do LCD. Fora isso, todas as conexões são bastante diretas. Mas anote quais pinos GPIO você está usando para conectar os pinos, pois nós iremos precisar em nosso programa. O gráfico abaixo deve permitir que você descubra os números dos pinos GPIO.

Use o gráfico e faça suas conexões de acordo com o diagrama de circuito. Usei uma placa de ensaio e fios de jumper para fazer minhas conexões. Como usei o módulo DHT11, conectei-o diretamente ao Raspberry Pi. Meu hardware era assim abaixo

Programação Python para sensor DHT11:

Temos que escrever um programa para ler o valor de temperatura e umidade do sensor DHT11 e depois exibir o mesmo no LCD. Uma vez que baixamos bibliotecas para os sensores LCD e DHT11, o código deve ser bastante simples.

O programa completo do python pode ser encontrado no final desta página, mas você pode ler mais para entender como o programa funciona.

Temos que importar a biblioteca LCD e a biblioteca DHT11 em nosso programa para usar as funções relacionadas a ela. Como já os baixamos e instalamos em nosso Pi, podemos simplesmente usar as seguintes linhas para importá-los. Também importamos a biblioteca de tempo para usar a função de atraso.

import time #import time for creating delay

import Adafruit_CharLCD as LCD #Import LCD library

import Adafruit_DHT #Import DHT Library for sensor

A seguir, temos que especificar a quais pinos o sensor está conectado e que tipo de sensor de temperatura é usado. A variável sensor_name é atribuída a Adafruit_DHT.DHT11, pois estamos usando o sensor DHT11 aqui. O pino de saída do sensor é conectado ao GPIO 17 do Raspberry Pi e, portanto, atribuímos 17 à variável sensor_pin como mostrado abaixo.


sensor_name = Adafruit_DHT.DHT11 #we are using the DHT11 sensor

sensor_pin = 17 #The sensor is connected to GPIO17 on Pi

Da mesma forma, também temos que definir a quais pinos GPIO o LCD está conectado. Aqui, estamos usando o LCD no modo de 4 bits, portanto, teremos quatro pinos de dados e dois pinos de controle para conectar aos pinos GPIO do pi. Além disso, você pode conectar o pino da luz de fundo a um pino GPIO se quisermos controlar a luz de fundo também. Mas, por enquanto, não estou usando isso, então atribuí 0 a ele.


lcd_rs        = 7  #RS of LCD is connected to GPIO 7 on PI

lcd_en        = 8  #EN of LCD is connected to GPIO 8 on PI

lcd_d4        = 25 #D4 of LCD is connected to GPIO 25 on PI

lcd_d5        = 24 #D5 of LCD is connected to GPIO 24 on PI

lcd_d6        = 23 #D6 of LCD is connected to GPIO 23 on PI

lcd_d7        = 18 #D7 of LCD is connected to GPIO 18 on PI

lcd_backlight =  0  #LED is not connected so we assign to 0

Você também pode conectar o LCD no modo de 8 bits com Raspberry pi, mas os pinos livres serão reduzidos.


A biblioteca LCD da Adafruit que baixamos pode ser usada para todos os tipos de monitores LCD característicos. Aqui em nosso projeto, estamos usando um display LCD de 16 * 2, portanto, estamos mencionando o número de linhas e colunas para uma variável, conforme mostrado abaixo.

lcd_columns = 16 #for 16*2 LCD

lcd_rows    = 2 #for 16*2 LCD

Agora que declaramos os pinos do LCD e o número de linhas e colunas do LCD, podemos inicializar o display LCD usando a linha a seguir, que envia todas as informações necessárias para a biblioteca.


lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7,

lcd_columns, lcd_rows, lcd_backlight)   #Send all the pin details to library

Para iniciar o programa, exibimos uma pequena mensagem de introdução usando a função lcd.message () e damos um atraso de 2 segundos para tornar a mensagem legível. Para imprimir na 2ª linha, o comando \ n pode ser usado conforme mostrado abaixo


lcd.message('DHT11 with Pi \n -CircuitDigest') #Give a intro message

time.sleep(2) #wait for 2 secs

Finalmente, dentro de nosso loop while devemos ler o valor de temperatura e umidade do sensor e exibi-lo na tela LCD a cada 2 segundos. O programa completo dentro do loop while é mostrado abaixo


while 1: #Infinite Loop

umidade, temperatura = Adafruit_DHT.read_retry (sensor_name, sensor_pin) # leia do sensor e salve os respectivos valores em temperatura e umidade varibale


lcd.clear() #Clear the LCD screen

    lcd.message ('Temp = %.1f C' % temperature) # Display the value of temperature

    lcd.message ('\nHum = %.1f %%' % humidity)  #Display the value of Humidity



    time.sleep(2) #Wait for 2 sec then update the values

Podemos facilmente obter o valor de temperatura e umidade do sensor usando esta linha única abaixo. Como você pode ver, ele retorna dois valores que são armazenados nas variáveis umidade e temperatura. Os detalhes sensor_name e sensor_pin são passados como parâmetros; esses valores foram atualizados no início do programa


umidade, temperatura = Adafruit_DHT.read_retry (sensor_name, sensor_pin)


Para exibir um nome de variável na tela LCD, podemos usar os identificadores como & d,% c etc. Aqui, como estamos exibindo um número de ponto flutuante com apenas um dígito após o ponto decimal, usamos o identificador% .1f para exibir o valor em a temperatura e umidade variáveis

lcd.message ('Temp = %.1f C' % temperature)

lcd.message ('\nHum = %.1f %%' % humidity)

Medindo umidade e temperatura usando Raspberry Pi:

Faça as conexões de acordo com o diagrama de circuito e instale as bibliotecas necessárias. Em seguida, execute o programa python fornecido no final desta página. Seu LCD deve exibir uma mensagem de introdução e, em seguida, exibir o valor atual de temperatura e umidade, conforme mostrado na imagem abaixo.

Se você não encontrar nada sendo exibido no LCD, verifique se a janela do shell python está exibindo algum erro, se nenhum erro for exibido, verifique suas conexões mais uma vez e ajuste o potenciômetro para variar o nível de contraste do LCD e verifique se há algo ligado a tela.

Espero que você tenha entendido o projeto e gostado de construí-lo. Se você encontrou algum problema para fazer isso, informe na seção de comentários ou use o fórum para obter ajuda técnica. Vou tentar o meu melhor para responder a todos os comentários.

Você também pode verificar nossos outros projetos usando DHT11 com outro microcontrolador.

#Program to read the values of Temp and Hum from the DHT11 sensor and display them on the LCD

#Website: www.circuitdigest.com

import time #import time for creating delay 

import Adafruit_CharLCD as LCD #Import LCD library 

import Adafruit_DHT #Import DHT Library for sensor

sensor_name = Adafruit_DHT.DHT11 #we are using the DHT11 sensor

sensor_pin = 17 #The sensor is connected to GPIO17 on Pi

lcd_rs        = 7  #RS of LCD is connected to GPIO 7 on PI

lcd_en        = 8  #EN of LCD is connected to GPIO 8 on PI 

lcd_d4        = 25 #D4 of LCD is connected to GPIO 25 on PI

lcd_d5        = 24 #D5 of LCD is connected to GPIO 24 on PI

lcd_d6        = 23 #D6 of LCD is connected to GPIO 23 on PI

lcd_d7        = 18 #D7 of LCD is connected to GPIO 18 on PI

lcd_backlight =  0  #LED is not connected so we assign to 0

lcd_columns = 16 #for 16*2 LCD

lcd_rows    = 2 #for 16*2 LCD

lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, 

                           lcd_columns, lcd_rows, lcd_backlight)   #Send all the pin details to library 

lcd.message('DHT11 with Pi \n -CircuitDigest') #Give a intro message

time.sleep(2) #wait for 2 secs

while 1: #Infinite Loop

    

    humidity, temperature = Adafruit_DHT.read_retry(sensor_name, sensor_pin) #read from sensor and save respective values in temperature and humidity varibale  

    lcd.clear() #Clear the LCD screen

    lcd.message ('Temp = %.1f C' % temperature) # Display the value of temperature

    lcd.message ('\nHum = %.1f %%' % humidity)  #Display the value of Humidity 

    time.sleep(2) #Wait for 2 sec then update the values

Divisor Triangular
POR QUE A LOJAMUNDI É CONFIÁVEL?
selo de verificação reclame aqui da lojamundiselo google site seguroselo reclame aqui com link de acessoselo https seguroselo let's encrypt

ENTRE EM CONTATO COM A LOJAMUNDI.

Assine nossa Newsletter! É gratuito!

Cadastre seu nome e email para receber novidades e materiais gratuitos da Lojamundi.