
Detector automático de humo con Arduino y Tinkercad

A quién no le ha pasado alguna vez?
Estás cocinando, realizando una práctica o utilizando algún aparato eléctrico y, de repente, algo empieza a generar humo.
A veces nos damos cuenta enseguida, pero otras veces el humo puede acumularse sin que nadie lo note.
En este proyecto vamos a construir un detector automático de humo capaz de avisarnos cuando detecte una cantidad elevada de humo en el ambiente.
El sistema utilizará un sensor de humo MQ-2. Cuando detecte humo, activará una alarma sonora y una señal luminosa para advertir del peligro.
Objetivo del proyecto
Crear un sistema automático que:
- Detecte humo mediante un sensor.
- Active una alarma sonora.
- Encienda una señal luminosa de emergencia.
- Muestre mensajes por el monitor serie.
- Sirva como ejemplo de sistemas de seguridad y prevención.
ODS relacionados
ODS 3: Salud y bienestar
La detección temprana de incendios ayuda a proteger la salud y la vida de las personas.
ODS 11: Ciudades y comunidades sostenibles
Los edificios inteligentes incorporan sistemas automáticos de seguridad para reducir riesgos.
ODS 13: Acción por el clima
La prevención de incendios contribuye a evitar daños ambientales y emisiones contaminantes.
¿Qué vamos a aprender?
En este proyecto aprenderemos:
- Qué es un sensor MQ-2.
- Cómo leer una entrada analógica en Arduino.
- Cómo controlar LEDs.
- Cómo utilizar un zumbador.
- Cómo usar condicionales.
- Cómo simular un sistema de alarma en Tinkercad.
- Cómo aplicar la programación a la seguridad de las personas.
Componentes necesarios en Tinkercad
- Arduino UNO
- Sensor de humo MQ-2
- Zumbador (Piezo Buzzer)
- LED verde
- LED rojo
- Resistencia de 220 Ω para cada LED
- Protoboard
- Cables
¿Cómo funciona el sensor MQ-2?
El MQ-2 es un sensor capaz de detectar humo y diferentes gases.
Cuando la concentración de humo aumenta, el sensor genera valores más altos.
En nuestro proyecto vamos a imaginar lo siguiente:
- Valor bajo → aire limpio.
- Valor alto → presencia de humo.
Arduino leerá continuamente esos valores para decidir si debe activar la alarma.
Conexiones
Sensor MQ-2
| MQ-2 | Arduino |
|---|---|
| VCC | 5V |
| GND | GND |
| A0 | A0 |
LED verde
Representa que el ambiente es seguro.
| LED verde | Arduino |
|---|---|
| Ánodo | D6 |
| Cátodo | Resistencia 220 Ω → GND |
LED rojo
Representa situación de peligro.
| LED rojo | Arduino |
|---|---|
| Ánodo | D7 |
| Cátodo | Resistencia 220 Ω → GND |
Zumbador
| Buzzer | Arduino |
|---|---|
| Positivo | D8 |
| Negativo | GND |
Código Arduino
const int sensorHumo = A0;
const int ledVerde = 6;
const int ledRojo = 7;
const int buzzer = 8;
bool alarmaActiva = false;
void setup() {
pinMode(ledVerde, OUTPUT);
pinMode(ledRojo, OUTPUT);
pinMode(buzzer, OUTPUT);
Serial.begin(9600);
digitalWrite(ledVerde, HIGH);
digitalWrite(ledRojo, LOW);
Serial.println("Detector de humo iniciado.");
Serial.println("Estado: aire limpio.");
}
void loop() {
int nivelHumo = analogRead(sensorHumo);
if (nivelHumo > 400 && alarmaActiva == false) {
activarAlarma();
}
if (nivelHumo <= 400 && alarmaActiva == true) {
desactivarAlarma();
}
delay(200);
}
void activarAlarma() {
Serial.println("Humo detectado.");
Serial.println("Activando alarma...");
digitalWrite(ledVerde, LOW);
digitalWrite(ledRojo, HIGH);
tone(buzzer, 1000);
alarmaActiva = true;
Serial.println("Zona en peligro.");
}
void desactivarAlarma() {
Serial.println("El humo ha desaparecido.");
Serial.println("Volviendo al estado seguro.");
digitalWrite(ledVerde, HIGH);
digitalWrite(ledRojo, LOW);
noTone(buzzer);
alarmaActiva = false;
Serial.println("Ambiente seguro.");
}
¿Qué ocurre en la simulación?
Situación 1: No hay humo
El sensor detecta aire limpio.
- El LED verde está encendido.
- El LED rojo está apagado.
- El buzzer está apagado.
- El sistema permanece vigilando
Situación 2: Aparece humo
Aumentamos el valor del sensor MQ-2.
- El LED rojo se enciende.
- El LED verde se apaga.
- El buzzer comienza a sonar.
- Aparece una alerta en el monitor serie.
Situación 3: El humo desaparece
Reducimos el valor del sensor.
- El LED verde se enciende.
- El LED rojo se apaga.
- El buzzer deja de sonar.
- El sistema vuelve al modo seguro.

Reto 1
Modifica el programa para que el LED rojo parpadee cuando detecte humo.
Reto 2
Añade un segundo buzzer que emita un tono diferente.
Reto 3
Añade una pantalla LCD que muestre:
Reto 4
Haz que la alarma no se active inmediatamente.
Debe esperar 5 segundos para evitar falsas alarm


