Comentari sobre el sensor d’ozó #SonCube

Desitjava escriure el comentari següent respecte al sensor d’O3 que integrarem en la sonda SonCube.

Resulta que, examinant, el datasheet, observem que aquest sensor solament és sensible en el rang de 5 a 100 ppm, però resulta que aquests valors, son molt alts per la troposfera.

grafo3datasheet

Examinant els valors de contaminació d’ara mateix de la Xarxa de Vigilància i Previsió de la Contaminació Atmosfèrica de Catalunya, observem que els valors d’ozó son de l’ordre de 100micrograms / m3 que, convertint-los a ppm, no arriba ni al 0.05 ppm.

Per tant doncs, el nostre sensor ens haurà de permetre verificar aquesta gràfica teòrica, però a partir dels 5ppm.

 

Ozone_vs_Altitude

 

 

 

Sensor de metà per al projecte SonCube

Indiquem en aquest apunt com hem programat el sensor de CH4 per tal d’incloure’l en la sonda SonCube.

El meu company Enric ha implementat el circuit tal i com s’indica en el datasheet . En aquesta imatge s’hi veu també el sensor de gas d’ozó (ubicat a la dreta) però, en aquest apunt, em centro solament en el de metà ( es tracta del sensor de l’esquerra).

SonCubeMQ4
El principal problema que tenim és que no sabem com calibrar el sensor i és que no disposem de cap altre mecanisme que ens indiqui la quantitat de metà que hi ha ara mateix en el nostre entorn així que, malauradament, hem de fer una suposició. De totes maneres, serà interessant veure com fluctuen els valors a mesura que la sonda ascedeix a l’estratosfera, malgrat els valors no siguin reals al 100%.

Aquesta és la gràfica que presenta el datasheet que indica la quantitat de metà que hi ha a l’atmosfera ( veiem que ho presenta en ppm versus una relació de resistències Rs/Ro).

 

SonCubeMQ4DataSheet

 

Considerem una Ro fixa i una Rs que obtenim a partir de la lectura del sensor a través del pin analògic 0.

En el codi de l’Arduino donem més detalls:

void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop() {
  //Obtenim el voltatge (valor entre 0V i 5V) del pin 0 (valor analògic de 10bits).
  int ch4value = analogRead(0);  
  float Vrl = 5.0 * analogRead(ch4value) / 1023
  //Resistència de càrrega de 20K.
  float Rs = 20000 * ( 5.0 - Vrl) / Vrl;
  //Aquí hi ha la suposició: Suposem que estem a 1000ppm.
  //Si és així, aquesta és la resistència que obtenim.
  float Ro =  58740;
  //Mostrem per pantalla el valor de Rs/Ro.  
  Serial.print("Rs/Ro: ");  
  Serial.print(Rs/Ro);
  delay ( 5000 );
}

El circuit, tal i com el tenim muntat, sembla que funciona i és que, abocant el gas d’un encenedor prop del sensor, fa que s’obtingui una relació Rs/Ro més baixa, amb la qual cosa indica que detecta més gas.

Si algú té comentaris, propostes o suggeriments, no dubteu en contactar amb nosaltres !