Hardware
Sensores IoT: panorama técnico por categoría y bus
Sensores IoT por categoría: ambientales (BME280, SHT40), IMU, presencia (PIR, mmWave), corriente y GPS. Buses I2C/SPI/UA
Sensores IoT: panorama técnico por categoría y bus
Actualizado: 2026-05-24
Resumen ejecutivo
- Los sensores son el punto de entrada de cualquier sistema IoT: transducen magnitudes físicas (temperatura, humedad, aceleración, presencia, corriente) en señales eléctricas digitales o analógicas que el MCU puede leer.
- Se clasifican por categoría física (ambiental, movimiento, presencia, eléctrico, posición) y por bus de datos (I2C, SPI, UART/serial, analógico/ADC, 1-Wire, SDI-12).
- Los más habituales en proyectos IoT profesionales: BME280 (temp+humedad+presión), SHT40 (temp+humedad alta precisión), MPU-6050/ICM-42688 (IMU 6/6 ejes), PIR HC-SR501 (presencia pasiva), LD2410 (mmWave presencia activa), ACS712/SCT013 (corriente AC), u-blox NEO-M9N (GNSS/GPS).
- Criterios de selección que importan: rango/resolución de medida, precisión absoluta vs relativa, corriente de operación, bus disponible en el MCU, packaging (IP67 para exterior), coste y disponibilidad en distribución europea.
- La mayoría de sensores se conectan a un ESP32 o similar en minutos; la complejidad está en la calibración, la compensación de temperatura y el diseño de PCB de baja interferencia.
Por qué el sensor es el cuello de botella real
Un sistema IoTITérminoIoT (Internet de las cosas)El IoT (Internet of Things) es la red de objetos físicos con sensores, software y conectividad que recogen e intercambian datos y actúan de forma autónoma.Ver perfil puede tener el mejor MCU, la mejor red MQTTProtocoloMQTTEl protocolo pub/sub estándar del IoTVer perfil y la plataforma cloud más sofisticada. Si el sensor mide mal, todo lo demás mide mal. Esta obviedad es frecuentemente ignorada en proyectos donde se compran sensores por precio en AliExpress sin revisar la hoja de datos.
Los tres errores más habituales:
- Confundir precisión (exactitud de la medida absoluta) con resolución (valor más pequeño que el sensor distingue). Un sensor de 16-bit puede tener resolución de 0,01 °C pero precisión de ±2 °C.
- No compensar la auto-calefacción del propio MCU sobre el sensor de temperatura cuando están en la misma PCB.
- Ignorar el drift temporal: algunos sensores de bajo coste derivan su zero offset 1-2% al año.
Esta guía organiza los sensores más usados en proyectos IoT por categoría y bus, con especificaciones reales y criterios de selección sin relleno.
Categoría 1: Sensores ambientales (temperatura, humedad, presión)
Son los más comunes en smart cities, edificios, industria y agricultura de precisión. La mayoría usa I2C o SPI.
BME280 — Bosch Sensortec
El estándar de facto para proyectos maker y mucho producto comercial. Mide temperatura, humedad relativa y presión barométrica en un chip diminuto (2,5 × 2,5 mm LGA).
| Parámetro | Valor |
|---|---|
| Temperatura | -40 a +85 °C, precisión ±1 °C, resolución 0,01 °C |
| Humedad | 0-100% RH, precisión ±3% RH, tiempo de respuesta 1 s |
| Presión | 300-1100 hPa, precisión ±1 hPa |
| Bus | I2C (0x76/0x77) o SPI |
| Corriente operación | ~3,6 µA a 1 Hz |
| Corriente sleep | ~0,1 µA |
| Precio | ~2-4 USD módulo con regulador |
El BME280BHardwareBME280Sensor de temperatura, humedad y presión barométricaVer perfil tiene compensación de temperatura interna que afecta a la lectura de humedad: siempre leer temperatura primero para la compensación correcta. Para medir temperatura de aire, distanciarlo del calor de la PCB con una cubierta perforada o ubicación separada.
SHT40 — Sensirion
Cuando la precisión absoluta importa más que el precio. Sensirion es el fabricante de referencia en sensores de humedad para aplicaciones industriales y médicas.
| Parámetro | SHT40 | BME280 |
|---|---|---|
| Temperatura precisión | ±0,2 °C (típ) | ±1 °C |
| Humedad precisión | ±1,8% RH (típ) | ±3% RH |
| Bus | I2C (0x44/0x45) | I2C / SPI |
| Corriente operación | ~0,4 µA @ 0,1 Hz | ~3,6 µA @ 1 Hz |
| Precio | ~4-8 USD | ~2-4 USD |
La ventaja del SHT40 es la función de calentamiento integrado (heater): al activarlo por 1 s a alta temperatura, evapora la condensación del sensor sin desmontarlo, crucial en entornos de alta humedad cíclica (invernaderos, cámaras frigoríficas).
DS18B20 — Maxim/Analog Devices
El sensor de temperatura por cable más instalado del mundo. Usa protocolo 1-Wire: un solo pin de datos (más GND y VCC) permite encadenar múltiples sensores en el mismo cable, cada uno con ID único de 64 bits.
Precisión ±0,5 °C entre -10 y +85 °C. Versión en encapsulado sumergible TO-92 resistente al agua, muy usado en medición de temperatura de líquidos, suelo agrícola y tuberías.
Categoría 2: IMU — Unidades de Medida Inercial
Miden aceleración lineal y velocidad angular (giróscopo). Imprescindibles en wearables, robótica, detección de caídas, vibración industrial.
MPU-6050 — InvenSense (TDK)
El IMU de 6 ejes (acelerómetro 3-ejes + giróscopo 3-ejes) más popular en maker y educación. Bus I2C o SPI, DMP interno para calcular ángulos sin ocupar CPU del MCU.
| Parámetro | Valor |
|---|---|
| Acelerómetro | ±2/4/8/16 g, 16-bit |
| Giróscopo | ±250/500/1000/2000 °/s, 16-bit |
| Bus | I2C (0x68/0x69) |
| Corriente | ~3,9 mA activo, 5 µA sleep |
| Precio | <1 USD chip, ~2 USD módulo |
Para producción comercial el MPU-6050MHardwareMPU-6050IMU de 6 ejes (acelerómetro + giroscopio)Ver perfil está descontinuado; su sucesor es el ICM-42688-P (también TDK/InvenSense), con mejor ruido, menor consumo y SPI de 24 MHz.
LSM6DSO — STMicroelectronics
La alternativa de ST, con acelerómetro + giróscopo 6-ejes más un pedómetro hardware y detección de actividad. Muy usado en wearables y aplicaciones médicas donde se busca certificación y soporte a largo plazo. Precio ~2-3 USD.
Categoría 3: Presencia y detección de movimiento
La diferencia entre PIR (sensor pasivo infrarrojo) y mmWave (radar milimétrico) es sustancial: el PIR detecta cambios térmicos de cuerpos en movimiento; el mmWave detecta presencia estática por microDoppler, incluso personas sentadas o durmiendo.
HC-SR501 — PIR genérico
El PIR de referencia en proyectos maker. Detecta movimiento en ~5-7 m, ángulo de 120°, ajuste de sensibilidad y tiempo de retención por potenciómetro. Un solo pin digital de salida (HIGH cuando detecta movimiento).
Limitaciones reales: falsos positivos por cambios de temperatura bruscos (corrientes de aire caliente, sol directo), no detecta a personas completamente quietas, tiempo de "ceguera" inicial de ~60 s tras encendido.
LD2410 / LD2410C — Hi-Link
El cambio de paradigma en detección de presencia: radar mmWave (24 GHz) que detecta microDoppler de la respiración humana. Detecta presencia estática (persona sentada, durmiendo) donde el PIR es ciego.
| Parámetro | LD2410 |
|---|---|
| Tecnología | FMCW radar 24 GHz |
| Detección movimiento | hasta 6 m |
| Detección estática | hasta 6 m (respiración) |
| Ángulo detección | ±60° horizontal, ±40° vertical |
| Bus | UART 256000 baud |
| Corriente | ~90 mA activo |
| Precio | ~5-10 USD |
El LD2410 es el sensor de presencia que ha adoptado el ecosistema Home AssistantHTérminoHome AssistantHome Assistant es una plataforma de domótica open source centrada en el control local y la privacidad, con amplio soporte de integraciones.Ver perfil/ESPHome con ESP32 en los últimos dos años. Su salida UART permite configurar zonas de detección y umbrales con comandos propietarios.
Categoría 4: Corriente eléctrica (AC y DC)
Monitorizar el consumo eléctrico de máquinas o circuitos es fundamental en industria 4.0, eficiencia energética y mantenimiento predictivoMCaso de usoMantenimiento predictivoVer perfil.
ACS712 — Allegro
Efecto Hall, no invasivo (no hay resistencia en serie). Variantes para 5 A, 20 A o 30 A. Salida analógica: 2,5 V en reposo, sensibilidad ~185/100/66 mV/A según variante. Se lee por ADC del MCU.
Precisión típica ±1,5%, offset de temperatura ±0,02%/°C. Suficiente para monitorización de consumo, no para medida de energía de precisión.
SCT-013 — YHDC
Transformador de corriente de pinza (clamp-on). Se coloca alrededor del cable sin cortar el circuito. Para corriente AC 0-100 A. Salida de corriente (convertir a tensión con resistencia de carga) o tensión directamente en variantes "000" (salida 3,3V por pinza interna).
Muy usado con ESP32HardwareESP32WiFi + BT/BLE SoC dual-core a precio de €Ver perfil + biblioteca
EmonLib para monitorización de consumo doméstico en instalaciones de 230V AC. Sin contacto directo con la línea eléctrica.
INA226 — Texas Instruments
El estándar para medida de potencia DC de alta precisión en buses digitales (I2C). Mide tensión diferencial (shunt hasta 36 V), corriente (con resistencia shunt externa) y potencia calculada. Resolución 1,25 µV en modo voltaje, 2,5 µV en modo corriente. Muy usado en sistemas de gestión de batería y monitorización de paneles solares.
Categoría 5: Posición y localización (GNSS/GPS)
u-blox NEO-M9N
El módulo GNSS de referencia para proyectos profesionales europeos (fabricante suizo). Soporta GPS, GLONASS, Galileo y BeiDou simultáneamente. Precisión horizontal típica 1,5 m CEP. Salida NMEA por UART, también UBX propietario por SPI/I2C.
Para trackers de activos de bajo coste, el NEO-M8N (generación anterior) sigue siendo la opción más equilibrada. Precio ~25-40 USD módulo completo.
Quectel L76-L
Alternativa más económica (~8-12 USD módulo). GPS + GLONASS, UART, antena activa integrada o externa. Muy usado en prototipos y series pequeñas donde el coste de BOM manda.
Buses de datos: I2C, SPI, UART y analógico
| Bus | Velocidad típica | Nº dispositivos | Pines | Uso ideal |
|---|---|---|---|---|
| **I2C** | 100 kHz / 400 kHz / 1 MHz | Hasta 127 (por dirección) | 2 (SDA + SCL) | Sensores ambientales, IMU, pantallas OLED |
| **SPI** | 1-80 MHz | Ilimitado (CS por dispositivo) | 4+ (MOSI, MISO, SCK, CS×n) | SD cards, pantallas TFT, ADCs de alta velocidad |
| **UART** | 9600-256000 baud | 1-1 (full-duplex) | 2 (TX + RX) | GPS, módems, sensores de gas, LD2410 |
| **Analógico (ADC)** | — | 1 por pin ADC | 1 | Sensores resistivos/capacitivos, potenciómetros, pH |
| **1-Wire** | ~16 kbps | Muchos en cadena | 1 | DS18B20 en red de sensores de temperatura |
I2C es el bus más cómodo para prototipado: dos cables compartidos, librerías maduras en Arduino
EmpresaArduinoPlataforma de hardware y software open source para makersVer perfil/ESP-IDF/Zephyr, y la mayoría de breakouts tienen pull-ups incluidos. La limitación es la velocidad (400 kHz máximo práctico en cables largos) y que todos los dispositivos comparten el mismo bus —un conflicto de dirección bloquea todo.
SPI es más rápido y determinista pero consume más pines (un CS por dispositivo). Necesario cuando se trabaja con sensores de alta frecuencia de muestreo (IMU a 8 kHz, ADC de audio).
Cómo elegir el sensor correcto
El proceso, en orden de prioridad:
- Define el rango y la magnitud: ¿temperatura de -20 a +80 °C, o de -200 a +400 °C? Filtra por esto primero.
- Define la precisión que realmente necesitas: ±1 °C es suficiente para la mayoría de aplicaciones HVAC; una báscula necesita ±0,01 g. La precisión tiene coste.
- Revisa el bus disponible en tu MCU: un ESP32 tiene múltiples I2C y SPI; un MCU con solo UART te limita a sensores serie.
- Consulta el datasheet, no la descripción de AliExpress: comprueba curvas de error vs temperatura, tiempo de respuesta y consumo en el datasheet del fabricante, no en el módulo genérico.
- Evalúa el packaging: para exteriores se necesita IP65 mínimo (IP67 para inmersión). Los breakouts con DHT22 desnudo no aguantan lluvia.
- Calcula el consumo en batería: un sensor que consume 1 mA durante 10 ms cada 60 s tiene un consumo medio de 0,17 µA —básicamente nada. Uno que consume 90 mA continuo (radar mmWave) cambia el diseño de batería por completo.
Código real: leer BME280 por I2C con ESP32 (Arduino)
#include <Wire.h>
#include <Adafruit_BME280.h>
#include <PubSubClient.h>
#include <WiFi.h>
Adafruit_BME280 bme;
WiFiClient espClient;
PubSubClient mqttClient(espClient);
void setup() {
Serial.begin(115200);
Wire.begin(21, 22); // SDA=GPIO21, SCL=GPIO22
if (!bme.begin(0x76)) {
Serial.println("BME280 no encontrado. Revisar cableado y dirección I2C.");
while (1);
}
// Modo de baja potencia: forced mode, oversampling x1
bme.setSampling(
Adafruit_BME280::MODE_FORCED,
Adafruit_BME280::SAMPLING_X1, // temperatura
Adafruit_BME280::SAMPLING_X1, // presión
Adafruit_BME280::SAMPLING_X1, // humedad
Adafruit_BME280::FILTER_OFF
);
WiFi.begin("ssid", "password");
while (WiFi.status() != WL_CONNECTED) delay(500);
mqttClient.setServer("broker.local", 1883);
mqttClient.connect("esp32-bme280");
}
void loop() {
bme.takeForcedMeasurement(); // leer una muestra y volver a sleep
char payload[80];
snprintf(payload, sizeof(payload),
"{\"temp\":%.2f,\"hum\":%.2f,\"pres\":%.1f}",
bme.readTemperature(),
bme.readHumidity(),
bme.readPressure() / 100.0F
);
mqttClient.publish("sensores/interior/bme280", payload);
Serial.println(payload);
delay(60000); // enviar cada 60 s
}Este código usa el ESP32 en modo forced (BME280 duerme entre medidas) y publica en MQTT el JSON con temperatura, humedad y presión. Un subscriber en la plataforma cloud o en un broker local de Raspberry Pi
EmpresaRaspberry PiSingle-board computers y microcontroladores RP2040/RP2350Ver perfil recibe los datos en tiempo real.
Recursos primarios
- Bosch Sensortec — BME280 datasheet (acceso: 2026-05)
- Sensirion — SHT4x datasheet (acceso: 2026-05)
- Hi-Link LD2410 product page (acceso: 2026-05)
Preguntas frecuentes
¿Qué sensor de temperatura recomendáis para exteriores?+
El SHT40 de Sensirion (I2C) en encapsulado con filtro de membrana PTFE (evita polvo y agua) es el estándar en estaciones meteorológicas profesionales de bajo coste. Para cableado largo con múltiples puntos, el DS18B20 en encapsulado TO-92 waterproof con 1-Wire es más práctico. Evitar el DHT22 en exteriores sin carcasa adecuada: su cubierta plástica no está clasificada IP.
¿Qué diferencia hay entre PIR y mmWave para detección de presencia?+
El PIR detecta cambios en radiación infrarroja: necesita que el cuerpo se mueva o haya diferencia térmica. Es ciego a personas quietas. El mmWave (LD2410, por ejemplo) emite radio de 24 GHz y detecta el microDoppler de la respiración: detecta a alguien sentado o durmiendo. Para domótica y HVAC inteligente, mmWave es superior pero consume 90 mA vs los <1 mA del PIR en standby.
¿Puedo conectar varios sensores I2C al mismo ESP32?+
Sí. El bus I2C permite hasta 127 dispositivos con diferentes direcciones (en la práctica, muchos menos por pullup y capacitancia de cable). Cada fabricante asigna dirección fija (la mayoría configurables entre dos valores por un pin de selección). Problema habitual: dos BME280 comparten direcciones 0x76 y 0x77, solo dos en el mismo bus; para más puntos, añadir un multiplexor TCA9548A (8 canales I2C).
¿Qué sensor de corriente es más preciso, ACS712 o INA226?+
El INA226 es significativamente más preciso para medida de corriente DC: ±0,1% vs ±1,5% del ACS712. El ACS712 tiene la ventaja de funcionar en AC y DC sin resistencia en serie (efecto Hall). Para monitorización de energía DC en batería, paneles solares o buses de alimentación digital, INA226 con resistencia shunt de precisión. Para monitorización de consumo AC doméstico: transformador de pinza SCT-013 con biblioteca EmonLib.
¿Qué bus usar cuando el MCU tiene solo 2 pines libres?+
I2C solo necesita 2 pines (SDA + SCL) y permite múltiples dispositivos. Es la respuesta evidente cuando hay restricción de pines. Si los 2 pines son para otra cosa, valorar 1-Wire (1 pin) para sensores de temperatura DS18B20.
¿Los sensores genéricos de AliExpress son fiables?+
Depende del fabricante del chip real. Un módulo "BME280" de AliExpress que lleva el chip Bosch original (verificable por marcado de chip) es igual de fiable que uno de Adafruit o Waveshare —la diferencia está en el módulo de soporte (soldaduras, regulador, pull-ups). El problema real es cuando el módulo lleva un clon del chip (BMP280 en lugar de BME280, por ejemplo) sin avisar. Revisar el chip real con i2cdump y comparar los registros de ID del fabricante antes de confiar en los datos.