Les Presento mi Detector de Fugas de Gas con Arduino

Iniciado por rreedd, Marzo 20, 2016, 06:44:18 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Marzo 20, 2016, 06:44:18 PM Ultima modificación: Marzo 20, 2016, 06:47:47 PM por rreedd
RREEDD

Hola!!

El otro día estaba jugando con mi auto hecho con Arduino y un familiar que trabaja en gasfiteria me dijo que necesitaba un detector de fugas de gas (para poder encontrar las fugas en las mangueras) y si le podría hacer uno así que me puse manos a la obra gane  un poco de dinero y antes de entregarlo se los presento para que puedan construir el suyo
(disculpen si no se ve muy perfecto las terminaciones pero el armazon lo hice con cartón piedra)

::: MATERIALES :::


  • 1x modulo metector de gas MQ-2 (detector de gas propano butano y gases inflamables)

  • 1x LCD 19x2 (I2C)
  • 1x Arduino nano
  • 1x Zumbador (piezoeléctrico)
  • 1x interruptor pequeño
  • 1x Porta batería 


Bueno el funcionamiento de el detector es bastante simple, se toma el valor obtenido desde el sensor y si encuentra una fuga emite un sonido para alertar.

Una ves consigamos los materiales solo nos queda armarlo  ;) , la explicación de la conexión la puse en el código el cual dejo a continuación.


Código: text
// Proyecto_SensorDeGas_0.1.ino



#include <Wire.h>                 
#include <LiquidCrystal_I2C.h>    // Libreria que controla la pantalla LCD
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Inicializa el LCD
const int gasPin = A0;
const int pinPiezo  = 6;    // pin de conexion del Piezoelectrico

/*

                    Codigo by RREEDD

Para descargar la libreria  LiquidCrystal_I2C.h.

https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/LiquidCrystal_V1.2.1.zip

             
                    _________________
                    |d13         D12|
                    |3v3         D11|
                    |REF         D10|     
        AD(sensor)  |A0   Arduino D9|
                    |A1    NANO   D8|
                    |A2           D7|
                    |A3           D6| Pin VCC del zumbador
         SDA (lcd)  |A4           D5|
         SCL (lcd)  |A5           D4|
                    |A6           D3|
                    |A7           D2|
         VCC (lcd)  |5v          GND| GND (lcd,sensor,zumbador)
                    |RST         RST|
     GND (bateria)  |GND          TR|
     VCC (bateria)  |VIN          TX|
                    |_______________|       
*/
void setup()   {
  pinMode(pinPiezo, OUTPUT);   // declaramos el pin del piezo de salida
           
lcd.begin(16,2);      // Se introduce el tamaño de nuestro LCD 
Serial.begin(9600);  // Establecemos la comunicación Serial a 9600 baud

}
void loop() {
   
lcd.clear();                                  // Limpia la pantalla
lcd.setCursor(0,0);                          // Establece la ubicación en el lcd       
lcd.print("NIVEL DE GAS");                  // mensaje por lcd
lcd.setCursor(1,1);                        // Establece la ubicación en el lcd
Serial.println(analogRead(gasPin));       // mensaje por serial, para poder calibrar nuestro sensor       
principal();                             // llama a la función que comparara los valores recibidos desde el sensor
delay (700);                            // establece una espera en el codigo

}

void tono(int frecuencia){
                                                //se emitirá un sonido con la frecuencia introducida
for( int i=0; i<500; i++ ) {               
digitalWrite(pinPiezo, HIGH);
delayMicroseconds(frecuencia);
digitalWrite(pinPiezo, LOW);
delayMicroseconds(frecuencia);     

}

}

void principal(){
if(analogRead(gasPin) <= 390){
lcd.setCursor(0,1);                               // Establece la ubicación                               
lcd.print("#");                                  // mensaje por lcd, para mostrar el nivel de gas detectado
}else
if(analogRead(gasPin) <= 400){
lcd.setCursor(0,1);                               // Establece la ubicación                           
lcd.print("##");                                 // mensaje por lcd, para mostrar el nivel de gas detectado
}else
if(analogRead(gasPin) <= 500){
lcd.setCursor(0,1);                               // Establece la ubicación                             
lcd.print("###");                                // mensaje por lcd, para mostrar el nivel de gas detectado
}else
if(analogRead(gasPin) <= 600){
lcd.setCursor(0,1);                               // Establece la ubicación                               
lcd.print("####");                               // mensaje por lcd, para mostrar el nivel de gas detectado 
}else
if(analogRead(gasPin) <= 700){
lcd.setCursor(0,1);                               // Establece la ubicación                                 
lcd.print("#####");                              // mensaje por lcd, para mostrar el nivel de gas detectado
}else
if(analogRead(gasPin) <= 750){
lcd.setCursor(0,1);                               // Establece la ubicación                           
lcd.print("######");                             // mensaje por lcd, para mostrar el nivel de gas detectado   
}else
if(analogRead(gasPin) <= 790){
lcd.setCursor(0,1);                               // Establece la ubicación                                 
lcd.print("#######");                            // mensaje por lcd, para mostrar el nivel de gas detectado   
}else
if(analogRead(gasPin) <= 800){
lcd.setCursor(0,1);                               // Establece la ubicación                         
lcd.print("#########");                          // mensaje por lcd, para mostrar el nivel de gas detectado   
}else
if(analogRead(gasPin) <= 850){
lcd.setCursor(0,1);                               // Establece la ubicación                                 
lcd.print("##########");                         // mensaje por lcd, para mostrar el nivel de gas detectado   
}else
if(analogRead(gasPin) <= 890){
lcd.setCursor(0,1);                               // Establece la ubicación                               
lcd.print("##########");                         // mensaje por lcd, para mostrar el nivel de gas detectado   
}else
if(analogRead(gasPin) <= 900){
lcd.setCursor(0,1);                               // Establece la ubicación                                 
lcd.print("##########");                         // mensaje por lcd, para mostrar el nivel de gas detectado   
delay (1000);
}else
if(analogRead(gasPin) <= 920){
lcd.setCursor(0,1);                               // Establece la ubicación                               
lcd.print("###########");                        // mensaje por lcd, para mostrar el nivel de gas detectado   
tono(500);                                     // emite una alerta sonora
}else
if(analogRead(gasPin) <= 950){
lcd.setCursor(0,1);                               // Establece la ubicación                               
lcd.print("############");                       // mensaje por lcd, para mostrar el nivel de gas detectado   
tono(400);                                     // emite una alerta sonora
}else
if(analogRead(gasPin) <= 960){
lcd.setCursor(0,1);                               // Establece la ubicación                                 
lcd.print("#############");                      // mensaje por lcd, para mostrar el nivel de gas detectado   
tono(300);                                     // emite una alerta sonora
}else
if(analogRead(gasPin) >= 970){
lcd.setCursor(0,1);                               // Establece la ubicación                                   
lcd.print("##############");                     // mensaje por lcd, para mostrar el nivel de gas detectado
tono(200);                                     // emite una alerta sonora
}
}



Armazon




Armado 




Terminado




Funcionamiento




El detector ya esta probado y funcionando a un 100%.

Cualquier duda sobre el proyecto o si quieres hacer una sugerencia solo comenta.


Saludos desde Chile

Me encantó bro!!! tienes mas proyectos hechos con arduino?

saludos!
ANTRAX


You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Me encantó bro!!! tienes mas proyectos hechos con arduino?

saludos!
ANTRAX

Si compañero @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login tengo muchos mas  ;D , así que pronto esta haciendo mas post.


@You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Siempre es bueno ver proyectos frescos y propios.
Gracias por compartirlo y felicitaciones.

Gabriela
Tú te enamoraste de mi valentía, yo me enamoré de tu oscuridad; tú aprendiste a vencer tus miedos, yo aprendí a no perderme en tu abismo.