Hacklab ASU logo Hacklab ASUHacer, reparar, aprender juntos
Proyectos

Detector de gas con Arduino y sensor MQ-2 paso a paso

Un olor raro en la cocina a las once de la noche y la duda de siempre: ¿es la bombona o son imaginaciones?

An Arduino board on a breadboard connected to a small gas sensor module, a buzzer and red and green LEDs on a workbench

Un olor raro en la cocina a las once de la noche y la duda de siempre: ¿es la bombona o son imaginaciones? Montar un detector de gas con Arduino y un sensor MQ-2 cuesta menos de 10 euros, se termina en una tarde y te enseña cómo funcionan de verdad los sensores de gas, con sus virtudes y sus límites.

En el hacklab hemos montado este proyecto en tres talleres distintos y siempre aparecen los mismos errores: lecturas que bailan, alarmas que saltan solas y umbrales copiados de internet que no sirven para nada. Aquí va el montaje completo, el código explicado y, sobre todo, la calibración que hace que el aparato sea útil.

Qué necesitas para el detector de gas con Arduino

  • Arduino Uno o Nano (un clon de 4 a 6 euros sirve perfectamente).
  • Módulo MQ-2 con placa, potenciómetro y comparador LM393. Entre 2 y 3 euros.
  • Zumbador activo de 5 V.
  • LED rojo y LED verde con resistencias de 220 ohmios.
  • Protoboard y cables dupont.
  • Fuente de 5 V de al menos 1 A, por ejemplo un cargador de móvil.

Si es tu primer montaje en placa, repasa antes la guía sobre cómo usar una protoboard paso a paso sin errores. Y para calcular las resistencias de los LED tienes el método explicado en la entrada sobre la resistencia para un LED.

Cómo funciona el sensor MQ-2

El MQ-2 tiene dentro una pequeña capa de dióxido de estaño calentada por una resistencia. En aire limpio, esa capa conduce poco. Cuando hay gases combustibles como butano, propano, metano, hidrógeno o vapores de alcohol, la resistencia del material baja y la tensión de salida sube.

Dos detalles que conviene saber desde el principio:

  • Consume bastante. El calentador necesita unos 150 mA a 5 V, unos 750 mW. Funciona desde el pin de 5 V del Arduino alimentado por USB, pero se calienta al tacto. Es normal.
  • Necesita precalentamiento. La primera vez, déjalo encendido entre 24 y 48 horas para estabilizarlo. Después, cada vez que lo enciendas, espera unos 2 o 3 minutos antes de fiarte de las lecturas.

El módulo tiene dos salidas. AO es analógica, una tensión entre 0 y 5 V que el Arduino lee como un valor de 0 a 1023. DO es digital: pasa a nivel bajo cuando la lectura supera el umbral que marques con el potenciómetro azul. Nosotros usamos AO porque permite ajustar el umbral en el código y ver la evolución.

Conexiones paso a paso

  1. VCC del MQ-2 al pin 5V del Arduino.
  2. GND del MQ-2 a GND.
  3. AO del MQ-2 al pin A0.
  4. Zumbador: positivo al pin 8, negativo a GND.
  5. LED rojo: ánodo al pin 12 a través de la resistencia de 220 ohmios, cátodo a GND.
  6. LED verde: ánodo al pin 11 a través de su resistencia, cátodo a GND.

Si quieres que el detector corte una electroválvula o encienda un extractor, no lo conectes directamente: usa un relé y lee antes cómo usar un módulo relé con Arduino sin riesgos, sobre todo si hay 230 V de por medio.

El código y la calibración

El programa hace tres cosas: espera el precalentamiento, mide el valor base en aire limpio durante 30 segundos y después compara cada lectura con esa base. Así el umbral se adapta a tu sensor concreto y a tu habitación, en lugar de usar un número fijo copiado de otro proyecto.

La lógica, explicada en pasos:

  1. En setup, configura los pines 8, 11 y 12 como salidas y abre el monitor serie a 9600 baudios.
  2. Espera 120 segundos con el LED verde parpadeando para indicar el precalentamiento.
  3. Toma 60 lecturas de A0, una cada medio segundo, y calcula la media. Ese es tu valor base. En nuestras pruebas salía entre 90 y 180 según el sensor.
  4. En loop, lee A0 diez veces seguidas y haz la media para suavizar el ruido.
  5. Si la media supera el valor base más 150, enciende el LED rojo y el zumbador. Si no, LED verde encendido y zumbador apagado.
  6. Imprime la lectura por el monitor serie cada segundo para poder vigilarla.

El margen de 150 puntos es un punto de partida. Con nuestros sensores, un mechero de butano apretado sin llama a 10 cm del sensor subía la lectura a más de 500 en dos segundos, mientras que cocinar normal o una ventana abierta movía la base como mucho 40 o 50 puntos. Ajusta el margen hasta que la cocina diaria no dispare la alarma y una fuga simulada sí lo haga.

Cómo probarlo sin riesgos

Usa un mechero de butano, aprieta el pulsador sin encender la chispa durante un segundo cerca del sensor, y aléjalo. Hazlo con la ventana abierta, sin llamas cerca y nunca dentro de una caja cerrada. La lectura debería volver a la base en menos de un minuto.

Dónde colocarlo

La posición depende del gas. El butano y el propano de las bombonas pesan más que el aire y se acumulan abajo, así que el sensor va a unos 30 cm del suelo. El gas natural, que es sobre todo metano, pesa menos que el aire y sube: el sensor va a unos 30 cm del techo. En ambos casos, a uno o dos metros del aparato de gas, lejos de la campana extractora y de vapores directos de la cocina.

Lo que nadie te dice: esto no sustituye a un detector homologado

En muchos tutoriales se presenta este montaje como un detector de gas para casa y ya está. No estamos de acuerdo, y conviene decirlo claro. El MQ-2 responde a muchos gases a la vez, también al alcohol y al humo, su sensibilidad cambia con la temperatura y la humedad, y envejece con los meses. Un Arduino casero tampoco tiene alimentación de respaldo ni ha pasado ningún ensayo.

Los detectores domésticos de gas certificados según la norma EN 50194 cuestan entre 25 y 50 euros y llevan sensores calibrados de fábrica. Si en tu casa hay gas, pon uno de esos. Nuestro montaje es un proyecto excelente para aprender, para registrar datos en un taller o para un aviso adicional, pero no para ser la única protección. Si alguna vez huele a gas de verdad: no toques interruptores, abre ventanas, cierra la llave y sal a llamar a emergencias.

Mejoras para la siguiente tarde

  • Añade una pantalla OLED de 0,96 pulgadas para ver la lectura sin ordenador.
  • Cambia a un ESP32 para mandar avisos al móvil por wifi, con la misma lógica que usamos en la estación meteorológica con ESP32 y BME280.
  • Guarda las lecturas en una tarjeta microSD para ver cómo cambia la base a lo largo de una semana.

Preguntas frecuentes

¿Qué gases detecta el sensor MQ-2?

Detecta butano, propano, metano, hidrógeno, vapores de alcohol y humo. No distingue entre ellos: solo indica que la concentración de gases combustibles ha subido. Para un gas concreto hay sensores más específicos, como el MQ-4 para metano o el MQ-7 para monóxido de carbono.

¿Cuánto tiempo tarda en calentar el MQ-2?

La primera vez conviene dejarlo encendido entre 24 y 48 horas para que se estabilice. Después basta con 2 o 3 minutos cada vez que lo enciendes. Durante ese tiempo las lecturas suben y bajan y no conviene activar alarmas.

¿Puedo usar un detector de gas con Arduino en casa?

Puedes usarlo como proyecto de aprendizaje o como aviso adicional, pero no como única protección. No está certificado, su sensibilidad varía con el tiempo y depende de que el Arduino siga encendido. Para la seguridad real instala un detector homologado según la norma EN 50194.

LB
Lucía Benítez

Lucía empezó reparando radios viejas en la mesa de la cocina y hoy escribe sobre circuitos, Arduino y radiofrecuencia sin dar nada por sabido.

More posts by Lucía

More in Proyectos

01doorganico 084goad 3hot8 4465456 after5internprogram ahandfulofblessings ahmadpc ahomcybersecurity allodialresources annodex antiquesandperiodcollectibles aotc asianworldkashmir beedlectrics bloggertemplatefree bluefeatheragency bodyweightsolution campaign08blog carfixadvisor catstreetcollective cbstvsports cnfanspurchasing committeeof500yearsofdignityandresistance covertopsdjs cs-kaiyuangame cuestacomunicaciontotal cxoutlet dancebetgame deskgearhub destinyvillastay detectmagazine di33 diamondsteelbuildings donmo dyanadropship emarsysfinance emimattl escapechan eskitarih evautoplay everythingweddings-orlando farmzone feedviewerapp foxstudiosscratch gamevui123 gleasongrade greetingsday haskell iw-kaiyun jagoanproperti jilidskripsi joltbusinessfinance juegodepokergratis juegospucca kaeru-festival latestmehndidesigns lestanzediottaviano litemagazines localcommunityhero lustrsazan mariashebets menswheels newwebstechs1 nikkit ootheday oxigenvpn plurfitness prefetial probudgetcarpetcleaning psychicmrsmartin pyaten qvantor rejoignezlogis rexzbot riselayouts ruchin rwxqsgd5 sakaltime shibiaowang shop-bot skrtips strcoding tetapatrium topselller uneplanteartificielle vipertechcr webtech1223411 wo-kygaming yamaha-mekar yeknava yoybuysheets zenunwa yamaha-mekar jilidskripsi ankertoto ankertoto ankertoto ankertoto