Chisme 141 del Lince: sensor de gas, la máscara automática
Marge The ThunderClown llevaba toda la tarde preparando su broma. Esperó a que Víctor Vílchez, el Lince de la Noche, cruzara el claro de Sierra Bermeja, y entonces lanzó un bote que, al caer, soltó una nube verde y maloliente. Sensor de gas.
—¡Sorpresa! —gritó—. ¡Gas de la risa!
Nadie se rio. Antes de que la nube llegara al Lince, un pequeño motor zumbó dentro del casco y una visera bajó hasta cubrirle la nariz y la boca. El Lince ni siquiera se giró.
La Gata Montesa, que miraba desde una roca con las gafas de sol puestas, levantó una ceja.
—¿Lo has notado?
—Todavía no —dijo el Lince, con la voz amortiguada por la visera—. Ha sido el casco.
—Tardas menos en ponerte la máscara que en enterarte de que te han lanzado algo.
—Esa es la idea. Un sensor que vigila el aire no se despista, no se cansa y no se duerme.
Marge se quedó con el bote vacío en la mano.
—Qué aburrido eres.
—No —dijo el Lince—. Estoy equipado.
Introducción
En este chisme 141 vas a construir la máscara automática del Lince: un sensor de gas tipo MQ que vigila el aire y un servo que baja una visera cuando el aire cambia de golpe, y la sube sola cuando vuelve a ser normal.
La diferencia con el sensor de alcohol del Chisme 136 es importante. Allí el sensor solo olía: leíamos un número y encendíamos un LED. Aquí el sistema decide y actúa, y para eso hay que resolver problemas que antes no teníamos: un sensor que se calienta y cambia su lectura solo, cuánto es «un cambio grande» y cómo evitar que la máscara suba y baje sin parar.
Antes de montarlo, practica en el simulador de la máscara automática, que tiene modo demostración.
Seguridad primero
Este chisme es un prototipo educativo. El módulo no es un detector de gas ni de monóxido de carbono homologado, y no puede proteger a nadie de verdad. Los detectores reales están certificados y se prueban para ese fin.
- Si hueles a gas o ves fuego, sal, ventila sin encender nada y llama al 112.
- Prueba el sensor solo con estímulos inofensivos y sin llamas: aliento, colonia, humo de una cerilla ya apagada o vinagre.
- Nunca pruebes con gas de verdad, ni con monóxido de carbono, ni cerca de una llama.
Qué necesitamos
- La ESP32 Plus de Acebott y ACECode (como en el Chisme 112).
- Del kit avanzado de robótica: un módulo de gas MH Flying Fish con sensor de la serie MQ (no trae marcado el modelo exacto).
- Un servo (el del Chisme 115).
- Cables Dupont.
Conexión
Con el USB desenchufado. En la placa del módulo, los pines están rotulados en este orden: A0, D0, GND, VCC. Guíate por los rótulos y no por la costumbre de otros módulos.
| Módulo de gas | ESP32 Plus |
|---|---|
| VCC | 3V3 (3,3 V) |
| GND | G |
| A0 | pin 35 |
| D0 | sin conectar |
| Servo | ESP32 Plus |
|---|---|
| Naranja (señal) | pin 25 |
| Rojo (alimentación) | pin 5 V |
| Marrón (tierra) | G |
Alimentamos el módulo de gas a 3,3 V para que A0 nunca pase de 3,3 V, que es lo máximo que aguantan las entradas de la ESP32. Si el servo tiembla o la placa se reinicia, es que necesita más corriente: alimenta su cable rojo desde el pin 5 V.
Cómo funciona un sensor de gas MQ
La mayoría de los sensores de la serie MQ llevan una pequeña pieza de material semiconductor (como el dióxido de estaño) y una resistencia que la calienta. Cuando ciertos gases se pegan a esa superficie caliente, cambia su conductividad, y eso es lo que mide el módulo. Puedes leer más sobre el monóxido de carbono, uno de los gases que preocupan en seguridad.
Dos consecuencias importantes:
- Se calienta antes de medir. Al encenderlo, el valor empieza alto y baja despacio. En nuestro módulo bajó de unos 2000 a unos 850 en unos diez minutos. Eso no es gas: es el sensor calentándose. Los fabricantes recomiendan además dejarlo encendido horas la primera vez.
- No distingue gases. Responde a varios a la vez. «Detecta cualquier gas» es cierto solo a medias: detecta que algo cambia en el aire, pero no qué es.
Primer programa: probar el servo
Antes de usar el sensor, comprueba el servo solo y averigua dos ángulos: visera arriba y visera abajo.
- Por siempre:
- Servomotor 25 establecer ángulo 0.
- Esperar 2 segundos.
- Servomotor 25 establecer ángulo 90.
- Esperar 2 segundos.
Con una visera de cartón pegada al brazo del servo, elige qué ángulo la deja arriba y cuál la baja. En el programa de abajo usamos 0° (arriba) y 90° (abajo). Cambia los números por los tuyos.
Segundo programa: la máscara automática
Crea tres variables: base (aire limpio), lectura y bajada (0 = visera arriba, 1 = visera abajo).

- Inicio del programa:
- dar a base el valor leer pin analógico 35.
- dar a bajada el valor 0.
- Servomotor 25 establecer ángulo 0.
- Por siempre:
- dar a lectura el valor leer pin analógico 35.
- Serial 115200 imprimir «unir» (
G:y lectura). - Serial 115200 imprimir «unir» (
B:y base). - Si (bajada = 0) y (lectura > base × 12 / 10) entonces: Servomotor 25 establecer ángulo 90 y dar a bajada el valor 1.
- Si (bajada = 1) y (lectura < base × 11 / 10) entonces: Servomotor 25 establecer ángulo 0 y dar a bajada el valor 0.
- Si (bajada = 0) entonces dar a base el valor (base × 49 + lectura) / 50.
Importante: para que aparezca el puerto serie en ACECode hay que instalar la extensión de la shield 9 en 1, aunque no pongas la placa de expansión encima. Abre el monitor serie a 115200 para ver G: y B:.
Por qué está hecho así
- Línea base móvil. Un umbral fijo (por ejemplo, «baja la máscara si pasa de 1000») no sirve: durante el calentamiento el valor de aire limpio va cambiando y la máscara bajaría sin que haya gas. Por eso la máscara compara con la base, que es el aire limpio de ahora mismo. Mientras la visera está arriba, la base sigue despacio a la lectura: cada vez toma un 2 % de la lectura nueva.
- Dos umbrales distintos. La máscara baja cuando la lectura supera la base un 20 % (
base × 12 / 10) y sube cuando la lectura vuelve a estar a menos de un 10 % por encima (base × 11 / 10). A esto se le llama histéresis. Con un solo umbral, la visera subiría y bajaría sin parar cuando la lectura se queda justo en el límite. - Base congelada con la visera abajo. Si la base siguiera actualizándose mientras hay gas, acabaría «aprendiendo» el gas como si fuese aire normal y subiría la visera con el gas todavía presente.
- El precio de la base móvil. Una fuga que crezca muy despacio puede pasar desapercibida porque la base la va absorbiendo. Un detector real combina límites relativos con límites absolutos. Esto es un compromiso de diseño, no un error.
Cómo probarlo
- Sube el programa y espera a que
G:baje y se estabilice. Con el módulo frío tardará varios minutos. - Acerca un algodón con colonia o alcohol, o sopla muy cerca de la tapa. La visera debería bajar.
- Aleja el estímulo y espera. Cuando la lectura vuelva a estar cerca de la base, la visera sube sola.
- Si baja con una subida mínima, cambia
12 / 10por13 / 10. Si no baja con nada, prueba11 / 10y acércate más. - Prueba también el aliento, el humo de una cerilla apagada y el vinagre.
Anota en cada caso el valor de G: y B:, cuántos segundos tarda en bajar la visera y cuántos en volver a subir.
Qué estamos midiendo realmente
El número de A0 no son ppm (partes por millón) ni mide ningún gas concreto. Es una señal eléctrica relativa que depende de:
- El sensor, y de cada módulo en particular.
- Su temperatura de trabajo y del tiempo que lleva encendido.
- La temperatura y la humedad del aire.
- El gas, que no sabemos cuál es, porque estos sensores responden a varios.
Por eso este sensor es muy bueno para ver que algo cambia y muy malo para decir qué hay y cuánto. Y por eso un detector de seguridad real está certificado: se ha probado con gases concretos en condiciones controladas. Medir no significa necesariamente medir bien.
Para el aula
- Predice: ¿cuál de estos estímulos subirá más el valor: aliento, colonia, humo de cerilla apagada o vinagre? Ordénalos y comprueba.
- Mide el calentamiento: anota el valor cada minuto durante diez minutos y dibuja la gráfica. ¿A partir de cuándo se estabiliza?
- Diseña la prueba: ¿qué debe mantenerse igual en cada estímulo (distancia, cantidad, tiempo)? ¿Cuántas veces la repetirías?
- Compara: dos grupos prueban la misma colonia con módulos distintos. ¿Dan el mismo valor? ¿Y la misma subida porcentual?
- Ajusta los umbrales: ¿qué pasa con
13 / 10y11 / 10si el aire está lleno de pequeñas variaciones? - Discute: ¿qué es peor, una máscara que baja sin que haga falta o una que no baja cuando hace falta? ¿Cómo cambiarías los umbrales?
- Debate: ¿por qué un detector de monóxido de carbono real tiene que estar certificado?
Retos
- Reto 1: haz que funcione el programa y mira
G:yB:en el monitor serie. - Reto 2: ajusta los dos umbrales para tu módulo.
- Reto 3: añade un LED o un zumbador que avise cuando la visera baje.
- Reto 4: añade un botón que suba la visera a mano. Así, una vez bajada, solo sube cuando tú lo decidas.
- Reto 5: guarda las lecturas con la página del Chisme 135 (usa el mismo formato
G:) y dibuja la gráfica del calentamiento. - Reto 6: añade un segundo sensor (por ejemplo el de alcohol) y haz que la máscara baje solo cuando los dos detecten un cambio.
- Reto 7: añade un límite absoluto además del relativo, para no perder las subidas lentas.
- Reto 8: investiga qué gases detecta el modelo concreto de tu sensor y comprueba si coincide con lo que has medido.
Qué hemos aprendido
Has conectado un sensor de gas y un servo a la ESP32 Plus y has hecho un sistema que decide y actúa. Has visto que un sensor MQ se calienta y que su lectura de aire limpio cambia, que por eso conviene comparar con una línea base móvil, que dos umbrales distintos evitan que la visera vibre (histéresis) y que no distingue unos gases de otros.
La Gata Montesa miró cómo la visera subía sola, cuando el aire volvió a estar limpio.
—Entonces la máscara no sabe qué gas era —dijo.
—No. Solo sabe que algo ha cambiado, y eso basta para que no te dé tiempo a respirarlo.
—¿Y si no hubiera cambiado de golpe, sino poco a poco?
El Lince se quedó callado un momento.
—Esa —dijo por fin— es la pregunta para la versión dos.
Etiqueta:acebott, acecode, AIDARAC, Computación y Robótica, esp32, flying fish, histéresis, ies monterroso, línea base, montesteam, seguridad, sensor de gas, sensor mq, Servo



