X-NODE / XN21 – BME690 Sensor Ambiental con IA

El X-NODE Environmental AI (BME690) es un módulo que integra el sensor de gas con inteligencia artificial BME690 de Bosch®, capaz de medir compuestos orgánicos volátiles (VOCs), compuestos volátiles de azufre (VSCs), presión barométrica, humedad relativa y temperatura ambiental con un consumo de corriente de hasta 50 µA en modo ultra bajo. Es ideal para integración en dispositivos móviles portátiles o el monitoreo de calidad del aire en interiores y exteriores, sistemas automáticos de intercambio, sistemas de ventilación inteligente y similares.

TABLA DE CONTENIDO

I. ¿Cómo funciona?

El módulo X-NODE Environmental AI (BME690) posee un controlador en hardware integrado con el cual es posible obtener la lectura de diversas variables que proporciona el sensor sin tener conocimientos avanzados de hardware, ya que solo es necesario enviar una serie de comandos en formato ASCII por medio del protocolo de comunicación serial UART, el protocolo I2C o el protocolo SPI, esto permite que el X-NODE sea compatible con cualquier sistema basado en un microcontrolador, microprocesador o equipos industriales. El sensor es capaz de medir presión barométrica, humedad relativa, temperatura ambiental y resistencia del gas, esta información puede utilizarse* medir la calidad del aire interior (IAQ) y para detectar compuestos orgánicos volátiles (VOCs), compuestos volátiles de azufre (VSCs) y gases como monóxido de carbono e hidrogeno.

El X-NODE Environmental AI (BME690) es compatible con el estándar mikroBUS™ de Mikroe® para un uso fácil con un gran ecosistema de kits para desarrollo de hardware, también posee conectores JST compatibles con el estándar Qwiic® de SparkFun® para una comunicación entre diversos módulos y tarjetas de desarrollo por medio del protocolo I2C de manera rápida y sencilla.

II. Descripción del hardware

  1. Sensor BME690 de Bosch®

  2. Conectores JST compatibles con Qwiic®

  3. Controlador en hardware

  4. Puertos de comunicación UART <> I2C <> SPI*.

  5. Modelo de X-NODE

  6. Tipo de X-NODE

  7. Jumper de selección para la dirección I2C (Cuando está abierto el Address es 0x77 y cuando está cerrado es 0x76)

  8. Jumpers de selección entre protocolo I2C y SPI (Al usar SPI no será posible utilizar el controlador en hardware)

  9. Jumper de habilitación para el pin SPI Chip Select (CS1 <> CS2)

  10. Conectores estándar mikroBUS™

  11. Jumper habilitador para programación del microcontrolador por UPDI

  12. Versión de hardware: R1

  13. Componente principal en el X-NODE

III. Especificaciones

Tipo

Sensor de gas, medio ambiente, calidad de aire

Aplicaciones

Monitoreo de calidad del aire en interiores y exteriores, sistemas automáticos de intercambio, sistemas de ventilación inteligente, integración en dispositivos móviles portátiles alimentados por baterías, así como proyectos de Internet de las Cosas (IoT), Industria 4.0 y casas inteligentes (Smart Home).

Módulo

Fabricante

Características

Medición de compuestos orgánicos volátiles (VOCs), compuestos volátiles de azufre (VSCs), presión barométrica de 300 - 1100 hPa, humedad relativa de 0 - 100%, temperatura ambiental de -40 a 85 °C y modo de consumo ultra bajo de 50 µA.

Interfaz

UART, I2C

Compatibilidad

Estándar mikroBUS™ y estándar Qwiic®

Tamaño

41 x 25.4 x 20.5 mm

Voltaje

3.3 V

Para la información técnica completa, puedes descargar las especificaciones del fabricante en el siguiente link: Datos Técnicos

IV. Pinout

La siguiente tabla muestra el pinout del X-NODE Environmental AI (BME690) con respecto al estándar mikroBUS™ (este último se encuentra en las dos columnas del centro).

V. Modo de uso

Para un uso fácil y rápido del X-NODE se puede hacer a través de los comandos en formato ASCII que proporciona el controlador en hardware integrado mediante una comunicación serial UART, o de forma nativa a través de protocolo I2C y SPI.

Protocolo UART

Configuración

  • Velocidad de comunicación: 115,200 bps

  • Paridad: Ninguna

  • Bits de datos: 8

  • Bits de paro: 1

Sintaxis

El protocolo UART permite enviar instrucciones en texto plano ASCII. Cada instrucción se compone del identificador del X-NODE, un comando y un final de línea.

Identificador

El identificador ID, se conforma por el modelo del X-NODE, que puede localizar en el punto 6 del apartado Descripción de hardware y se complementa con un índice, que puede ser una letra del abecedario, por defecto es la letra A, siendo posible configurarlo hasta la letra Z.

XN04_X-NODE

Lista de comandos

XN21A?

Verifica si se estableció una comunicación con éxito.

Respuesta: OK

XN21A+V

Obtiene la versión del firmware actual que integra el X-NODE.

Respuesta: XN21A=Versión_FW.Revision_HW

Ejemplo: XN21A=0.1.0.R01

XN21A+ID=(A-Z)

Cambia el index del ID por una letra diferente del abecedario de la A a la Z, la nueva letra debe ser en mayúscula. Una vez modificado, para volver a cambiarlo es necesario colocar el ID con el nuevo index.

Respuesta: OK

Ejemplo de envío: XN21C+ID=H

XN21A+GT

Obtiene el valor de Temperatura del sensor. Retorna con el valor final en °C con dos decimales.

Respuesta: XN21A=VAL

Ejemplo: XN21A=24.36

XN21A+GH

Obtiene el valor de Humedad del sensor. Retorna con un valor relativo (%) de humedad.

Respuesta: XN21A=VAL

Ejemplo: XN21A=68.14

XN21A+GP

Obtiene el valor de Presión barométrica del sensor. Retorna con el valor final en hPa con dos decimales.

Respuesta: XN21A=VAL

Ejemplo: XN21A=778.40

XN21A+GR

Obtiene el valor de la resistencia asociada al gas (H2S) del sensor*. Retorna con el valor de la resistencia ambiental en kOhms.

Respuesta: XN21A=VAL

Ejemplo: XN21A=38.72

Comandos avanzados

XN21A+SLP

Habilita el modo de descanso profundo del dispositivo para reducir el consumo de energía y deshabilitar el driver UART. Si el jumper UPDI está habilitado puede salir del modo de descanso profundo escriba un lógico bajo (0) al pin CS1.

Respuesta: OK

Ejemplo de envío: XN21A+SLP

XN21A+RST

Reinicia el dispositivo, el sensor se reconfigurará bajo los siguientes parámetros:

Oversampling THP = 16X

Calefactor (°C/ms) = 350 / 150

Respuesta: OK Ejemplo de envío: XN21A+RST

Ejemplo UART Arduino Framework

Código de ejemplo para el XC01 - R5, revisa el manual para utilizar nuestro XC01 - R5 en Arduino IDE/PlatformIO

#include "Arduino.h"

float getVariable( const char * command ){
  // Limpiamos el buffer
  if (Serial2.available()) {
    Serial2.read();
  }

  // Envía el comando
  Serial2.print(command);
  Serial2.println();

  // Espera hasta recibir una respuesta
  String variable_value = Serial2.readStringUntil('\n');

  // Si la respuesta comienza por el ID
  // entonces la comunicación fue exitosa
  if (!variable_value.startsWith("XN21A=")) {
    Serial.println("Error");
    return NAN;
  }

  // Convierte el valor en ASCII a un valor decimal
  return variable_value.substring(variable_value.indexOf('=') + 1).toFloat();
}

void setup() {
  // Inicializa el monitor serial
  Serial.begin(115200);

  // Inicializa la comunicación UART en el puerto MikroBUS
  Serial2.begin(115200, SERIAL_8N1, 9, 10);
}

void loop() {
  // Obtiene los valores de variables ambientales

  // Envía el comando para obtener la temperatura
  // Los caracteres \r\n representan los caracteres
  // <CR+LF> en el lenguaje de programación C/C++
  float temp = getVariable("XN21A+GT\r\n");

  // Envía el comando para obtener la humedad
  float hum = getVariable("XN21A+GH\r\n");

  // Envía el comando para obtener la presión
  float press = getVariable("XN21A+GP\r\n");
  
  // Envía el comando para obtener la resistencia
  float res = getVariable("XN21A+GR\r\n");

  Serial.print("Temp: ");
  Serial.print(temp);
  Serial.println(" °C");
  Serial.print("Hum: ");
  Serial.print(hum);
  Serial.println(" %");
  Serial.print("Press: ");
  Serial.print(press);
  Serial.println(" hPa");
  Serial.print("Gas: ");
  Serial.print(res);
  Serial.println(" kOhm");

  delay(1000);
}

Protocolo I2C & SPI

Para poder establecer comunicación con el X-NODE Environmental AI (BME690) es necesario hacerlo de forma nativa con el sensor integrado y con apoyo de la documentación técnica del fabricante, podrás localizar el número de parte al reverso del X-NODE (Punto 13 del apartado “Descripción de Hardware”) además de jumpers para cambiar el address I2C, el pin Chip Select para SPI y seleccionar entre el protocolo I2C y SPI.

Puedes descargar la documentación técnica del fabricante en el siguiente link: Datos Técnicos

VI. Descargas

Última actualización

¿Te fue útil?