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.
Você pode adquirir os componentes eletrônicos desse projeto além de outros na loja FILIPEFLOP.
Quer aprender ainda mais sobre Raspberry Pi? Acesse nossos outros conteúdos aqui :)