Monitorización en tiempo real de temperatura y humedad vía web en Raspberry Pi 4
En este proyecto, una Raspberry Pi 4 aloja un ligero servidor web Bottle que lee datos de un sensor de temperatura-humedad Adafruit DHT11 y devuelve los valores en tiempo real. Un LED RGB montado en la placa se enciende en un color distinto para cada solicitud, dando retroalimentación visual instantánea de que el servidor funciona.
Cómo funciona
- Navegue a
https://dirección-pi:6789/para activar la ruta raíz. El LED rojo se enciende mientras carga la página. - Tras cargar, puede pulsar uno de tres botones:
- Azul – muestra la humedad actual y pone el LED azul.
- Verde – muestra la temperatura actual y pone el LED verde.
- Rojo (Stop) – borra la pantalla, restablece el LED a rojo y detiene actualizaciones continuas.
- Cada botón envía una petición GET cada segundo hasta que se pulsa stop o se cierra la ventana del navegador.
- Detener el servidor con
Ctrl+Capaga todos los LEDs y limpia los pines GPIO.
Esquema de hardware
Código del servidor
from bottle import route, run, template, request
import RPi.GPIO as GPIO
import Adafruit_DHT
# Configurar modo GPIO
GPIO.setmode(GPIO.BCM)
# Configuración del sensor – DHT11 conectado a GPIO 25
sensor_type = Adafruit_DHT.DHT11
sensor_pin = 25
GPIO.setup(sensor_pin, GPIO.IN)
# Pines del LED RGB
GPIO.setup(14, GPIO.OUT) # Rojo
GPIO.setup(15, GPIO.OUT) # Verde
GPIO.setup(18, GPIO.OUT) # Azul
# Función auxiliar para apagar todos los LEDs
def set_leds_off():
GPIO.output(14, GPIO.LOW)
GPIO.output(15, GPIO.LOW)
GPIO.output(18, GPIO.LOW)
# Rutas
@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')
# Limpieza al salir
set_leds_off()
GPIO.cleanup()
Fuente: Get Humidity/Temperature from Web
Proceso de manufactura
- El termómetro: del termoscopio de Galileo a los sensores digitales modernos
- Monitor de temperatura y humedad en red con Raspberry Pi – Guía DIY completa
- Monitor de temperatura y humedad en casa con Raspberry Pi y panel web – Seguimiento remoto en tiempo real
- Monitorización fluida de temperatura y humedad en Raspberry Pi con EzTemp
- Tutorial IoT para principiantes: Streaming de datos de temperatura desde Raspberry Pi
- Cómo conectar un sensor de temperatura DS1820 One‑Wire a Raspberry Pi usando GPIO
- Construya una Estación Meteorológica de Laboratorio Habilitada para Red con Raspberry Pi
- Convierte tu Raspberry Pi 4 en un servidor web y crea tu propio sitio
- De datos a gráficos: Construcción de un panel IoT Flask‑SQLite con Raspberry Pi
- Maximiza el ROI de tu Inversión en Generación de Leads
- Nueva tecnología wearable camufla a usuarios de sensores térmicos, adaptándose a la temperatura en minutos