Medidor de CO2 con Arduino

Además de los medidores de adquirir CO2 comerciales, también tenemos la opción de hacer nuestro propio medidor de CO2 con Arduino. Se trata de un medidor de CO2 casero que podemos hacer utilizando las herramientas que nos ofrece Arduino.

¿Qué es Arduino?

Arduino es una plataforma de hardware y de software libre. Básicamente se trata de una placa electrónica con un microcontrolador programable y a la que se le pueden conectar multitud de sensores o periféricos diferentes (luz, temperatura, humedad, etc) cuyas señales son procesadas por el microcontrolador y que como resultado dará unas señales de salida que irán conectadas para activar un led, una pantalla LCD, un servo, etc, con unas posibilidades prácticamente infinitas.

medidor de co2 con arduino

La placa de Arduino

Las placas electrónicas de Arduino son muy baratas y son muy configurables lo que permite hacer todo tipo de proyectos con ella, conectando sensores y dispositivos de salida, etc. La programación de Arduino es muy sencilla ya que se trata de un lenguaje de programación basado en el conocido lenguaje C++.

Existen numerosos tipos de placas de Arduino que varían en función de sus características. Uno de los modelos más sencillos y recomendable para empezar es la placa Arduino UNO. Hay otros modelos con características más avanzada para proyectos más complejos. Son placas de Arduino que tienen más funcionalidades como son WiFi o Bluethooth pero que para el caso de hacer un medidor de CO2, no son necesarias.

Las partes principales de una placa de Arduino son:

  • Conector USB. Permite conectar la placa a un PC para transferir el código de programación.
  • Pines de tensión para alimentar los periféricos que se conectan a la placa.
  • Pines de entradas analógicas.
  • Pines de entradas y salidas digitales. Algunas son PWM.
  • Microcontrolador programable que gestiona el programa que el transferimos.

El entorno de desarrollo: Arduino IDE

Para la programación del microncontrolador, Arduino tiene un entorno de desarrollo IDE gratuito en su página oficial ( https://www.arduino.cc ) y que podemos descargar desde ahí. Este entorno es el que nos permite editar, programar, compilar y enviar el programa desde el PC a la placa de Arduino.

Actualmente la versión más actualizada es Arduino IDE 1.8.13.

Una vez descargado e instalado el IDE Arduino, procederemos a conectar la placa con el PC a través del puerto USB. Al conectarlo, el led “on” de la placa debe encenderse y desde el IDE Arduino debemos comprobar que está reconociendo la placa. Para ello nos iremos al menú “herramientas” y desde allí veremos que aparecen seleccionados tanto el tipo de placa Arduino como el puerto al que está conectada.

Cómo hacer un medidor de CO2 con Arduino

Material necesario hacer el medidor de CO2

Estos son los componentes que necesitaremos construir nuestro medidor de CO2:

  1. Placa Arduino. Elegimos el modelo UNO, que destaca por su sencillez y ser una de las placas más conocidas de esta plataforma.
  2. Detector o Sensor MQ135. Este sensor pertenece a la serie MQ. Cada modelo es sensible a diferentes gases. Una de las características del modelo MQ135 es su sensibilidad a varios gases, entre ellos, dióxido de carbono CO2.
  3. Cables Jumper. Cables especiales para conectar los diversos periféricos y sensores con los pines de la placa
  4. Cable USB para conectar la placa con el PC
  5. Cable y pila de alimentación de 9V para dar tensión a la placa.

La placa Arduino UNO

La placa Arduino UNO es uno de los modelos más sencillos de Arduino. Es una placa que cuenta con los siguientes elementos:

Partes de placa de Arduino
  • Conector USB que nos conecta la placa con el ordenador donde tengamos instalado el IDE. A través del puerto USB se transfiere el programa que queremos ejecutar en la placa.
  • Conector de alimentación de corriente continua. Se puede conectar un transformador o un cable con una pila de 9 V.
  • Pines Power. Nos permiten dar tensión de alimentación a los distintos periféricos que tengamos conectados a la placa. Tiene salidas de 3.3 V, 5 V y GND o Ground (Tierra o masa)
  • Pines Analógicos (De A0 a A5). Son 6 pines de Entradas Analógicas para entrada de datos de sensores, potenciómetros, resistencias, etc.
  • Pines Digitales. Son 14 de Salidas Digitales (De la D0 a D13) que permiten activar luces led, relés, etc.
  • Microprocesador. En el corazón de nuestra placa, el cerebro donde reside el código de programación que se ejecutará en la placa y que previamente hemos elaborado en nuestro entorno IDE Arduino instalado en nuestro ordenador.

Sensor MQ135 de CO2 para Arduino

El sensor MQ135 pertenece a la serie de sensores MQ. Cada modelo de la serie MQ está diseñado para un tipo de gas en concreto.

Sensor MQ135 CO2 Arduino

Entre las características del sensor MQ135, destacan:

  • Amplio rango de detección.
  • Alta sensibilidad y rápida respuesta.
  • Estable y de larga duración
  • Circuito sencillo

En el caso particular del modelo MQ135, que es el que usaremos en nuestro medidor de CO2 casero, es capaz de detectar:

  • Dióxido de carbono CO2,
  • Amoniaco NH3
  • Nitratos y nitritos, NOx,
  • Alcohol
  • Benceno
  • Humo.       

Tiene una malla metálica por la que penetra el aire y en su interior hay resistencia calefactora que calienta el gas y éste entra en contacto con una superficie sensible a CO2 y que, el caso particular del sensor MQ135, es dióxido de estaño.

En cuanto al conxionado, el sensor de Co2 MQ135 tiene 4 pines:

  • Vcc: Tensión de alimentación de 5V.
  • GND (Ground): Tierra o masa.
  • DOUT: Pin de salida Digital
  • AOUT: Pin de salida Analógica

Cómo conectar el sensor MQ135 a la placa Arduino ONE

Ahora que ya tenemos todos los componentes, procederemos a conectarlos. Es muy sencillo, pero hay que hacerlo con precaución para evitar producir algún daño en la placa.

Básicamente lo que haremos es conectar la Salida Analógica del sensor MQ135 con una Entrada Analógica la placa Arduino UNO. No utilizamos la salida digital ya que vamos a hacer lecturas de datos. Utilizamos por tanto solo la salida analógica.

  1. Por tanto, conectamos con un cable jumper la salida analógica AOUTPUT del sensor MQ135 con la entrada analógica A0 de la placa Arduino UNO
  2. Para alimentar el sensor MQ135, conectamos otro cable jumper desde el pin Vcc del Sensor MQ135 al pin 5V de la placa Arduino
  3. De forma similar, conectamos con un tercer cable jumper, el pin GND del sensor MQ135 con el pin GND de la placa Arduino.

Esquema de conexión

medidor-co2-arduino

¡Ya está todo conectado!

Pero ahora nos falta lo más importante, el código de programación que debemos instalar en la memoria del microprocesador.

Código de programación Arduino para medidor de CO2

Esta parte del proyecto la haremos a través del IDE de Arduino. Este entorno nos permitirá definir el programa, escribirlo, compilarlo y subirlo a la placa a través del puerto USB.

Estructura del código de programación

Todo programa Arduino se estructura ese divide en 2 módulos: Setup y Loop.

  • El módulo Setup solo se lee una única vez, cuando se inicia la placa o tras un reset. Una vez leído, se pasa al módulo Loop.
  • La parte Loop (bucle) del programa se lee constantemente de forma cíclica, y es donde está la parte principal del programa.

En el caso de nuestro medidor de CO2, quedaría:

Función SETUP

int valorCO2;	//Define la variable Valor que almacenará un número entero

void setup(){
Serial.begin(9600);	// inicializa comunicación a 9600 bps con la consola serial del IDE
}

Función LOOP

void loop(){
valorCO2 = analogRead(A0); // lee el valor que llega por la entrada A0 y lo asigna a la variable valorCO2
Serial.println(valorCO2);	// imprime el valor de valorCO2 en la consola serial
delay(500);			//Espera medio segundo (500 ms) y vuelve a hacer el ciclo
}

Un vez escrito, se compila con el IDE y se envía a la placa Arduino.

Abrimos la consola Serie del IDE Arduino y, si todo ha ido bien, deberíamos estar viendo lecturas que se van refrescando cada medio segundo

Código de programación CON Pantalla LCD

Si todo fue bien en el apartado anterior, pero queremos ver los datos en una pantalla LCD en lugar de en la pantalla del ordenador, necesitaremos conectar esta pantalla LCD y programarla con el código correspondiente.

Material adicional necesario
  • Pantalla LCD 16×2 (16 columnas 2 filas)
  • Módulo I2C para lcd Arduino. Este módulo nos simplifica enormemente el trabajo ya que nos permite reducir el numero de conexiones entre la placa Arduino y la pantalla LCD
Conexión entre el módulo I2C y pantalla LCD

El módulo I2C tiene 16 pines que se conectan de forma paralela con los 16 pines de la pantalla LCD. Se pueden conectar soldando directamente el módulo I2C al display LCD haciendo coincidir los 16 pines de uno y otro

Conexión del módulo I2C con la placa Arduino UNO

El módulo I2C tiene 4 pines identificados como GND, VCC, SDA y SCL que irán conectados con la placa Arduino UNO mediante cables Jumper del siguiente modo:

  1. Un cable del VCC del módulo I2C al pin 5V de la placa Arduino
  2. Otro cable irá desde el pin GND del módulo I2C al pin GND de la placa Arduino UNO
  3. Un tercer cable conecta el pin SDA del módulo I2C a la entrada analógica A4 de la placa Arduino
  4. Por último, conectamos, un cable jumper desde el pin SCL del módulo I2C al pin A5 de la placa Arduino.
Código de programación para medidor CO2 Arduino con pantalla LCD

En el caso de conectar una pantalla LCD, debemos modificar el código anterior para tener incluir la pantalla LCD y su módulo I2C.

Quedaría así:

Función SETUP

#include <Wire.h>			// incluimos la librería de comunicación por I2C
#include <LCD.h>			// incluimos la librería para funciones de LCD
#include <LiquidCrystal_I2C.h>		// librería para LCD a través del módulo I2C

LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7); // Creamos el objeto lcd del tipo LiquidCrystal
 //Dirección del módulo puertos de conexión

int valorCO2;				//Define la variable ValorCO2 que almacenará un número entero

void setup()
{
lcd.setBacklightPin(3,POSITIVE);	// indicamos el número de puerto que activa la iluminación de la pantalla
lcd.setBacklight(HIGH);			// habilita iluminación posterior de LCD
lcd.begin(16, 2);			// Inicialización del LCD de 16 columnas x 2 líneas
lcd.clear();				// Borramos pantalla
}

Función LOOP

void loop()
{
valorCO2 = analogRead(A0); 	// lee el valor que llega por la entrada A0 y lo asigna a la variable
lcd.setCursor(0, 0);		// ubicamos el cursos en columna 0 y línea 0
lcd.print("Nivel de CO2:");	// Imprimimos el texto en la primera línea
lcd.setCursor(0, 1);		// desplazamos el cursos a la segunda linea
lcd.print(valorCO2);		// imprimimos en pantalla el dato de CO2 memorizado en la variable valorCO”
lcd.print(" PPM.");		// escribe el texto
}

Una vez tengamos todo instalador y probado, el siguiente paso es colocar todos los dispositivos (placa, sensor MQ 135 y display) en una caja que nos permita tenerlo todo cerrado y con una ventana en donde esté el display que necesitamos ver y donde se mostrarán los valores de CO2 así como una salida física para el sensor MQ135 para que éste pueda detectar el CO2 ambiental.

En el mercado podemos encontrar numerosos tipos distintos de cajas para los diferentes modelos de tarjetas de Arduino.

Algunas son incluso transparentes, donde se puede ver todo el contenido del proyecto y los valores que indica el display.

Caja Proyecto Arduino
Caja Proyecto Arduino

Video tutoriales para hacer un medidor de CO2 Arduino

En internet existen numerosos tutoriales para hacer este tipo de medidor de CO2 Arduino.

Video tutoriales en Español para hacer un medidor de medidor de CO2 Arduino así como el programa para le microcontrolador

Medidores de CO2