El Si7021 es un sensor digital de humedad relativa y temperatura desarrollado por Silicon Labs. Es reconocido por su precisión, bajo consumo, respuesta rápida y una comunicación totalmente digital mediante el bus I2C, lo que lo hace muy adecuado para proyectos educativos, IoT y automatización ambiental.
1. ¿Cómo funciona internamente el Si7021?
El Si7021 integra en un solo encapsulado:
a) Elemento capacitivo para medir humedad
La humedad relativa se detecta mediante un sensor capacitivo de polímero.
Cuando la humedad aumenta, el dieléctrico del polímero absorbe agua, cambiando la capacitancia.
Esa variación es convertida en una señal digital escalada internamente.
b) Termistor de banda prohibida (Bandgap)
La temperatura se mide con un sensor térmico basado en una referencia bandgap, que proporciona:
- Excelente estabilidad
- Alta precisión
- Baja deriva por temperatura
c) Conversión digital y calibración interna
El Si7021 incorpora un ADC de 12 a 14 bits y una calibración de fábrica almacenada en memoria OTP.
Esto significa que:
- No requiere calibración por parte del usuario
- Siempre entrega lecturas directas y fiables
- Las mediciones ya vienen compensadas según el fabricante
d) Comunicación por I2C
Utiliza una única dirección fija:
- 0x40
La comunicación se basa en comandos que ordenan medición de humedad, temperatura o lectura de registros internos.
2. Modos y comandos de operación
El sensor puede operar de dos maneras:
Mediciones en un solo disparo (One-shot)
✔ Mide bajo demanda
✔ Ahorra energía
✔ Recomendado para dispositivos IoT con batería
Mediciones automáticas periódicas (Autonomous Mode)
✔ El Si7021 realiza capturas periódicas
✔ Se recuperan los datos cuando se necesiten
✔ Facilita sincronización en sistemas embebidos
Tiempos típicos
- Humedad: ~12–20 ms
- Temperatura: ~10 ms
Resolución ajustable
El usuario puede escoger entre:
- Humedad: 8, 10, 11 o 12 bits
- Temperatura: 11, 12, 13 o 14 bits
Mayor resolución → más precisión y más tiempo de conversión.
3. Alcances del Si7021
✔ Medición de humedad: 0–80% HR (preciso), hasta 100% HR sin condensación
✔ Medición de temperatura: –40 ºC a 85 ºC
✔ Alta precisión:
- Temperatura: ±0.4 ºC
- Humedad: ±3% HR
✔ Gran estabilidad a largo plazo del polímero
✔ Bajo consumo, ideal para baterías
✔ Autocalibración interna, detección de casos fuera de rango
✔ No requiere calibración manual
✔ Factor de forma compacto
4. Limitaciones del sensor
⚠ Se degrada si se expone a sustancias químicas volátiles (disolventes, alcohol, acetona).
⚠ No soporta condensación prolongada; lecturas inestables si se forma agua sobre el sensor.
⚠ Lenta recuperación tras exposición al 100% de humedad.
⚠ La humedad depende de la temperatura, por lo que el sensor debe estar bien ventilado.
⚠ No soporta temperaturas de soldadura prolongadas; evitar contacto directo con aire caliente.
5. Conexión con Arduino
| Si7021 | Arduino |
|---|---|
| VIN | 3.3 V o 5 V (según módulo) |
| GND | GND |
| SDA | A4 (Arduino UNO) |
| SCL | A5 (Arduino UNO) |
6. 3 aplicaciones reales del Si7021 con Arduino
1. Estación meteorológica educativa
El Si7021 se usa para:
- Medir humedad relativa exterior
- Registrar temperatura diaria
- Enviar datos a una pantalla LCD o a la nube vía WiFi
Es ideal por su precisión y baja deriva en ambientes cambiantes.
2. Sistemas HVAC o control ambiental
Con Arduino, el Si7021 puede ayudar a controlar:
- Ventilación automática
- Deshumidificadores
- Aire acondicionado
El sistema analiza las lecturas y activa actuadores según umbrales configurables.
3. Monitoreo ambiental en invernaderos o viveros
Usos típicos:
- Mantener humedad óptima para germinación
- Activar sistemas de riego por nebulización
- Registrar condiciones para crecimiento de plantas
Su estabilidad lo hace ideal para mediciones continuas.
7. Tres fuentes confiables de consulta
- Datasheet oficial del Si7021 – Silicon Labs
Documento técnico completo con especificaciones, curvas y comandos I2C. - Application Notes de Sensirion/Silicon Labs sobre sensores capacitivos
Profundizan en química del polímero y efectos ambientales. - Repositorio de bibliotecas Arduino para Si7021 (Adafruit / SparkFun)
Contienen ejemplos y documentación práctica.
8. Prompt recomendado para que el lector genere su propio código con IA
Puedes poner este recuadro tal cual en tu sitio:
Quiero que me ayudes a generar un código en Arduino para usar el sensor Si7021 por I2C.
El programa debe incluir:
- Inicialización del bus I2C.
- Lectura de temperatura y humedad con explicación línea por línea.
- Manejo de errores si el sensor no responde a la dirección 0x40.
- Conversión a unidades estándar (°C y %HR).
- Impresión de datos en Serial Monitor con formato claro.
También quiero aprender a:
- Cambiar la resolución del sensor.
- Ajustar el tiempo de muestreo.
- Convertir el código para un ESP32 o Raspberry Pi Pico.
Genera el código de forma modular, usando funciones separadas para medir humedad y temperatura.
