- Componentes requeridos
- Sensor de CO2 infrarrojo por gravedad
- Módulo de pantalla OLED de 0.96 '
- Diagrama de circuito
- Código Arduino para medir la concentración de CO2
- Prueba de la interfaz del sensor de CO2 infrarrojo por gravedad
La creciente concentración de dióxido de carbono en el aire se ha convertido ahora en un problema grave. Según el informe de la NOAA, la concentración de CO2 de ozono ha alcanzado el 0,0385 por ciento (385 ppm) y es la cantidad más alta en 2,1 millones de años. Esto significa que en un millón de partículas de aire hay 385 partículas de dióxido de carbono. Este creciente nivel de CO2 ha afectado gravemente al medio ambiente y nos ha llevado a afrontar situaciones como el cambio climático y el calentamiento global. Hay muchos dispositivos de medición de la calidad del aire instalados en las carreteras para indicar el nivel de CO2, pero también podemos construir un dispositivo de medición de CO2 de bricolaje e instalarlo en nuestra área.
En este tutorial, vamos a conectar el sensor de CO2 infrarrojo de gravedad con Arduino para medir la concentración de CO2 en PPM. El sensor de CO2 infrarrojo por gravedad es un sensor de CO2 analógico de alta precisión. Mide el contenido de CO2 en el rango de 0 a 5000 ppm. También puede consultar nuestros proyectos anteriores en los que usamos el sensor de gas MQ135, el sensor Sharp GP2Y1014AU0F y el sensor Nova PM SDS011 para construir un monitor de calidad del aire.
Componentes requeridos
- Arduino Nano
- Sensor de CO2 infrarrojo por gravedad V1.1
- Cables de puente
- Módulo de pantalla OLED SPI de 0.96 '
- Tablero de circuitos
Sensor de CO2 infrarrojo por gravedad
El sensor de CO2 infrarrojo de gravedad V1.1 es el último sensor de CO2 infrarrojo analógico de alta precisión lanzado por DFRobot. Este sensor se basa en la tecnología de infrarrojos no dispersivos (NDIR) y tiene una buena selectividad y dependencia sin oxígeno. Integra compensación de temperatura y admite salida DAC. El rango de medición efectivo de este sensor es de 0 a 5000ppm con una precisión de ± 50ppm + 3%. Este sensor de CO2 infrarrojo se puede utilizar en HVAC, monitoreo de la calidad del aire interior, monitoreo de procesos industriales y protección de seguridad, monitoreo de procesos de producción de agricultura y ganadería.
Configuración de pines del sensor de CO2 infrarrojo :
Como se mencionó anteriormente, el sensor de CO2 infrarrojo viene con un conector de 3 pines. La figura y la tabla siguientes muestran las asignaciones de pines para el sensor de CO2 infrarrojo:
Pin No. |
Nombre de PIN |
Descripción |
---|---|---|
1 |
Señal |
Salida analógica (0.4 ~ 2V) |
2 |
VCC |
VCC (4,5 ~ 5,5 V) |
3 |
GND |
GND |
Especificaciones y características del sensor infrarrojo de CO2 :
- Detección de gas: dióxido de carbono (CO2)
- Voltaje de funcionamiento: 4,5 ~ 5,5 V CC
- Tiempo de precalentamiento: 3 min
- Tiempo de respuesta: 120 s
- Temperatura de funcionamiento: 0 ~ 50 ℃
- Humedad de funcionamiento: 0 ~ 95% RH (sin condensación)
- Impermeable y anticorrosión.
- Ciclo de vida alto
- Interferencia anti-vapor de agua
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:
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 interconectar el sensor de CO2 infrarrojo analógico de gravedad para Arduino se muestra a continuación:
El circuito es muy simple ya que solo estamos conectando el sensor de CO2 infrarrojo de gravedad y el módulo de pantalla OLED con Arduino Nano. El sensor de CO2 infrarrojo y el módulo de pantalla OLED funcionan con + 5V y GND. El pin de señal (salida analógica) del sensor de CO2 está conectado al pin A0 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 |
Después de conectar el hardware de acuerdo con el diagrama del circuito, debería verse como a continuación:
Código Arduino para medir la concentración de CO2
El código completo para este proyecto de sensor de CO2 infrarrojo analógico de gravedad para Arduino se proporciona 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. El sensor de CO2 infrarrojo no requiere ninguna biblioteca, ya que estamos leyendo los valores de voltaje directamente desde el pin analógico de Arduino.
Después de instalar las bibliotecas en Arduino IDE, inicie el código incluyendo los archivos de biblioteca necesarios. El sensor de polvo no requiere ninguna biblioteca, ya que la lectura se toma directamente del 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 pin Arduino donde está conectado el sensor de CO2.
int sensorIn = A0;
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); analogReference (DEFAULT);
Dentro de la función loop () , primero lea los valores de la señal en el pin analógico de Arduino llamando a la función analogRead () . Después de eso, convierta estos valores de señal analógica en valores de voltaje.
bucle vacío () {int sensorValue = analogRead (sensorIn); voltaje de flotación = sensorValue * (5000 / 1024.0);
Después de eso, compare los valores de voltaje. Si el voltaje es 0 V, significa que ha ocurrido algún problema con el sensor. Si la tensión es superior a 0 V pero inferior a 400 V, significa que el sensor todavía está en el proceso de precalentamiento.
if (voltaje == 0) {Serial.println ("Fallo"); } else if (voltaje <400) {Serial.println ("precalentamiento"); }
Si el voltaje es igual o superior a 400 V, conviértalo en valores de concentración de CO2.
else {int voltage_diference = voltage-400; concentración de flotación = diferencia_de_voltaje * 50.0 / 16.0;
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 CO2 en la pantalla OLED utilizando la función display.println () .
display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (concentración);
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 de CO2 infrarrojo por gravedad
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. Luego abra su monitor en serie y espere un tiempo (proceso de precalentamiento), luego verá los datos finales.
Los valores se mostrarán en la pantalla OLED como se muestra a continuación:
Nota: antes de usar el sensor, deje que se caliente durante aproximadamente 24 horas para obtener los valores PPM correctos. Cuando encendí el sensor por primera vez, la concentración de CO2 de salida era de 1500 PPM a 1700 PPM y después de un proceso de calentamiento de 24 horas, la concentración de CO2 de salida disminuyó a 450 PPM a 500 PPM que son los valores de PPM correctos. Por lo tanto, es necesario calibrar el sensor antes de usarlo para medir la concentración de CO2.
Así es como se puede utilizar un sensor de CO2 infrarrojo para medir la concentración precisa de CO2 en el aire. El código completo y el video de trabajo se dan a continuación. Si tiene alguna duda, déjela en la sección de comentarios o utilice nuestros foros para obtener ayuda técnica.