Arduino (IoT): Simple Tutorial de Sensor de Gas MQ2

Arduino Honduras Santiapps Marcio Valenzuela

Tutorial Sensor de Gas MQ2

Grove tiene una gran selección de sensores para distintas aplicaciones.  Ya vimos el sensor de CO2 en la Estación de Monitoreo Ambiental.  Ahora agregamos un sensor MQ2 que cubre un espectro de gases mas amplio.

Requisitos:

  1. Computadora (mac)
  2. Arduino UNO
  3. Sensor M2
  4. Grove Shield
  5. Arduino IDE (https://www.arduino.cc/en/Main/Software)
Arduino Simple Tutorial Sensor de Gas MQ2 Santiapps Marcio Valenzuela
Arduino Simple Tutorial Sensor de Gas MQ2

La conexión a la Grove shield es muy sencilla.  He allí el poder de Grove y la facilidad de crear un robot multisensorial usando una Grove Shield como interfaz.

Arduino Simple Tutorial Sensor de Gas MQ2 Santiapps Marcio Valenzuela
Arduino Simple Tutorial Sensor de Gas MQ2 + Grove Shield

En este caso lo que tenemos que hacer es crear una linea base o baseline.  Esto se conoce como “Calibrar” el sensor porque vamos a tomar una muestra de lo que consideramos aire limpio y luego en base a esa linea base el sensor luego tomara otras mediciones para determinar el diferencial.

Para calibrar el sensor, lo ubicamos en un ambiente libre del gas que queremos medir y corremos el siguiente sketch con el sensor conectado al Grove Shield:

void setup() {
Serial.begin(9600);
}
void loop() {
float sensor_volt;
float RS_air; // Para el valor de Rs de aire limpio
float R0; // Para el valor R0 del gas en cuestión
float sensorValue;
/*--- Muestras promediadas 100 veces ---*/
for(int x = 0 ; x < 100 ; x++){
sensorValue = sensorValue + analogRead(A0);
}
sensorValue = sensorValue/100.0;
sensor_volt = sensorValue/1024*5.0;
RS_air = (5.0-sensor_volt)/sensor_volt;
R0 = RS_air/9.8; // La razon RS/R0 es 9.8 en nuestro caso
Serial.print("sensor_voltaje = ");
Serial.print(sensor_volt);
Serial.println("V");
Serial.print("R0 del gas = ");
Serial.println(R0);
delay(1000);
}

Ahora reemplazamos el valor R0 en este sketch que usaremos para medir:

void setup() {
  Serial.begin(9600);
}
void loop() {
  float sensor_volt;
  float RS_gas; // RS del gas
  float ratio; // Razon RS_GAS/RS_air
  int sensorValue = analogRead(A0);
  sensor_volt=(float)sensorValue/1024*5.0;
  RS_gas = (5.0-sensor_volt)/sensor_volt;
  /*-Reemplazar "R0" con valor de R0 en calibración -*/
  ratio = RS_gas/R0;  // Razon = RS/R0 
  Serial.print("sensor_voltaje = ");
  Serial.println(sensor_volt);
  Serial.print("RS_ratio = ");
  Serial.println(RS_gas);
  Serial.print("Rs/R0 = ");
  Serial.println(ratio);
  Serial.print("\n\n");
  delay(1000);
}

 

Ahora podemos agregar un nuevo valor a nuestra tabla de monitoreo.  Luego veremos como agregar un sensor de UV y postearemos todo a la nube para poder presentar los datos.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s