Sensor de Gas VOC y eCO2 Grove (SGP30)
En esta sección, detallaremos cómo funcionan los sensores, cómo obtener datos del sensor usando Wio Terminal y cómo enviar los datos usando Wio Terminal & Grove - Wio-E5.
Actualizable a Sensores Industriales
Con el controlador S2110 y el registrador de datos S2100 de SenseCAP, puedes convertir fácilmente el Grove en un sensor LoRaWAN®. Seeed no solo te ayuda con la creación de prototipos, sino que también te ofrece la posibilidad de expandir tu proyecto con la serie SenseCAP de sensores industriales robustos.
La carcasa IP66, la configuración Bluetooth, la compatibilidad con la red global LoRaWAN®, la batería integrada de 19 Ah y el potente soporte de la APP hacen que el SenseCAP S210x sea la mejor opción para aplicaciones industriales. La serie incluye sensores para humedad del suelo, temperatura y humedad del aire, intensidad de luz, CO2, EC y una estación meteorológica 8 en 1. Prueba el último SenseCAP S210x para tu próximo proyecto industrial exitoso.
Principio de Funcionamiento de los Sensores
El SGP30 es un sensor de gas interior de óxido metálico con múltiples elementos sensores en un solo núcleo. Incorpora cuatro elementos sensores de gas y tiene una señal de salida de calidad del aire completamente calibrada, principalmente para la detección de calidad del aire.
La parte sensora (MEMS) del SGP30 se basa en una película calentada de nanopartículas de óxido metálico (MOx). El material sensible a gases hace reaccionar el oxígeno adsorbido en las partículas de óxido metálico con el gas objetivo, liberando así electrones. Esto resulta en un cambio en la resistencia de la capa de óxido metálico medida por el sensor.
En resumen, la presencia del gas reductor hace que la concentración de oxígeno en la superficie del material sensible a gases disminuya, cambiando la resistencia (o conductividad) del semiconductor. La detección posterior de la resistencia, el procesamiento de señales y la conversión son realizados por la sección del circuito (ASIC).

Para más información sobre el uso del Sensor de Gas VOC y eCO2 Grove, consulta su referencia aquí.
Materiales Requeridos
![]() | ![]() | ![]() |
Wio Terminal | Grove - Wio-E5 | Sensor de Gas VOC y eCO2 Grove (SGP30) |
Preparación Preliminar
Conexión
En esta rutina, necesitamos conectarnos a una puerta de enlace LoRa® cercana con la ayuda de Grove - Wio-E5. Necesitamos configurar el puerto Grove en el lado derecho del Wio Terminal como un puerto serie suave para recibir comandos AT. Grove Sensor de Gas VOC y eCO2 (en el lado izquierdo) según el diagrama a continuación.

Preparación del software
Paso 1. Necesitas instalar un Software Arduino.
Paso 2. Inicia la aplicación Arduino.

Paso 3. Añade Wio Terminal al IDE de Arduino.
Abre tu IDE de Arduino, haz clic en File > Preferences
, y copia la siguiente url en Additional Boards Manager URLs:
https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json

Haz clic en Tools > Board > Board Manager
y busca Wio Terminal en el Administrador de Placas.

Paso 4. Selecciona tu placa y puerto
Necesitarás seleccionar la entrada en el menú Tools > Board
que corresponda a tu Arduino. Selecciona el Wio Terminal.

Selecciona el dispositivo serie de la placa Wio Terminal desde el menú Tools -> Port
. Es probable que sea COM3 o superior (COM1 y COM2 generalmente están reservados para puertos serie de hardware). Para averiguarlo, puedes desconectar tu placa Wio Terminal y volver a abrir el menú; la entrada que desaparezca debería ser la placa Arduino. Vuelve a conectar la placa y selecciona ese puerto serie.
Para usuarios de Mac, será algo como /dev/cu.usbmodem141401
.
Si no puedes subir el sketch, principalmente es porque Arduino IDE no pudo poner el Wio Terminal en modo bootloader. (Porque el MCU se detuvo o tu programa está manejando USB) La solución es poner tu Wio Terminal en modo bootloader manualmente.

Paso 5. Descarga la librería Grove - Wio-E5
Visita los repositorios de Disk91_LoRaE5 y descarga todo el repositorio a tu unidad local.
Paso 6. Añadir librerías al Arduino IDE
Ahora, la librería del Acelerómetro Digital de 3 Ejes puede ser instalada en el Arduino IDE. Abre el Arduino IDE, y haz clic en sketch -> Include Library -> Add .ZIP Library
, y elige el archivo Disk91_LoRaE5
que acabas de descargar.

Obtener el valor del Sensor de Gas VOC y eCO2 Grove (SGP30)
Paso 1. Descarga la librería de código del Sensor de Gas VOC y eCO2 Grove
Visita los repositorios de SGP30_Gas_Sensor y descarga todo el repositorio a tu unidad local.
Paso 2. Añadir librerías al Arduino IDE
Ahora, la librería del Sensor de Gas VOC y eCO2 Grove puede ser instalada en el Arduino IDE. Abre el Arduino IDE, y haz clic en sketch -> Include Library -> Add .ZIP Library
, y elige el archivo SGP30_Gas_Sensor
que acabas de descargar.

Paso 3. Obtener datos de VOC y eCO2 del SGP30
Este repositorio nos muestra los datos de VOC y eCO2 obtenidos. En el código, usamos la función sgp_measure_signals_blocking_read()
para obtener la información de VOC y eCO2, que es positiva y entera.
#include <Arduino.h>
#include "sensirion_common.h"
#include "sgp30.h"
void setup() {
s16 err;
u32 ah = 0;
u16 scaled_ethanol_signal, scaled_h2_signal;
Serial.begin(115200);
Serial.println("serial start!!");
/* Init module,Reset all baseline,The initialization takes up to around 15 seconds, during which
all APIs measuring IAQ(Indoor air quality ) output will not change.Default value is 400(ppm) for co2,0(ppb) for tvoc*/
while (sgp_probe() != STATUS_OK) {
Serial.println("SGP failed");
while (1);
}
/*Read H2 and Ethanol signal in the way of blocking*/
err = sgp_measure_signals_blocking_read(&scaled_ethanol_signal,
&scaled_h2_signal);
if (err == STATUS_OK) {
Serial.println("get ram signal!");
} else {
Serial.println("error reading signals");
}
// Set absolute humidity to 13.000 g/m^3
//It's just a test value
sgp_set_absolute_humidity(13000);
err = sgp_iaq_init();
}
void loop() {
s16 err = 0;
u16 tvoc_ppb, co2_eq_ppm;
err = sgp_measure_iaq_blocking_read(&tvoc_ppb, &co2_eq_ppm);
if (err == STATUS_OK) {
Serial.print("tVOC Concentration:");
Serial.print(tvoc_ppb);
Serial.println("ppb");
Serial.print("CO2eq Concentration:");
Serial.print(co2_eq_ppm);
Serial.println("ppm");
} else {
Serial.println("error reading IAQ values\n");
}
delay(1000);
}
Abre el monitor serie del IDE de Arduino y selecciona la velocidad de baudios como 115200 y observa el resultado.

Enviar datos a través de Grove - Wio-E5
Combinamos el código anterior de Grove - Wio-E5 para conectar a la red LoRa®. Usando el comando AT es posible enviar el valor del Sensor de Gas VOC y eCO2 Grove a la red LoRa®.
En el código de la sección anterior, sabemos que los valores de VOC y eCO2 son enteros positivos. Y la longitud de los dos enteros no excederá los 8 bits.
De esta manera, determinamos el contenido, tamaño y formato de los datos a enviar a través del comando AT. Bien podríamos configurar un array lo suficientemente grande, almacenar las cadenas que necesitamos enviar en el array, y finalmente usar la función send_sync() para enviar el array.
El pseudo-código para la idea anterior es aproximadamente el siguiente.
......
s16 err = 0;
u16 tvoc_ppb, co2_eq_ppm;
err = sgp_measure_iaq_blocking_read(&tvoc_ppb, &co2_eq_ppm);
static uint8_t data[4] = { 0x00 }; //Use the data[] to store the values of the sensors
data_decord(tvoc_ppb, co2_eq_ppm, data);
if ( lorae5.send_sync( //Sending the sensor values out
8, // LoRaWan Port
data, // data array
sizeof(data), // size of the data
false, // we are not expecting a ack
7, // Spread Factor
14 // Tx Power in dBm
)
)
......
El resto de lo que necesitamos hacer es usar la función begin()
para inicializar Grove - Wio-E5 y la función setup()
para configurar la información del triplete de Grove - Wio-E5. Cuando enviamos un mensaje de datos usando la función send_sync()
, intentaremos unirnos a LoRaWAN® al mismo tiempo, y una vez que tenga éxito, los datos se enviarán y se devolverá información como la intensidad de la señal y la dirección.
El ejemplo de código completo se puede encontrar aquí.
No recomendamos que subas el código ahora para ver los resultados, porque en este punto aún no has configurado Helium/TTN y obtendrás un resultado de "Join failed". Recomendamos que subas este código después de haber completado el capítulo Conectando a Helium o Conectando a TTN para completar el proceso completo de envío de datos.
Una vez que hayas experimentado y entendido cómo funciona el Sensor de Gas VOC y eCO2 Grove y el formato de datos, por favor continúa con el siguiente paso del tutorial para unirte a LoRaWAN®.
Sección Helium | |
Introducción a Helium En este capítulo, introduciremos los controles de la consola de Helium que usamos para obtener una primera impresión de la consola de Helium. Ir al capítulo > | |
Conectando a Helium Esta sección describe cómo configurar Helium para que los datos del sensor puedan ser subidos exitosamente y mostrados en Helium. Ir al capítulo > | |
Sección TTN | |
Introducción a TTN En este capítulo, introduciremos los controles de la consola de TTN que usamos para obtener una primera impresión de la consola de TTN. Ir al capítulo > | |
Conectando a TTN Esta sección describe cómo configurar TTN para que los datos del sensor puedan ser subidos exitosamente y mostrados en TTN. Ir al capítulo > |
Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarle diferentes tipos de soporte para asegurar que su experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.
Declaración
- La marca LoRa® es una marca comercial de Semtech Corporation o sus subsidiarias.
- LoRaWAN® es una marca utilizada bajo licencia de LoRa Alliance®.