Sensor CO2 SCD41 en Raspberry Pi + Home Assistant: tutorial con código
Medir CO2, temperatura y humedad con SCD40/SCD41 en Raspberry Pi 4 o 5, publicación MQTT y descubrimiento en Home Assistant. Python y systemd.
Ilustración generada con IA
Medir CO2, temperatura y humedad con SCD40/SCD41 en Raspberry Pi 4 o 5, publicación MQTT y descubrimiento en Home Assistant. Python y systemd.
CO2 alto en una habitación indica aire poco renovado. Este tutorial convierte un Raspberry Pi y un SCD40 o SCD41 en sonda que envía datos a Home Assistant para alertas del tipo «ventila».
| SCD4x | Pi (pin físico) |
|---|---|
| VIN | 1 (3V3) |
| GND | 6 (GND) |
| SDA | 3 (GPIO2) |
| SCL | 5 (GPIO3) |
Dirección I2C 0x62. Activa I2C con raspi-config, i2cdetect -y 1 debe mostrar 62.
sudo apt update
sudo apt install -y python3-venv python3-gpiozero python3-lgpio i2c-tools
mkdir -p ~/capteurs && cd ~/capteurs
python3 -m venv --system-site-packages venv
source venv/bin/activate
pip install adafruit-circuitpython-scd4x paho-mqtt
Descarga: co2_scd41_mqtt.py — publica en robotedu/{DEVICE_ID}/state y discovery en homeassistant/sensor/.../config.
Variables: MQTT_HOST, MQTT_USER, MQTT_PASS, DEVICE_ID, INTERVAL=30.
Automatización ejemplo (adapta entity_id):
alias: Alerta CO2 salón
triggers:
- trigger: numeric_state
entity_id: sensor.raspberry_pi_scd41_pi_scd41_salon_co2
above: 1000
for: "00:05:00"
actions:
- action: notify.notify
data:
message: "CO2 por encima de 1000 ppm: ventila."
Servicio capteur-co2.service con ExecStart=.../venv/bin/python .../co2_scd41_mqtt.py, Restart=on-failure.
Sensor derivado sobre CO2 (subida rápida en 10 min) avisa antes que un umbral fijo en habitaciones pequeñas.
Alimentación 3,3 V en Pi; esperar data_ready; no pegar el sensor al Pi ni a ventana; funcionamiento continuo para autocalibración.
¿Dudas entre dos modelos o necesitas ayuda con un montaje? Escríbenos y te responderemos rápido por correo.