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 !