martes, 22 de marzo de 2016

Detector de partículas de polvo en el aire con sensor GP2Y10


El sensor GP2Y10 de Sharp es especialmente efectivo detectando partículas muy finas de polvo en el aire, de hasta 0.5 micras, y se utiliza frecuentemente para detectar la calidad del aire en sistemas de purificación del aire o en sistemas de aire acondicionado. Este sensor de detección óptica está compuesto internamente por un diodo emisor de infrarrojos (IRED) y por un fototransistor, colocados diagonalmente de tal forma que son capaces de detectar las reflexiones de luz sobre las partículas de polvo en el aire.
Especialmente es eficaz para detectar partículas muy finas como las del humo de un cigarrillo, pudiéndose distinguir el humo del polvo de la casa mediante un patrón de impulsos basado en comprobar el voltaje de la salida (Vo) cada 10ms, averiguando cuantas veces se interrumpe la comunicación entre el IRED y el fototransistor, y por lo tanto conociendo la densidad y la concentración de partículas de polvo o humo que hay en un determinado instante.

Sensor de polvo SHARP GP2Y10

Se trata de un sensor de muy bajo consumo, entorno a los 20mA,  que puede ser alimentado con un voltaje de hasta 7VDC. La salida es un voltaje lineal y proporcional a la cantidad de polvo detectado. La sensibilidad del sensor es de 0.5V por cada 0.1 mg/m³. Para conectarlo a nuestro Arduino, se deben de añadir una resistencia de 150Ω y un condensador de 220µF, formando un  circuito RC serie como divisor de tensión, como se puede observar en la siguiente imagen.

Conexión correcta de la entrada del sensor

El IRED del sensor GP2Y10 que tenemos conectado al pin digital 2 de Arduino permanece activo durante 0,32ms, que es la suma de lo que la salida Vo tarda en estabilizarse para poder ser leída a través del pin analógico A0 (0.28ms), más los 0.04ms que la salida Vo se mantiene en su máximo valor. Posteriormente el IRED permanece desactivado durante los 9.680ms siguientes antes de repetirse la secuencia del pulso de control (10ms) del IRED como se muestra a continuación.

Secuencia del pulso de control del IRED

En este POST voy a utilizar el sensor GP2Y10, para obtener el voltaje en la salida Vo del sensor, además de los valores de concentración y densidad de partículas de polvo en el aire mediante unas fórmulas matemáticas cotejadas con los valores que se obtienen del medidor de calidad de aire profesional DC1100 que incluyo dentro de la programación. Todo ello va a poder ser visualizado a través de un display LCD 1602 que he conectado a Arduino a través de comunicación I²C.
Para realizar la simulación de una situación en la que el ambiente esté mucho más cargado de partículas de polvo que en mi habitación, he adherido el sensor GP2Y10 a un Tupperware, de un litro de capacidad, al que además he añadido un ventilador de 12VDC con conexión directa a la fuente de alimentación, para poder incluir harina u otro elemento que tenga pequeñas partículas a través del ventilador y que este las vaya recirculando a través del orificio del sensor GP2Y10 para obtener diferentes lecturas.

Sistema de detección de partículas de polvo en el aire

En la siguiente tabla podemos comprobar el voltaje de salida (en voltios) en función de la densidad del polvo (en mg/m³), que este sensor de SHARP nos ofrece.

Gráfica de la Calidad del Aire

Para conocer la calidad del aire en cada momento nos podemos orientar por medio de la siguiente tabla, que está realizada respecto a la concentración de partículas de polvo en partes por millón (ppm) que hay en el aire:

Tabla de la calidad del aire


Lista de Materiales:


·         Arduino UNO Rev.3.

·         Cable USB tipo A-B.

·         Módulo LCM 1602 I2C V1.

·         Display 16x2 LCD 1602.

·         Sensor detector de partículas GP2Y10 de SHARP.

·         Resistencia de 150Ω.

·         Condensador electrolítico de 10V y C=220µF.

·         Ventilador de 12VDC 0.15A (C5010B12M).

·         Fuente de tensión de 12VDC.

·         Tupperware de 1L de capacidad.

·         Protoboard.

·         Cables de conexión.



Código del programa:




Video:


6 comentarios:

  1. Gracias por ayudarme, saludos desde Argentina!

    ResponderEliminar
    Respuestas
    1. Hola, disculpa pero como te salió a mí el código no me compila, voy agradecer mucho tu respuesta.

      Eliminar
  2. Me parece muy interesante este artículo, muchas gracias.

    No sé si se podrá utilizar en entornos industriales con alta concentración de polvo, es los que se quiera medir la variación de estas concentraciones en el tiempo.

    Muchas gracias

    ResponderEliminar
  3. Hola ,quisiera saber si el sensor se puede programar para que mida cada hora y que mida pm10

    ResponderEliminar
  4. Hola, muy interesante tu proyecto, una consulta el programa se puede ejecutar en otro lenguaje de programacion
    y gestor de BDs?

    Gracias por tu respuesta

    ResponderEliminar
    Respuestas
    1. Tecnologìa por cable o inalàmbrica, còmo quieres guardar los datos del sensor?

      Eliminar