Hace unas semana que quedé impresionado por el proyecto Leptos: Se trata de un sistema para medir la calidad del aire que nos rodea y hace muy poco han publicado una serie de tutoriales para montarlo con Arduino. La idea es poder hacer unos mapas de la calidad del aire que nos rodea.
A partir de aquí comencé a leer sobre el proyectos, los componentes necesarios y me decidí a montar uno. He estado recopilando información de los sensores y he empezado a comprar algunos de los sensores.
Mi ideas es rehacer el proyecto usando ESP8266 con el fin de poder acceder a la información desde internet a la vez que se simplifica el montaje.
El primero que he recibido ha sido el sensor PPD42 que es capaz de medir el número de partículas en suspensión. He buscado algo más de información y ya sólo queda hacer el montaje
SHINYEI PPD42 sensor de particulas en suspensión
El valor de sensor se puede leer como PWM (se puede leer desde un pin digital!! ) (How to read PWM signal)
Descripción (de la página del vendedor)
Características:
- Salida PWM
- Compacto y ligero
- Fácil de instalar
- Sólo necesita un tipo de alimentación
- Barato
Aplicaciones:
- Purificadores de aire
- Aire acondicionados
- Instrumentos de medida de calidad del aire
Datos a tener en cuenta:
- Usa medidas ópticas es capaz de detectar partículas de 1 micra o más
- Utiliza dos salidas distintes para distinta sensibilidad
- 5 VDC power supply
- Detecta hasta 8000pcs / 283ml
La medición se hace contando el tiempo que las partículas ocupan determinada posición (donde se corta un haz de luz infrarroja) LOW Pulse Occupancy time (LPO time). LPO time es proporcional a la concentración PM.
Nota: El sensor usa un método de conteo, no de peso como otros sensores, por tanto la unidad es pcs/L o pcs/0.01cf.
Pinout
¡¡Cuidado que el cable que traen algunas placas induce a error por los colores!!
En esta imagen del sensor que vende seeedstudio con su conector Groove queda mucho más claro
- GND
- Output P2
- Vcc: 5V 90mA
- Output P1
- Input (T1), threshold for P2
Forma y cuidados de uso
- Mantener el sensor en la posición indicada hacia arriba.
- Se necesitan 3 minutos de calentamiento antes de la primera medida.
- ¡¡ NO TOCAR LOS POTENCIÓMETROS!!! YA VIENEN CONFIGURADOS DE FÁBRICA
Ejemplo de código
- Conectamos el sensor a la entrada D8
- Este es el código del ejemplo
/* Grove - Dust Sensor Demo v1.0 Interface to Shinyei Model PPD42NS Particle Sensor Program by Christopher Nafis Written April 2012 http://www.seeedstudio.com/depot/grove-dust-sensor-p-1050.html http://www.sca-shinyei.com/pdf/PPD42NS.pdf JST Pin 1 (Black Wire) => //Arduino GND JST Pin 3 (Red wire) => //Arduino 5VDC JST Pin 4 (Yellow wire) => //Arduino Digital Pin 8 */ int pin = 8; unsigned long duration; unsigned long starttime; unsigned long sampletime_ms = 2000; //sampe 30s unsigned long lowpulseoccupancy = 0; float ratio = 0; float concentration = 0; void setup() { Serial.begin(9600); pinMode(8,INPUT); starttime = millis();//get the current time; } void loop() { duration = pulseIn(pin, LOW); lowpulseoccupancy = lowpulseoccupancy+duration; if ((millis()-starttime) >= sampletime_ms)//if the sampel time = = 30s { ratio = lowpulseoccupancy/(sampletime_ms*10.0); // Integer percentage 0>100 concentration = 1.1*pow(ratio,3)-3.8*pow(ratio,2)+520*ratio+0.62; // using spec sheet curve Serial.print("concentration = "); Serial.print(concentration); Serial.println(" pcs/0.01cf"); Serial.println("\n"); lowpulseoccupancy = 0; starttime = millis(); } }
Del que obtenemos 3 resultados: lowpulseoccupancy, ratio and concentration:
- «lowpulseoccupancy» representa el Low Pulse Occupancy Time(LPO Time) detectado en 30s. Su unidad son los microsegundos.
- «ratio» refleja en qué nivel LPO Time se llegó al tiempo de espera.
- «concentration» es una cifra con sentido físico. Se calcula a partir de la gráfica del fabricante para LPO time.
¿Cómo funciona?
Esencialmente se calienta el aire y se mide la cantidad de partículas que se mueven
Documentación
- Documentación seeedstudio
- DataSheet
- Cómo funciona
- Wiki sobre el sensor
- Datasheet del fabricante
- Proyecto que lo usa
- Otro proyecto que lo usa
- Proyecto con ESP8266
- Proyecto