Monitoramento em Tempo Real de Temperatura e Umidade via Web no Raspberry Pi 4
Neste projeto, um Raspberry Pi 4 hospeda um servidor web leve Bottle que lê dados de um sensor de temperatura-umidade Adafruit DHT11 e retorna os valores em tempo real. Um LED RGB montado na placa acende em cores distintas para cada requisição, fornecendo feedback visual instantâneo de que o servidor está funcionando.
Como funciona
- Navegue para
https://endereço-pi:6789/para disparar a rota raiz. O LED vermelho acende enquanto a página carrega. - Após o carregamento, você pode pressionar um dos três botões:
- Azul — exibe a umidade atual e acende o LED azul.
- Verde — exibe a temperatura atual e acende o LED verde.
- Vermelho (Parar) — limpa o display, reseta o LED para vermelho e para atualizações contínuas.
- Cada botão envia uma requisição GET a cada segundo até o botão de parada ser pressionado ou a janela do navegador fechada.
- Parar o servidor com
Ctrl+Cdesliga todos os LEDs e limpa os pinos GPIO.
Esquemático de Hardware
Código do Servidor
from bottle import route, run, template, request import RPi.GPIO as GPIO import Adafruit_DHT # Configurar modo GPIO GPIO.setmode(GPIO.BCM) # Configuração do sensor – DHT11 conectado ao GPIO 25 sensor_type = Adafruit_DHT.DHT11 sensor_pin = 25 GPIO.setup(sensor_pin, GPIO.IN) # Pinos do LED RGB GPIO.setup(14, GPIO.OUT) # Vermelho GPIO.setup(15, GPIO.OUT) # Verde GPIO.setup(18, GPIO.OUT) # Azul # Função auxiliar para desligar todos LEDs def set_leds_off(): GPIO.output(14, GPIO.LOW) GPIO.output(15, GPIO.LOW) GPIO.output(18, GPIO.LOW) # Rotas @route('/') def index(): set_leds_off() GPIO.output(14, GPIO.HIGH) return template('index.html') @route('/humidity') def humidity(): set_leds_off() GPIO.output(18, GPIO.HIGH) humidity, temperature = Adafruit_DHT.read(sensor_type, sensor_pin) return {'humidity': humidity} @route('/temperature') def temperature_route(): set_leds_off() GPIO.output(15, GPIO.HIGH) humidity, temperature = Adafruit_DHT.read(sensor_type, sensor_pin) return {'temperature': temperature} @route('/stop') def stop(): set_leds_off() GPIO.output(14, GPIO.HIGH) return {'stop': 'No further updates.'} # Iniciar servidor Bottle run(host='0.0.0.0', port='6789') # Limpeza na saída set_leds_off() GPIO.cleanup()
Fonte: Get Humidity/Temperature from Web
Processo de manufatura
- Monitor de Temperatura e Umidade em Rede com Raspberry Pi – Guia DIY de Configuração
- Monitor de Temperatura e Umidade Residencial com Raspberry Pi e Dashboard Web – Rastreamento Remoto em Tempo Real
- Monitoramento Contínuo de Temperatura e Umidade no Raspberry Pi com EzTemp
- Tutorial IoT Iniciante: Streaming de Dados de Temperatura de um Raspberry Pi
- Como Conectar Sensor de Temperatura DS1820 One‑Wire ao Raspberry Pi via GPIO
- Construa uma Estação Meteorológica de Laboratório Habilitada para Rede com Raspberry Pi
- Transforme seu Raspberry Pi 4 em um Servidor Web e Crie Seu Próprio Site
- De Dados a Gráfico: Construindo um Dashboard IoT Flask‑SQLite com Raspberry Pi
- Maximize o ROI do Seu Investimento em Geração de Leads
- Nova Tecnologia Vestível Camufla Usuários de Sensores Térmicos, Adaptando-se à Temperatura em Minutos