Método de cálculo de medidas de Partículas obtenidas del sensor Shinyei PPD42NS

Volver a Inicio

Si bien se ha comprobado que el sensor Shinyei PPD42NS entrega un rango adecuado de las partículas en el aire, se hace necesario analizar los datos entregados y asegurar que se reportan en las variables correctas para su análisis.

El Sensor Shinyei PPD42NS entrega valores en unidades de pcs/0.01cf (normalmente, de 2000 a 10000 para una lectura de 30 segs), es decir, el sensor usa el método de conteo para medir la concentración de polvo y no el método

de peso y la unidad es pcs/L o pcs/0.01cf. Fuente.

Psc/L = Partículas por Litro

Pcs/cf = Partículas por Pie cúbico

El rango de concentración detectable es 0~28,000 pcs/liter (0~8,000pcs/0.01 CF=283ml) y el método de detección es por medio del conteo de tiempo que el pulso en el detector se mantiene en estado bajo (LOW)

http://www.howmuchsnow.com/arduino/airquality/grovedust/signal.jpg

Para obtener la medida en pcs/L es necesario capturar durante 30 segundos la suma de tiempos en los que el detector del sensor está en Bajo (LOW) indicando que hay partículas detectadas por el medidor.

En la figura de abajo, el Diodo Foto detector (Photodiode Detector) es el que entrega esta medida. Ver aquí explicación detallada de operación.

Image result for shinyei ppd42ns

Este método entregará entonces la suma de todos los tiempos que el sensor estuvo en estado LOW durante un período de 30 segundos.  Anotando que permanece en LOW cuando se detectan partículas en el rango de medición.

Otras personas han tomado las gráficas en la hoja de características del sensor PPD42N y han definido la siguiente ecuación para convertir ese tiempo (ratio) a pcs/cf. Ver el detalle aquí.

y = 1.1x^3 - 3.8x^2 + 520x + 0.62

 

Esto se incluye en código del programa en la siguiente línea:

concentration = 1.1*pow(ratio,3)-3.8*pow(ratio,2)+520*ratio+0.62;
 
Es necesario ahora convertir ese valor en pcs/cf a ug/m3 que es la unidad de medida usada en los estándares de calidad de aire. Para eso se utilizará el método propuesto en esta página WEB y basado en una investigación de 2009 de 
la Universidad de Drexel (página 12) donde se definen los siguientes supuestos para el cálculo:
 
– Se asume que todas las partículas son esféricas con una densidad particular, lo que no siempre puede ser el caso.
– Se asume que todas las partículas tienen un radio de 0.44µm en el rango de PM2.5. Esto puede variar.
– Se asume que el aire es perfectamente seco.  De hecho la humedad y la lluvia pueden ser absorbidas por las partículas en el aire y causar in incremento en su densidad.
 
El siguiente algoritmo efectuará la conversión siguiendo estos parámetros:
 
float conversion25(long concentrationPM25) {
  double pi = 3.14159;
  double density = 1.65 * pow (10, 12);
  double r25 = 0.44 * pow (10, -6);
  double vol25 = (4/3) * pi * pow (r25, 3);
  double mass25 = density * vol25;
  double K = 3531.5;
  return (concentrationPM25) * K * mass25;
}

 

Si bien con éste método ya se tiene la medida en las unidades necesarias para reporte y análisis, puede haber interés por conocer la concentración en unidades de Partes Por Millon (ppm).

Para eso se utilizará la siguiente fórmula (Fuente: Wikipedia):

Estas ecuaciones dependen de la temperatura a la que se desea hacer la conversión (se ha adicionado un sensor de temperatura para una medida más precisa). 

Se asume además una presión de 1 Atmósfera (101.325 kPa). La ecuación general es:

Y para la conversion:

onde:{\displaystyle \mathrm {mg} /\mathrm {m} ^{3}=\mathrm {ppmv} \cdot {\frac {M}{(0.08205\cdot T)}}}

Donde:

 

ppmv

= concentración de contaminador en el aire, en partes por millón en volumen

mg/m³

= milligramos de contaminante por metro cúbico de aire. Se convierte de ug multiplicando por 0.001

{\displaystyle T}T

= Temperatura atmosférica en kelvins = 273.15 + °C

0.08205

= constante universal de los gases en atm·l/(mol·K)

{\displaystyle M}M

= peso molecular del contaminante en el aire (sin dimensiones) = 28.97

La siguiente línea de código implementa estos cálculos en el programa:

ppmvPM25=((concentrationPM25_ugm3* 0.001) * ((0.08205*(273.15+temp_c))/28.97));

 

La variable temp_c corresponde a la medida de temperatura en Grados Centígrados obtenida del sensor SHT1x conectado al Arduino.  Una mejora futura será adicionar un sensor de presión atmosférica para hacer

los ajustes necesarios a la conversión usando la presión atmosférica medida.

Volver a Inicio