Esta librería está diseñada para que puedas medir la calidad del aire interior (IAQ) con gran facilidad, utilizando tu placa MentorBit y el módulo de sensor de gases SGP30.
Si estás empezando en el mundo de la electrónica, ¡no te preocupes! MentorBit está pensado para que aprender sea fácil y divertido. Esta placa ya incluye un montón de componentes (LEDs, pulsadores, pantallas, etc.) y utiliza conectores especiales (JST) para que puedas añadir nuevos sensores y módulos sin tener que pelearte con un montón de cables. Pásate por nuestra web para saber más de MentorBit y nuestros productos pinchando aquí.
Con esta librería, tus proyectos podrán "respirar" y analizar el ambiente, monitorizando compuestos orgánicos volátiles y niveles equivalentes de CO₂, para crear entornos más saludables e inteligentes.
El SGP30 es un sensor digital de gases de óxido de metal (MOX) diseñado específicamente para medir la calidad del aire en interiores. Es capaz de detectar una amplia gama de Compuestos Orgánicos Volátiles Totales (TVOC) y de proporcionar una lectura de Dióxido de Carbono equivalente (eCO₂).
Los TVOC son emitidos por pinturas, disolventes, muebles, productos de limpieza e incluso por las personas. El eCO₂ se calcula a partir de la concentración de hidrógeno y suele estar correlacionado con la presencia de personas en una habitación, sirviendo como un indicador clave para la ventilación.
La librería MentorBit-SGP30 facilita al máximo la obtención de datos del sensor. Abstrae la comunicación I2C y los comandos necesarios, permitiéndote obtener los valores de TVOC y eCO₂ con funciones muy sencillas.
Está adaptada para que su uso con MentorBit sea lo más sencillo posible.
- Un monitor de calidad del aire para tu hogar, aula u oficina.
- Un sistema de ventilación inteligente que active un ventilador cuando los niveles de eCO₂ o TVOC sean altos.
- Un dispositivo portátil que te avise cuándo es necesario ventilar una estancia.
- Proyectos de registro de datos (datalogging) para estudiar cómo varía la calidad del aire a lo largo del día.
Conecta el módulo SGP30 al puerto marcado como I2C en la sección de comunicaciones de la placa MentorBit.
- Abre tu entorno de programación IDE de Arduino.
- Ve al menú Programa -> Incluir Librería -> Administrar Librerías...
- En el buscador, escribe MentorBit-SGP30 y haz clic en "Instalar".
- El IDE también instalará las dependencias necesarias automáticamente.
Este ejemplo inicializa el sensor y luego toma una medida de la calidad del aire cada segundo, mostrando los resultados en el monitor serie.
#include <MentorBitSGP30.h>
// Creamos el objeto para nuestro sensor de calidad de aire
MentorBit_SGP30 miSGP30;
// Variables para el temporizador (para medir cada segundo sin usar delay)
unsigned long tiempoAnterior = 0;
void setup() {
// Inicializamos el monitor serial
Serial.begin(9600);
while (!Serial); // Espera a que se abra la consola serie
// Inicializamos el sensor
if (!miSGP30.begin()) {
Serial.println("No se pudo encontrar el sensor SGP30. Revisa las conexiones.");
while (1);
}
Serial.println("Sensor SGP30 encontrado. Calentando...");
}
void loop() {
// El sensor debe ser leído cada segundo para mantener el algoritmo de calibración
if (millis() - tiempoAnterior >= 1000) {
tiempoAnterior = millis();
// Realizamos una nueva medida
if (miSGP30.tomarMedidas()) {
// Nota: Durante los primeros 15 segundos, el sensor devuelve valores fijos (400 ppm eCO2, 0 ppb TVOC) mientras se calibra.
Serial.print("eCO2: ");
Serial.print(miSGP30.obtenerECO2());
Serial.print(" ppm\t");
Serial.print("TVOC: ");
Serial.print(miSGP30.obtenerTVOC());
Serial.println(" ppb");
} else {
Serial.println("Error al tomar la medida.");
}
}
}-
bool begin()
Inicializa el SGP30 y la comunicación I2C. Devuelvetruesi la inicialización fue exitosa. -
bool tomarMedidas()
Realiza una nueva lectura de calidad del aire. Debes llamar a esta función cada vez que quieras tomar medidas para que el algoritmo interno del sensor se accione correctamente. Devuelvetruesi la lectura fue exitosa. -
uint16_t obtenerTVOC()
Devuelve la última medición de Compuestos Orgánicos Volátiles Totales en partes por billón (ppb). Solo es válido después de llamar atomarMedidas(). -
uint16_t obtenerECO2()
Devuelve la última medición de CO₂ equivalente en partes por millón (ppm). Solo es válido después de llamar atomarMedidas(). -
uint16_t obtenerH2Crudo()
Devuelve la señal cruda del sensor de Hidrógeno. Útil para aplicaciones avanzadas. -
uint16_t obtenerEthanolCrudo()
Devuelve la señal cruda del sensor de Etanol. Útil para aplicaciones avanzadas. -
String obtenerNumeroSerie()
Devuelve el número de serie único del chip del sensor, útil para identificarlo.

