Chisme 181 · Presión, temperatura y polvo con la ESP32 (estación EducaCont 984)
El Lince necesita saber qué sensor tiene en la mano y si cada uno responde antes de montar la estación completa. Aquí lo haces en simulación: solo tienes que conectar los cables bien; el programa ya está escrito y explicado.
Cómo funciona este simulador
Todo es de mentira: las lecturas son inventadas, no hay placa ni sensores reales.
No hay que escribir nada: conectas (paso 1), lees el programa y lo ejecutas (pasos 2-4).
Abajo a la derecha verás el monitor serie, igual que el de Arduino IDE a 115200 baudios.
Elige a qué pin de la placa va cada uno de los 8 cables (4 del BMP280 y 4 del sensor de polvo)
Deja el interruptor de la placa en la posición correcta
Fíjate: hay dos tensiones distintas. El BMP280 y la ESP32 trabajan a 3,3 V; el sensor de polvo necesita 5 V y se toma de la fila POWER. Por eso el interruptor se queda en 3,3 V. Los pines concretos (D3 = IO25, A2 = IO35) son los de la imagen de pines de la placa; el profesor los confirma con la placa en la mano.
Haz esto
Pulsa «Cargar detector» y mira el monitor serie
Comprueba que aparece tu BMP280 y con qué dirección
Cambia el chip que tienes en la mano (BME280, GY-91…) y mira qué dice
Desenchufa y vuelve a enchufar el sensor con la placa encendida
Lo que contesta el chip
Carga el detector para ver la conversación I2C.
Fíjate: el detector no mide nada: llama a cada dirección y, si alguien contesta, lee el registro 0xD0 (el «DNI» del chip). 0x58 = BMP280 (temperatura y presión) y 0x60 = BME280 (también humedad). Con un BMP280 en la mano no habrá humedad.
El programa, explicado
Haz esto
Pulsa «Cargar programa» (BMP280 + polvo)
Cambia la temperatura con el deslizador
Cambia la presión (prueba «cumbre de Sierra Bermeja»)
Si en el paso 2 dejaste el chip como «BME280», este programa dirá «NO conectado», porque solo acepta el chip id 0x58 del BMP280. Vuelve al paso 2 y ponlo en BMP280.
--temperatura (°C)
--presión (hPa)
Temperatura
Presión
Fíjate: la presión baja al subir: cerca del nivel del mar, cada ~8 m de altura son ~1 hPa menos (valor aproximado). Y aunque no toques nada, el último decimal baila: es el ruido de la medida. Medir no significa medir bien: no te fíes de un decimal suelto.
El programa, explicado
Seguridad (en la vida real): el humo lo maneja solo el profesor, a 20-30 cm del sensor, con la ventana abierta (cerilla recién apagada o incienso). No se acerca llama a la placa ni se moja el sensor. Aquí los botones son de mentira.
Haz esto
Espera el precalentamiento de 60 s (o pulsa «Saltar»)
Echa una sustancia y mira cómo sube la tensión
Echa humo denso hasta saturar el sensor
Cambia V_AIRE_LIMPIO y mira qué le pasa a la estimación
Echa algo cerca del sensor
Distancia
--tensión en OUT (V)
--estimación del programa (µg/m³)
--dentro del simulador (µg/m³, inventado)
Gráfica: últimas estimaciones del programa.
Fíjate: el humo sube la tensión de OUT y el programa la convierte en µg/m³ con (v − V_AIRE_LIMPIO) × 200. La columna «dentro del simulador» es la verdad inventada; el programa solo ve voltios.
Saturación: con humo directo y concentrado la tensión llegó a 3,16 V con el sensor del profesor y salieron 527 µg/m³. Ese número es un tope de la fórmula, no una medida real. Y cuidado: la ESP32 solo admite 3,3 V en sus entradas analógicas, y el sensor con humo denso se acerca a ese límite.
Calibrar: cada sensor da una tensión distinta en aire limpio (el fabricante dice 0,9 V típico; el del profesor daba 0,53 V). Con una constante equivocada la estimación sale desplazada o escondida. Los valores de polvo son orientativos: el sensor detecta partículas de más de 0,8 µm, así que no mide estrictamente PM2.5, y es un prototipo educativo, no un instrumento de medida.
Piensa la respuesta y despliégala para comprobarla.
¿Cómo sabes si tu sensor es BME280 o BMP280?
Leyendo el registro 0xD0 (chip id) por I2C: 0x60 = BME280 y 0x58 = BMP280. El BME280 mide además humedad; el BMP280 solo temperatura y presión.
¿Por qué el sensor de polvo va a 5 V y el BMP280 a 3,3 V?
El de polvo necesita 5 V (LED infrarrojo y su electrónica) y se toma de la fila POWER. El BMP280 es un chip de 3,3 V, igual que la I2C de la ESP32. Por eso el interruptor de la placa se queda en 3,3 V.
¿Por qué hay que esperar un minuto antes de fiarse del polvo?
El sensor necesita calentarse y estabilizarse (el fabricante pide entre 30 s y 2 min). Al principio la tensión se mueve y la estimación no vale.
¿Qué le pasa a la lectura cuando se acerca humo y por qué no hay que fiarse del número exacto?
Sube la tensión y con ella la estimación, hasta saturar. El número depende de la constante V_AIRE_LIMPIO de cada sensor, el sensor no detecta todas las partículas y no está calibrado: sirve para comprobar que reacciona, no para medir con precisión.