Fuente propia / Medición de la campana
Fuente propia / Medición de la campana
Fuente propia / Pegado del extractor
Fuente propia / Pintado de campana
Fuente propia / Construcción del filtro Venturi
Fuente propia / Pegado del filtro Venturi
Fuente propia / Pintado del filtro Venturi
Fuente propia / unión de componentes en caja arduino
Fuente propia / Piezas de corte láser
Fuente propia / Construcción de caja Arduino
Fuente propia / Prueba sistema electrónico
Se tuvo que reemplazar la batería de 12v con una fuente regulada
El cableado tuvo que arreglarse para facilitar el ensamblaje
La interpolación de la contaminación en ppm fue realizada solamente con CO2
Haciendo una comparación entre las salidas del sensor MQ135 y el sensor de CO2, se compararon concentraciones con aire atmosférico, un poco de humo y con humo concentrado.
Esto con la intención de obtener la salida del MQ135 a una concentración peligrosa para la salud y con ello activar el sistema.
-> Por interpolación, la salida 315 del MQ135 es análoga a 1200 ppm del sensor de CO2.
Por ello, en nuestro código se usará este valor
Realizamos, el código para la conversión del humo en partes por millón(ppm), según las medidas que se hizo con sensor de dióxido de carbono y el Arduino, luego se desarrolló el gráfico con las mediciones, nos resultó un gráfico no lineal, por tanto según programación no es correcto. Lo cual no se utilizó este codigo para nuestro proyecto.
int sensor1 = A0;
int sensor2 = A1;
int led_verde = 10;
int led_amarillo = 9;
int led_rojo = 8;
int extractor1 = 11;
int motordeagua = 12;
// Inicializacion de numeros enteros del sensor1 y sensor2
long adcSensor1 = 0;
long adcSensor2 = 0;
float umbralMax = 300.0;
void setup() {
pinMode(sensor1, INPUT);
pinMode(sensor2, INPUT);
pinMode(led_verde, OUTPUT);
pinMode(led_amarillo, OUTPUT);
pinMode(led_rojo, OUTPUT);
pinMode(extractor1, OUTPUT);
pinMode(motordeagua, OUTPUT);
//pinMode(13, OUTPUT);
// digitalWrite(13, LOW);
Serial.begin(9600);
}
// Lectura de los sensores del gas
void loop() {
adcSensor1 = analogRead(sensor1);
delay(1);
adcSensor2 = analogRead(sensor2);
delay(1);
//Serial.println(adcSensor1);
/*Inicio de bloque de proximación para ppm en sensor 1 */
if(adcSensor1 < 230)
{
long ppm= map((229-adcSensor1),229,0,0,799);
Serial.print("Sensor1 aprox: "+ String(ppm) +" ppm");
}
else if(adcSensor1 >= 230 && adcSensor1 <=390)
{
long ppm= map((390-adcSensor1),160,0,800,1500);
Serial.print("Sensor1 aprox: "+ String(ppm) +" ppm");
}
else if(adcSensor1 >= 391 && adcSensor1 <=680)
{
long ppm= map((680-adcSensor1),289,0,1510,14200);
Serial.print("Sensor1 aprox: "+ String(ppm) +" ppm");
}
else if(adcSensor1 > 680)
{
Serial.print("Sensor1 aprox: >15000 ppm");
}
/*fin de bloque de aproximación para ppm en sensor 1 */
/*Inicio de bloque de proximación para ppm en sensor 2 */
if(adcSensor2 < 230)
{
long ppm= map((229-adcSensor2),229,0,0,799);
Serial.print(" -> Sensor2 aprox: "+ String(ppm) +" ppm");
}
else if(adcSensor2 >= 230 && adcSensor2 <=390)
{
long ppm= map((390-adcSensor2),160,0,800,1500);
Serial.print(" -> Sensor2 aprox: "+ String(ppm) +" ppm");
}
else if(adcSensor2 >= 391 && adcSensor2 <=680)
{
long ppm= map((680-adcSensor2),289,0,1510,14200);
Serial.print(" -> Sensor2 aprox: "+ String(ppm) +" ppm");
}
else if(adcSensor2 > 680)
{
Serial.print(" -> Sensor2 aprox: >15000 ppm");
}
Serial.println();
/*fin de bloque de aproximación para ppm en sensor 2 */
// Serial.println(adcSensor2);
if (adcSensor1 > 200) {
digitalWrite(extractor1, HIGH);
digitalWrite(motordeagua, HIGH);
} else {
digitalWrite(extractor1, LOW);
digitalWrite(motordeagua, LOW);
}
float delta = adcSensor1- adcSensor2;
if (delta > 50) {
digitalWrite(led_verde, HIGH);
digitalWrite(led_amarillo, LOW);
digitalWrite(led_rojo, LOW);
} else if (delta >20 && delta <= 50) {
digitalWrite(led_verde, LOW);
digitalWrite(led_amarillo, HIGH);
digitalWrite(led_rojo, LOW);
} else if (delta > 0 && delta <= 20) {
digitalWrite(led_verde, LOW);
digitalWrite(led_amarillo, LOW);
digitalWrite(led_rojo, HIGH);
}
//Serial.println("resta S1 - S2: " + String(abs(delta)));
delay(800);
}