- Componentes requeridos
- Sensor agudo GP2Y1014AU0F
- Módulo de pantalla OLED
- Diagrama de circuito
- Construyendo el circuito en la placa de rendimiento
- Explicación del código para el analizador de calidad del aire
- Prueba de la interfaz del sensor Sharp GP2Y1014AU0F con Arduino
La contaminación del aire es un problema importante en muchas ciudades y el índice de calidad del aire empeora cada día. Según el informe de la Organización Mundial de la Salud, más personas mueren prematuramente por los efectos de las partículas peligrosas presentes en el aire que por los accidentes automovilísticos. Según la Agencia de Protección Ambiental (EPA), el aire interior puede ser de 2 a 5 veces más tóxico que el aire exterior. Entonces, aquí construimos un proyecto para monitorear la calidad del aire midiendo la densidad de las partículas de polvo en el aire.
Entonces, como continuación de nuestros proyectos anteriores como el detector de GLP, el detector de humo y el monitor de calidad del aire, aquí vamos a conectar el sensor Sharp GP2Y1014AU0F con Arduino Nano para medir la densidad del polvo en el aire. Además del sensor de polvo y Arduino Nano, también se utiliza una pantalla OLED para mostrar los valores medidos. El sensor de polvo GP2Y1014AU0F de Sharp es muy eficaz para detectar partículas muy finas como el humo del cigarrillo. Está diseñado para su uso en purificadores de aire y acondicionadores de aire.
Componentes requeridos
- Arduino Nano
- Sensor agudo GP2Y1014AU0F
- Módulo de pantalla OLED SPI de 0.96 '
- Cables de puente
- Condensador de 220 µf
- Resistencia de 150 Ω
Sensor agudo GP2Y1014AU0F
El GP2Y1014AU0F de Sharp es un pequeño sensor óptico de polvo / calidad del aire de salida analógica de seis pines que está diseñado para detectar partículas de polvo en el aire. Funciona según el principio de dispersión láser. Dentro del módulo del sensor, un diodo emisor de infrarrojos y un fotosensor están dispuestos en diagonal cerca del orificio de entrada de aire, como se muestra en la siguiente imagen:
Cuando el aire que contiene partículas de polvo entra en la cámara del sensor, las partículas de polvo dispersan la luz LED IR hacia el fotodetector. La intensidad de la luz dispersa depende de las partículas de polvo. Cuantas más partículas de polvo haya en el aire, mayor será la intensidad de la luz. El voltaje de salida en el pin V OUT del sensor cambia según la intensidad de la luz dispersa.
Configuración de pines del sensor GP2Y1014AU0F:
Como se mencionó anteriormente, el sensor GP2Y1014AU0F viene con un conector de 6 pines. La siguiente figura y tabla muestran las asignaciones de pines para GP2Y1014AU0F:
S. NO. |
Nombre de PIN |
Pin Descripción |
1 |
V-LED |
Pin LED Vcc. Conecte a una resistencia de 5 V a 150 Ω |
2 |
LED-GND |
Pin de tierra del LED. Conectarse a GND |
3 |
LED |
Se usa para encender / apagar el LED. Conéctese a cualquier pin digital de Arduino |
4 |
S-GND |
Pin de tierra del sensor. Conéctese a GND de Arduino |
5 |
V SALIDA |
Pin de salida analógica del sensor. Conéctese a cualquier pin analógico |
6 |
V CC |
Pin de suministro positivo. Conéctese a 5V de Arduino |
Especificaciones del sensor GP2Y1014AU0F:
- Bajo consumo de corriente: 20 mA máx.
- Voltaje de funcionamiento típico: 4,5 V a 5,5 V
- Tamaño de polvo mínimo detectable: 0,5 µm
- Rango de detección de densidad de polvo: hasta 580 ug / m 3
- Tiempo de detección: menos de 1 segundo
- Dimensiones: 46.0 x 30.0 x 17.6 mm (1.81 x 1.18 x 0.69 '')
Módulo de pantalla OLED
OLED (diodos emisores de luz orgánicos) es una tecnología de autoemisión de luz, construida colocando una serie de películas delgadas orgánicas entre dos conductores. Se produce una luz brillante cuando se aplica una corriente eléctrica a estas películas. Los OLED utilizan la misma tecnología que los televisores, pero tienen menos píxeles que en la mayoría de nuestros televisores.
Para este proyecto, estamos usando una pantalla OLED monocromática de 7 pines SSD1306 de 0.96 ”. Puede funcionar en tres protocolos de comunicación diferentes: modo SPI de 3 cables, modo SPI de cuatro cables y modo I2C. Los pines y sus funciones se explican en la siguiente tabla:
Ya hemos cubierto OLED y sus tipos en detalle en el artículo anterior.
Nombre de PIN |
Otros nombres |
Descripción |
Gnd |
Suelo |
Pin de tierra del módulo |
Vdd |
Vcc, 5 V |
Pin de alimentación (3-5 V tolerable) |
SCK |
D0, SCL, CLK |
Actúa como el pin del reloj. Utilizado tanto para I2C como para SPI |
SDA |
D1, MOSI |
Pin de datos del módulo. Utilizado tanto para IIC como para SPI |
RES |
RST, RESET |
Restablece el módulo (útil durante SPI) |
corriente continua |
A0 |
Pin de comando de datos. Utilizado para el protocolo SPI |
CS |
Selección de chip |
Útil cuando se usa más de un módulo bajo el protocolo SPI |
Especificaciones OLED:
- IC del controlador OLED: SSD1306
- Resolución: 128 x 64
- Ángulo visual:> 160 °
- Voltaje de entrada: 3,3 V ~ 6 V
- Color de píxel: azul
- Temperatura de trabajo: -30 ° C ~ 70 ° C
Obtenga más información sobre OLED y su interfaz con diferentes microcontroladores siguiendo el enlace.
Diagrama de circuito
El diagrama de circuito para la interfaz del sensor Sharp GP2Y1014AU0F con Arduino se muestra a continuación:
El circuito es muy simple ya que solo estamos conectando el sensor GP2Y10 y el módulo de pantalla OLED con Arduino Nano. El sensor GP2Y10 y el módulo de pantalla OLED se alimentan con + 5V y GND. El pin V0 está conectado con el pin A5 de Arduino Nano. El pin LED del sensor está conectado al pin 12 digital de Arduino. Dado que el módulo de pantalla OLED utiliza comunicación SPI, hemos establecido una comunicación SPI entre el módulo OLED y Arduino Nano. Las conexiones se muestran en la siguiente tabla:
S. No |
Pin del módulo OLED |
Pin de Arduino |
1 |
GND |
Suelo |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
corriente continua |
11 |
7 |
CS |
12 |
S. No |
Pin del sensor |
Pin de Arduino |
1 |
Vcc |
5V |
2 |
V O |
A5 |
3 |
S-GND |
GND |
4 |
LED |
7 |
5 |
LED-GND |
GND |
6 |
V-LED |
Resistencia de 5 V a 150 Ω |
Construyendo el circuito en la placa de rendimiento
Después de soldar todos los componentes en la placa de perforación, se verá como a continuación. Pero también se puede construir en una placa de pruebas. He soldado el sensor GP2Y1014 en la misma placa que usé para conectar el sensor SDS011. Mientras suelda, asegúrese de que los cables de soldadura estén a una distancia suficiente entre sí.
Explicación del código para el analizador de calidad del aire
El código completo de este proyecto se encuentra al final del documento. A continuación, explicamos algunas partes importantes del código.
El código utiliza el Adafruit_GFX , y Adafruit_SSD1306 bibliotecas. Estas bibliotecas se pueden descargar desde el Administrador de bibliotecas en el IDE de Arduino e instalarlas desde allí. Para eso, abra el IDE de Arduino y vaya a Sketch <Incluir biblioteca <Administrar bibliotecas . Ahora busque Adafruit GFX e instale la biblioteca Adafruit GFX de Adafruit.
Del mismo modo, instale las bibliotecas Adafruit SSD1306 de Adafruit.
Después de instalar las bibliotecas en Arduino IDE, inicie el código incluyendo los archivos de bibliotecas necesarios. El sensor de polvo no requiere ninguna biblioteca, ya que estamos leyendo los valores de voltaje directamente desde el pin analógico de Arduino.
#incluir
Luego, defina el ancho y la altura de OLED. En este proyecto, usamos una pantalla OLED SPI de 128 × 64. Se puede cambiar el SCREEN_WIDTH y SCREEN_HEIGHT variables de acuerdo a su pantalla.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Luego defina los pines de comunicación SPI donde se conecta la pantalla OLED.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Luego, cree una instancia de visualización de Adafruit con el ancho y alto definidos anteriormente con el protocolo de comunicación SPI.
Pantalla Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Después de eso, defina el sensor de polvo y los pines LED. El pin de detección es el pin de salida del sensor de polvo que se usa para leer los valores de voltaje, mientras que el pin del LED se usa para encender / apagar el LED IR.
int sensePin = A5; int ledPin = 7;
Ahora, dentro de la función setup () , inicialice Serial Monitor a una velocidad de 9600 baudios para fines de depuración. Además, inicialice la pantalla OLED con la función begin () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC);
Dentro de la función loop () , lea los valores de voltaje del pin analógico 5 de Arduino Nano. Primero, encienda el LED IR y luego espere 0.28ms antes de tomar una lectura del voltaje de salida. Después de eso, lea los valores de voltaje del pin analógico. Esta operación toma alrededor de 40 a 50 microsegundos, así que introduzca un retraso de 40 microsegundos antes de apagar el LED del sensor de polvo. De acuerdo con las especificaciones, el LED debe encenderse una vez cada 10 ms, así que espere el resto del ciclo de 10 ms = 10000 - 280 - 40 = 9680 microsegundos .
digitalWrite (ledPin, BAJO); delayMicroseconds (280); outVo = analogRead (sensePin); delayMicroseconds (40); digitalWrite (ledPin, ALTO); delayMicroseconds (9680);
Luego, en las siguientes líneas, calcule la densidad del polvo utilizando el voltaje de salida y el valor de la señal.
sigVolt = outVo * (5/1024); dustLevel = 0.17 * sigVolt - 0.1;
Después de eso, establezca el tamaño y el color del texto usando setTextSize () y setTextColor () .
display.setTextSize (1); display.setTextColor (BLANCO);
Luego, en la siguiente línea, defina la posición donde comienza el texto usando el método setCursor (x, y) . E imprima los valores de densidad del polvo en la pantalla OLED utilizando la función display.println () .
display.println ("Polvo"); display.println ("Densidad"); display.setTextSize (3); display.println (dustLevel);
Y en el último, llame al método display () para mostrar el texto en la pantalla OLED.
display.display (); display.clearDisplay ();
Prueba de la interfaz del sensor Sharp GP2Y1014AU0F con Arduino
Una vez que el hardware y el código están listos, es hora de probar el sensor. Para eso, conecte el Arduino a la computadora portátil, seleccione la placa y el puerto, y presione el botón de carga. Como puede ver en la imagen de abajo, mostrará la densidad del polvo en la pantalla OLED.
El video y el código de trabajo completo se dan a continuación. Espero que hayas disfrutado del tutorial y hayas aprendido algo útil. Si tiene alguna pregunta, déjela en la sección de comentarios o utilice nuestros foros para otras consultas técnicas.