- Componentes requeridos
- Sensor Nova PM SDS011
- Módulo de pantalla OLED de 0.96 '
- Diagrama de circuito para analizador de calidad del aire
- Construyendo el circuito en la placa de rendimiento
- Explicación del código para el monitor de calidad del aire
- Prueba del monitor de calidad del aire de 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 dispositivo para monitorear la calidad del aire midiendo las partículas PM2.5 y PM10 en el aire.
Anteriormente utilizamos el sensor de gas MQ135 para el monitor de calidad del aire y el sensor Sharp GP2Y1014AU0F para medir la densidad del polvo en el aire. Esta vez usamos un sensor SDS011 con Arduino Nano para construir el analizador de calidad del aire. El sensor SDS011 puede calcular las concentraciones de partículas PM2.5 y PM10 en el aire. Aquí, los valores de PM2.5 y PM 10 en tiempo real se mostrarán en la pantalla OLED.
Componentes requeridos
- Arduino Nano
- Sensor Nova PM SDS011
- Módulo de pantalla OLED SPI de 0.96 '
- Cables de puente
Sensor Nova PM SDS011
El sensor SDS011 es un sensor de calidad del aire desarrollado por Nova Fitness. Funciona según el principio de dispersión láser y puede obtener una concentración de partículas entre 0,3 y 10 μm en el aire. Este sensor consta de un pequeño ventilador, una válvula de entrada de aire, un diodo láser y un fotodiodo. El aire entra por la entrada de aire donde una fuente de luz (láser) ilumina las partículas y la luz dispersa es transformada en señal por un fotodetector. Estas señales luego se amplifican y procesan para obtener la concentración de partículas de PM2.5 y PM10.
Especificaciones del sensor SDS011:
- Salida: PM2.5, PM10
- Rango de medición: 0.0-999.9μg / m3
- Voltaje de entrada: 4,7 V a 5,3 V
- Corriente máxima: 100 mA
- Corriente de sueño: 2 mA
- Tiempo de respuesta: 1 segundo
- Frecuencia de salida de datos en serie: 1 vez / segundo
- Resolución del diámetro de partícula: ≤ 0.3μm
- Error relativo: 10%
- Rango de temperatura: -20 ~ 50 ° C
Módulo de pantalla OLED de 0.96 '
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:
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 |
Hemos cubierto un artículo completo sobre pantallas OLED y sus tipos aquí.
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 para analizador de calidad del aire
El diagrama de circuito para medir partículas PM2.5 y PM10 usando Arduino es muy simple y se muestra a continuación.
El sensor SDS011 y el módulo de pantalla OLED se alimentan con + 5V y GND. Los pines transmisor y receptor de SDS011 están conectados a los pines D3 y D4 de Arduino Nano. 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 |
Construyendo el circuito en la placa de rendimiento
También he soldado todos los componentes en la placa de perforación para que se vea ordenada. Pero también puedes hacerlos en una protoboard. Las tablas que hice están debajo. Mientras suelda, asegúrese de no clasificar los cables. La placa perf que soldé se muestra a continuación:
Explicación del código para el monitor 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 las SDS011, Adafruit_GFX , y Adafruit_SSD1306 bibliotecas. Estas bibliotecas se pueden descargar desde el Administrador de bibliotecas en el IDE de Arduino y se pueden instalar desde allí. Para eso, abra el IDE de Arduino y vaya a Sketch> Incluir biblioteca> Administrar bibliotecas . Ahora busque SDS011 e instale la biblioteca de sensores SDS de R. Zschiegner.
De manera similar, instale las bibliotecas Adafruit GFX y Adafruit SSD1306 de Adafruit.
Después de instalar las bibliotecas en Arduino IDE, inicie el código incluyendo los archivos de biblioteca necesarios.
#incluir
En las siguientes líneas, defina dos variables para almacenar los valores de PM10 y PM2.5.
flotador p10, p25;
Luego, defina el ancho y la altura de OLED. En este proyecto, usamos una pantalla OLED SPI de 128 × 64. Puede cambiar esas variables SCREEN_WIDTH y SCREEN_HEIGHT de acuerdo con 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);
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 y el sensor SDS011 con la función begin () .
my_sds.begin (3,4); Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC);
Dentro del bucle vacío (), lea los valores de PM10 y PM2.5 del sensor SDS011 e imprima las lecturas en un monitor en serie.
bucle vacío () {error = my_sds.read (& p25, & p10); if (! error) {Serial.println ("P2.5:" + String (p25)); Serial.println ("P10:" + Cadena (p10));
Después de eso, establezca el tamaño y el color del texto usando setTextSize () y setTextColor () .
display.setTextSize (2); display.setTextColor (BLANCO);
Luego, en la siguiente línea, defina la posición para comenzar el texto usando el método setCursor (x, y) . Aquí mostraremos los valores PM2.5 y PM10 en la pantalla OLED, por lo que la primera línea comienza en (0,15) mientras que la segunda línea comienza en las coordenadas (0, 40).
display.setCursor (0,15); display.println ("PM2.5"); display.setCursor (67,15); display.println (p25); display.setCursor (0,40); display.println ("PM10"); display.setCursor (67,40); display.println (p10);
Y finalmente, llame al método display () para mostrar el texto en la pantalla OLED.
display.display (); display.clearDisplay ();
Prueba del monitor de calidad del aire de Arduino
Una vez que el hardware y el código estén listos, es hora de probar el dispositivo. 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á los valores PM2.5 y PM10 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.