Neste tutorial iremos mostrar como fazer o monitoramento de temperatura e umidade de um determinado ambiente utilizando o sensor de temperatura DHT11 juntamente com Raspberry Pi e utilizando a linguagem Python. Você verá que é muito fácil juntar o DHT11 e Raspberry Pi no seu projeto.

Sensor de umidade e temperatura DHT11
O sensor DHT11 é capaz de medir umidade e temperatura e utiliza o protocolo 1-Wire para comunicação com processadores utilizando apenas um pino. Veja a seguir as características deste sensor:
- Alimentação : 3 à 5,5 V
- Faixa de leitura – Umidade : 20 à 80%
- Precisão umidade : 5%
- Faixa de leitura – Temperatura : 0 – 50 ºC
- Precisão temperatura : +/- 2 ºC
Veja a seguir a pinagem do DHT11. note que temos apenas um pino de dados e o pino 3 não é utilizado.

Conexão do DHT11 e Raspberry Pi
Para alimentação do sensor, vamos utilizar os 3.3V da placa, e como pino de entrada no Raspberry o pino 22 (GPIO 25).
Não se esqueça que os pinos do Raspberry utilizam nível de tensão de 3.3V, portanto se você for alimentar o DHT11 com uma fonte externa (maior do que 3.3V), por exemplo, é necessário um divisor de tensão para não danificar a GPIO do Raspberry. Utilize um resistor de 4,7 K como pull-up para o pino de dados do sensor.

Biblioteca do DHT11 para Python
A Adafruit desenvolveu uma biblioteca para utilização deste sensor na linguagem Python. Vamos baixar e instalar essa biblioteca da Adafruit diretamente no Raspbian. Esta biblioteca serve para o DHT11 e também para o Sensor DHT22, uma versão mais precisa do sensor.
Com o Raspberry conectado à internet, abra o LX Terminal e digite os seguintes comandos:
sudo apt-get update sudo apt-get install git build-essential python-dev git clone https://github.com/adafruit/Adafruit_Python_DHT.git cd Adafruit_Python_DHT sudo python setup.py install
O tempo de download e instalação dos pacotes e biblioteca pode variar, dependendo da configuração do Raspbian e da sua conexão à internet.
Leitura das informações de temperatura e umidade
Para programar em python é possível utilizar uma aplicação já presente no sistema Raspbian chamada IDLE. Clique em Menu > Programming > Python 3 (IDLE). Em seguida, selecione FILE, depois NEW WINDOW. Será aberta uma nova janela, onde você deve digitar ou copiar o programa abaixo:
# Programa : Sensor de temperatura DHT11 com Raspberry Pi B+
# Autor : FILIPEFLOP
# Carrega as bibliotecas
import Adafruit_DHT
import RPi.GPIO as GPIO
import time
# Define o tipo de sensor
sensor = Adafruit_DHT.DHT11
#sensor = Adafruit_DHT.DHT22
GPIO.setmode(GPIO.BOARD)
# Define a GPIO conectada ao pino de dados do sensor
pino_sensor = 25
# Informacoes iniciais
print ("*** Lendo os valores de temperatura e umidade");
while(1):
# Efetua a leitura do sensor
umid, temp = Adafruit_DHT.read_retry(sensor, pino_sensor);
# Caso leitura esteja ok, mostra os valores na tela
if umid is not None and temp is not None:
print ("Temperatura = {0:0.1f} Umidade = {1:0.1f}n").format(temp, umid);
print ("Aguarda 5 segundos para efetuar nova leitura...n");
time.sleep(5)
else:
# Mensagem de erro de comunicacao com o sensor
print("Falha ao ler dados do DHT11 !!!")
No início do programa são carregadas as bibliotecas Adafruit_DHT, para leitura do sensor de temperatura, e também as bibliotecas GPIO e timer.
Execute o programa pressionando a tecla F5 e uma nova janela será aberta, apresentando os dados de temperatura e umidade em intervalos de 5 segundos:

Agora você já sabe como obter dados de temperatura e umidade utilizando sensor DHT11 e Raspberry Pi! Aproveite a conectividade WiFi e Bluetooth da Raspberry Pi e vá além, enviando os dados remotamente para uma página web ou exibindo os dados em um aplicativo de celular.
Quer aprender ainda mais sobre Raspberry Pi? Acesse nossos outros conteúdos aqui :)







