Aula 18: Medição de temperatura

Conforme vimos na aula anterior, é possível montar interfaces gráficas e utilizar os pinos da Raspberry Pi nos seus projetos. Nesta aula, iremos montar uma aplicação prática do uso dessas interfaces, utilizando os pinos da Raspberry Pi. Iremos medir a temperatura do ambiente e apresentar na tela utilizando o componente DHT11.

Montagem do circuito

Neste projeto, iremos utilizar o sensor de temperatura e umidade DHT11, que é compatível com Raspberry Pi e bastante fácil de usar. A fim de facilitar a nossa programação, temos que instalar a biblioteca própria do DHT11. No terminal de comandos basta utilizar o já conhecido “pip“:

sudo pip3 install Adafruit_DHT

Se quiser saber mais sobre o funcionamento do DHT11, você pode consultar o seu manual e ver exemplos da própria biblioteca.

Sensor de Umidade e Temperatura DHT11

Na conexão do sensor à placa, vamos precisar de:
1x DHT11
1x Resistor 6,8k ohm
1x Protoboard
3x Jumpers macho-fêmea

O esquema de ligação do DHT11 é o seguinte:

Programa

Neste projeto vamos utilizar um botão e um texto na interface.

from tkinter import *
import Adafruit_DHT

# Definicoes do sensor
sensor = Adafruit_DHT.DHT11
pino = 23
umidade, temperatura = Adafruit_DHT.read_retry(sensor, pino)

janela = Tk()

def mostrando():
    global temperatura
    global umidade
    umidade, temperatura = Adafruit_DHT.read_retry(sensor, pino)
    # Igual feito com o contador na aula de interface
    # Modificamos o "text" do texto para apresentar a temperatura
    texto["text"] = ("Temperatura: "+ str(temperatura) + " ºC")

## Os elementos da interface botao e texto
# Em command, passamos a funcao criada para isso
botao = Button(janela, text = "Mostra", command = mostrando)
botao.place(x = 250, y = 130)

# O texto comeca com o texto vazio
texto = Label(janela, text = "Temperatura", bg = "#B0314C", fg = "#FFFFFF")
texto.place(x = 250, y = 110)

# Titulo da janela
janela.title("Mostra a temperatura")

#cor do fundo da janela "background"
janela["bg"] = "#56A9DE"

#largura  e altura da janela
#LarguraxAltura+Dist.daEsquerda+distTopo (pixels)
janela.geometry("600x300+400+100")

janela.mainloop()

Com o sensor de temperatura, fazemos com que cada vez que seja apertado o botão “mostrar” o programa coleta a informação do DHT11 e altera a propriedade “text” do texto que foi colocado, isso muda o texto que é apresentado na tela.

Experimente colocar na tela também o valor da umidade medida pelo DHT11!