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 :)