Como ligar o sensor de temperatura DHT22 com Raspberry Pi
No último artigo eu falei sobre o sensor de temperatura DHT22 e mostrei como ligar esse sensor ao Arduino. No artigo de hoje, vou mostrar como utilizar o DHT22 com o Raspberry Pi B+, e você pode usar o mesmo procedimento para outros modelos da placa Raspberry, como a Pi 2 Pi 3, Pi Zero W, etc.
Se você ainda não instalou o Raspbian ou não está familiarizado com o Raspberry Pi B+, recomendo a leitura do artigo Raspberry Pi : Instale o Raspbian e crie seu primeiro programa em Python, onde eu mostro como instalar o Raspbian, informações sobre a GPIO e como criar um programa básico utilizando Python.
Circuito DHT22 com Raspberry Pi
No nosso circuito vamos utilizar um botão (push-button) para enviar as informações de temperatura e umidade para a tela do Raspbian. Utilizaremos alimentação de 3.3V tanto para o DHT22 como para o botão.
Isso é importante pois poderíamos, por exemplo, alimentar o DHT22 com os 5V da GPIO, mas as portas do Raspberry trabalham com nível de sinal de 3.3V, e com isso corremos o risco de danificar as portas da placa. Assim, as portas de ENTRADA, que são os pinos 16 (sensor) e 40 (botão), utilizarão 3.3V.
O resistor no pino de dados do DHT22 é de 10K, e no push-button utilizamos um de 330 ohms.
Instalação da biblioteca do DHT22
Para o programa em Python vamos utilizar a biblioteca da Adafruit, baixando e instalando a biblioteca diretamente no Raspbian.
Certifique-se de que o Raspberry está conectado à internet, abra o LX Terminal e digite o seguinte comando:
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
Em seguida, entre na pasta Adafruit_Python_DHT :
cd Adafruit_Python_DHT
Antes de instalar a biblioteca, utilize os comandos abaixo para atualizar o Raspbian e baixar o python-dev para o correto funcionamento da biblioteca:
sudo apt-get update sudo apt-get install build-essential python-dev
Instale a biblioteca utilizando o seguinte comando :
sudo python setup.py install
O processo de download e instalação da biblioteca pode demorar alguns minutos, dependendo da velocidade da conexão à internet. Após esse procedimento, a biblioteca estará instalada e pronta para uso.
Enviando informações do DHT22 para o Raspbian
Clique no ícone IDLE na tela principal do Raspbian. Na interface de programação do Python, selecione FILE, depois NEW WINDOW. Na nova tela, digite o programa abaixo :
# Programa : Raspberry B+ e sensor DHT22 # Autor : Arduino e Cia # Carrega as bibliotecas import Adafruit_DHT import RPi.GPIO as GPIO # 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 = 23 # Define o pino conectado ao push-button GPIO.setup(40, GPIO.IN) # Informacoes iniciais print ("Pressione o botao para obter a temperatura..."); while(1): # Verifica se o botao foi pressionado if GPIO.input(40) == True: # 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 ("Temp = {0:0.1f} Umidade = {1:0.1f}n").format(temp, umid); print ("Aguarde 2 segundos para efetuar a leitura novamenten"); else: # Mensagem de erro de comunicacao com o sensor print("Falha ao ler dados do sensor !!!")
No início do programa são carregadas as bibliotecas Adafruit_DHT, para uso do sensor de temperatura, e também a biblioteca.GPIO. Definimos que o sensor será ligado à GPIO 23 (pino 16), e o push-button ao pino 40 (GPIO 21), sendo que este último será uma porta de ENTRADA.
O programa verifica se o botão foi pressionado (TRUE), e em caso positivo efetua uma leitura do sensor e mostra os dados em uma nova janela :
Você pode melhorar esse projeto implementando a leitura dos dados em determinados intervalos, e enviando essess dados para um display LCD. Utilize as informações do post Como ligar um display LCD 16×2 ao Raspbeery Pi .
Clique aqui para ver outros artigos sobre Raspberry Pi aqui no Arduino e Cia !
Muito bom o post preciso montar um projeto parecido com esse mas não vai ter lcd, será monitorado por um servidor zabbix.
Boa noite, estou fazendo tcc usando arduino e zabbix, onde no arduino tem um pluviometro conectado que possui um reed switch (interruptor liga e desliga quando começa a chover), assim executando uma trigger no zabbix enviando um email e SMS. mas não esta funcionando pois o zabbix esta virtualizado. Então pensei, se o zabbix estiver no raspbeery poderia funcionar, alguem sabe algo a respeito ?
Boa tarde Patrick,
Nunca utilizei o Raspberry nessa configuração, mas achei esses dois artigos falando sobre a instalação do Zabbix no Raspberry Pi:
http://spinola.net.br/blog/?p=405
http://www.helviojunior.com.br/it/monitoramento/zabbix/instalando-zabbix-em-raspberry-pi/
Espero que ajude.
Abraço!
Boa tarde.
Você sabe me dizer se dá pra usar o sensor supersônico no lugar do DHT22?
Oi Suellen,
Eu ainda não tenho um post sobre isso, mas creio que esse daqui pode te ajudar:
https://www.modmypi.com/blog/hc-sr04-ultrasonic-range-sensor-on-the-raspberry-pi
Abraço!
Boa noite, como fazer isso utilizando o Windows 10 iot Core?
É possível fazer a ligação entre o dht 22 e o Pi sem o resistor?
Acontece esse erro e nao consigo dar sequencia. Instalado todos os comando conforme solicitado anteriormente…
Traceback (most recent call last):
File "/home/pi/Giovane/PROGRAMAS/Teste1.py", line 6, in
import Adafruit_DHT
ImportError: No module named 'Adafruit_DHT'
Cara, no meu tambem deu isso. Essa biblioteca e para o python2 nao para o python 3. Muda so o IDLE.
Eu tive o mesmo problema e acabei adicionando estas linhas ao codigo:
import sys
sys.path.append('/home/pi/Documents/python/Adafruit_Python_DHT')
Este path eh o local onde esta a biblioteca Adafruit_DHT
Tive o mesmo problema e adicionei as linhas de codigo abaixo:
import sys
sys.path.append('/home/pi/Documents/python/Adafruit_Python_DHT')
Esse eh o caminho onde se encontra a biblioteca Adafruit_DHT no meu Raspberry Pi.