X-NODE / XC08 - BG95 M3 Red celular 2G, LTE y GNSS

El X-NODE 2G LTE GNSS (BG95-M3) integra un módulo de conectividad celular BG95-M3 de Quectel®, brindando soluciones EGPRS, CAT-M1 y NB2-IoT con cobertura global, geolocalización GPS/GLONASS, consumo de energía ultra bajo y soporte para VoLTE (solo en CAT-M1). Cuenta con una una bandeja para nanoSIM – 4FF, además de un footprint para eSIM – MFF2 (No incluida). También cuenta con un administrador e indicador de carga de baterías lo que lo convierte en una solución ideal para la integración en dispositivos móviles portátiles, proyectos de IoT, Industria 4.0 y aplicaciones M2M como puntos de venta inalámbricos, medición inteligente en diversas industrias (agricultura, distribución de gas, distribución de agua), seguimiento de activos, monitoreo remoto, etc.
TABLA DE CONTENIDO
I. ¿Cómo funciona?
El X-NODE 2G LTE GNSS (BG95-M3) cuenta con un conector USB tipo C para establecer una comunicación con el módulo BG95-M3 de Quectel® y para controlar/actualizar el dispositivo. Este módulo integra una antena conmutada para transmisión/recepción de datos y geolocalización, solo una antena puede utilizarse a la vez.
Este X-NODE es compatible con cualquier sistema basado en un microcontrolador, microprocesador o equipos industriales. X-NODE 2G LTE GNSS (BG95-M3) es compatible con el estándar mikroBUS™ de Mikroe® para un uso fácil, rápido y sencillo con un gran entorno de kits para desarrollo de hardware. Cuenta con bandeja para nanoSIM – 4FF y un footprint para eSIM MFF2 (No incluida), solo es posible utilizar una SIM a la vez, consulte la sección Selección de la tarjeta SIM para configurar la SIM a utilizar.
El X-NODE 2G LTE GNSS (BG95-M3) puede incluir una tarjeta SIM precargada con un plan de datos, consulte el plan y la vigencia al momento de realizar la compra del dispositivo, si se ha acabado es posible comprar más MB, solicita tu recarga en la página o a través de: [email protected]. Considere que si el plan de datos de la tarjeta nanoSIM no se renueva por un largo periodo de tiempo la tarjeta SIM puede desactivarse definitivamente sin previo aviso.
Ideal para la integración en dispositivos móviles portátiles gracias a su administrador e indicador de carga para baterías Li-Po/Li-Ion de una sola celda (revise la polaridad/composición de la batería antes de insertarla).
El administrador de carga MCP7383 de Microchip Technology® entrega una corriente de carga de hasta 500mA. El indicador de carga de batería I2C BQ27441 de Texas Instruments permite medir características de baterías de hasta 8000 mAh.
Para hacer uso del dispositivo debe utilizar comandos AT o protocolo punto a punto (PPPoS), puede encontrar la especificación completa en la hoja de datos del fabricante a través del siguiente enlace: Datos Técnicos.
II. Descripción del hardware

Conectores SMA hembra y U.FL macho para antenas LTE y GNSS
Módulo SoC BG95-M3
Indicador del estado de carga de batería (CHG)
Selector de entrada para comandos AT, mB (mikroBUS™) <> USB (puerto USB tipo C)
Modo de funcionamiento en el puerto USB tipo C, AT (Mandar comandos AT) <> FW (Actualizar firmware)
Conector USB tipo C
Push button conectado al pin PWRKEY (Al presionarlo por 1 segundo se activará o apagará el módulo y por más de 3 segundos se ejecutará RESET)
Puerto de comunicación UART e I2C
Modelo de X-NODE
Tipo de X-NODE
Multiplexor para selección entre nanoSIM o eSIM
Bandeja para tarjeta nanoSIM – 4FF
Footprint para eSIM – MFF2 (eSIM no incluida)
Jumper para habilitar/deshabilitar el administrador e indicador de baterías.
Test Points: TP1: PWRKEY TP2: USB Boot TP3: 10k Pull to VDD Ext TP4: 3.3V from regulator TP5: DBG TXD TP6: DBG RXD TP7: VDD Ext
Indicador de carga de batería BQ27441 de Texas Instruments
Conector JST PHR-2 de 2mm para uso con baterías Li-Po/Li-Ion de una celda.
¡ Advertencia !: Revise la sección Configuración antes de conectar el dispositivo y suelde los jumpers apropiadamente.
Conectores estándar mikroBUS™
Versión de hardware: R2
Número de parte del componente principal en el X-NODE
III. Especificaciones
Tipo
Comunicación GPS / GLONASS / EGPRS / LTE CAT-M1 / NB2-IoT
Aplicaciones
Integración en proyectos para IoT y aplicaciones M2M de bajo consumo, como medición inteligente, seguimiento de activos, monitoreo remoto, puntos de venta inalámbricos, etc.
Módulo
Fabricante
Características
EDGE: * Enlace de subida de hasta 236.8 kbps * Enlace de bajada de hasta 296 kbps GPRS: * Enlace de subida de hasta 85.5 kbps * Enlace de bajada de hasta 107 kbps LTE CAT-M1: * Enlace de subida de hasta 1119 kbps * Enlace de bajada de hasta 588 kbps NB1-IoT: * Enlace de subida de hasta 70 kbps * Enlace de bajada de hasta 32 kbps NB2-IoT: * Enlace de subida de hasta 158 kbps * Enlace de bajada de hasta 127 kbps
Bandas compatibles
EGPRS: GSM 850 / EGSM 900 / DCS 1800 / PCS 1900 Banda global LTE CAT-M1: B1 / B2 / B3 / B4 / B5 / B8 / B12 / B13 / B18 / B19 / B20 / B25 / B26 / B27 / B28 / B66 / B85; Banda global LTE NB-IoT: B1 / B2 / B3 / B4 / B5 / B8 / B12 / B13 / B18 / B19 / B20 / B25 / B28 / B66 / B71 / B85;
Administrador de carga
Fabricante
Características
Para baterías LiPo-Li-Ion de una sola celda, corriente de carga de hasta 500 mA. Con detección de batería automática y mecanismo de recarga automático.
Indicador de carga de batería
Fabricante
Características
Para baterías LiPo-Li-Ion de una sola celda de hasta 8000mAh, permite medir: estado de carga (SoC), estado de salud (SoH), capacidad (mAh), voltaje (mV) y corriente de carga/descarga (mA).
Interfaz
UART, USB, I2C
Compatibilidad
Estándar mikroBUS™
Tamaño
86.55 x 26.92 x 20.5 mm
Voltaje
3.3 VDC
Características de conectores SMA y U.FL


Frecuencia máxima: 18 GHz Impedancia: 50 Ohms Polaridad: Standard Género: Hembra
Serie RF: RP-UMCC Frecuencia máxima: 6 GHz Impedancia: 50 Ohms Polaridad: Reverse
IV. Pinout

La siguiente tabla muestra el pinout del X-NODE 2G LTE GNSS (BG95-M3) con respecto al estándar mikroBUS™ (este último se encuentra en las dos columnas del centro)
WK: Pin GPOUT del indicador de baterías, puede configurarse por software para salir del modo de apagado del indicador o para indicar cuando la batería está por agotarse.
PK: PWRKEY del módulo celular, enviar un 1 lógico (3.3VDC) a este pin permite encender, apagar y reiniciar el módulo.
TX y RX: Puerto de comunicación para enviar comandos AT.
SCL y SDA: Puerto de comunicación del indicador de batería.
5V: Voltaje de alimentación 5VDC, si el jumper VCC está conectado este pin servirá para alimentar el módulo.
3V3: Voltaje de funcionamiento del módulo 3.3VDC, si el jumper 3V3 mB está conectado este pin servirá para alimentar el módulo.
V. Configuración
¡ Advertencia !: Lea cuidadosamente las siguientes instrucciones antes de operar el equipo y consúltelas si es necesario para garantizar el correcto funcionamiento del mismo. No hacerlo puede resultar en lesiones, daños a la propiedad o destrucción del dispositivo.
1. Selección entre conector SMA y U.FL
El X-NODE 2G LTE GNSS (BG95-M3) viene configurado de fábrica para uso con antenas SMA, para utilizar antenas U.FL es necesario cambiar de posición la resistencia que viene cerca de los conectores, puede configurar la antena LTE y GNSS por separado para utilizar diferentes tipos de antena.
Considere que cambiar el tipo de antena requiere habilidades para soldar componentes de montaje superficial (SMD).

También considere que los conectores U.FL tienen menos ciclos de acoplamiento, típicamente unas cuantas decenas de ciclos, mientras que los conectores SMA tienen típicamente al menos 100 ciclos. Superar el número de ciclos de acoplamiento resultará en una unión más frágil y propensa a desconectarse, además de causar una pérdida del rendimiento de la antena.
Se recomienda utilizar el conector SMA durante la etapa de pruebas y solo utilizar el conector U.FL durante el despliegue del dispositivo y solo si es absolutamente necesario. Si el módulo tiene problemas de cobertura revise que la antena instalada coincida con la antena seleccionada con la resistencia SMD.
2. Selección del voltaje de alimentación
El X-NODE 2G LTE GNSS (BG95-M3) tiene cuatro fuentes de alimentación:
5VDC a través del puerto USB tipo C
5VDC a través del pin 5V en el zócalo mikroBUS™
3.3-4.2 VDC de una batería tipo Li-Po/Li-Ion a través del conector JST PHR-2 de 2mm.
3.3VDC a través del pin 3V3 en el zócalo mikroBUS™
Es importante configurar correctamente los jumpers soldables VCC, 3V3mB y EN para obtener el comportamiento deseado.
3. Insertar la batería
Estas instrucciones solo aplican si el módulo se encuentra en la configuración Pruebas de escritorio o 5VDC + Batería Li-Po/Li-Ion, si no lo ha hecho, lea cuidadosamente el paso anterior.
¡ Advertencia !: Es importante que revise la polaridad antes de conectar la batería. No hacerlo puede dañar el módulo, causar fuego o explosión de la batería.
Solo conecte baterías tipo Li-Po o Li-Ion de una celda, nunca conecte baterías no recargables, baterías de múltiples celdas o baterías recargables de otro tipo de composición química.
Para usar la batería asegúrese de soldar los jumpers VCC, 3V3mB y EN de acuerdo a la configuración 5VDC + Batería Li-Po/Li-Ion. Se recomienda utilizar una batería con circuito de protección integrado (PCM), común en las baterías Li-Po.
Revise que la polaridad de la batería sea correcta, de ser necesario puede invertir la polaridad del conector PH de 2.0mm en la batería, no es necesario cortar ni soldar, simplemente retire los pines metálicos y reubíquelos en la posición correcta.

Inserte la batería, para cargar solo conecte el cable USB tipo C a un regulador o una computadora, el indicador CHG se iluminará durante la carga y se apagará al finalizar.
4. Selección del puerto de comunicación
El X-NODE 2G LTE GNSS (BG95-M3) cuenta con 2 interfaces de comunicación para su uso y configuración, el puerto de comandos AT y el puerto compuesto USB.
Puerto de comandos AT: La comunicación utiliza el protocolo UART con la siguiente configuración: Velocidad de comunicación: 115,200 bps Paridad: Ninguna Bits de datos: 8 Bits de paro: 1
Puerto compuesto USB: La comunicación utiliza el protocolo USB2.0 creando un dispositivo compuesto con hasta 4 interfaces: USB DM: Puerto de depuración, permite enviar y recibir comandos AT. NMEA: Puerto para recibir sentencias de geolocalización en formato NMEA. Módem: Configurable con uno o dos puertos de módem bajo CDC ACM. RmNet: Puerto de red remota Remote Network, puerto de control y datos para la gestión de datos inalámbricos y comunicación con la tarjeta SIM, requiere un driver USB compatible con mensajes QMI (Qualcomm MSM Interface). ECM: Puerto de comunicación bajo la clase USB CDC-Ethernet, lo que permite emular una interfaz de red Ethernet a través del puerto USB.
El puerto de comandos AT se recomienda para pruebas de escritorio y para microcontroladores con poca memoria o que no cuenten con periférico USB2.0 con modo huésped. El puerto compuesto USB se recomienda para sistemas que ejecuten Linux embebido.
Para configurar el puerto de comunicación el X-NODE 2G LTE GNSS (BG95-M3) cuenta con dos interruptores: AT y FW.
5. Selección de la tarjeta SIM
El X-NODE 2G LTE GNSS (BG95-M3) cuenta con una una bandeja para nanoSIM – 4FF y un footprint para soldar una eSIM, sin embargo, solo puede usar una SIM a la vez, al cambiar entre SIM deberá reiniciar el módulo y después reconfigurar la operadora y el APN.
El proceso requiere enviar comandos AT, por lo que requerirá una terminal serial, puede utilizar la terminal serial oficial de Quectel "QCOM" para Windows a través del siguiente enlace, para macOS o Linux puede usar cualquier terminal serial, incluso la terminal de ArduinoIDE.
En el X-NODE 2G LTE GNSS (BG95-M3) configure el puerto de comunicación en modo AT sobre USB y conecte el dispositivo a la computadora, no olvide instalar los drivers y colocar las antenas si no lo ha hecho todavía.

Si está en Windows ejecute QCOM, en Linux/macOS ejecute la terminal serial, configure la comunicación con los siguientes parámetros:
Velocidad de comunicación: 115,200 bps
Paridad: Ninguna
Bits de datos: 8
Bits de paro: 1
Send with Enter/Send with CRLF
Después abra el puerto, en QCOM presione el botón Open Port, si la comunicación es correcta se mostrará el mensaje:
Open COM Port SuccessSi tiene problemas consulte la sección de Solución de problemas y preguntas frecuentes.
Inserte la tarjeta SIM en la bandeja para nanoSIM – 4FF, después presione brevemente el botón "PK" del X-NODE 2G LTE GNSS (BG95-M3) para encender el módulo, si la configuración es correcta se mostrarán los siguientes mensajes:
RDY
APP RDYEn QCOM escriba el comando en el campo Input String, marque la casilla Send With Enter, desmarque la casilla HEX String y presione el botón Send Command para enviar comandos.

Para identificar la SIM seleccionada actualmente envíe el siguiente comando AT+ICCID, la respuesta mostrará el identificador de la tarjeta SIM, este número es importante para administrar la tarjeta SIM y solicitar recargas.
AT+ICCID+ICCID: xxxxxxxxxxxxxxxxxxxx
OKSi la respuesta muestra un error 13 y si la tarjeta nanoSIM está correctamente insertada, entonces significa que la tarjeta SIM configurada es la eSIM. Para el resto de los códigos de error revise la nota de aplicación Quectel_BG95BG77BG600L_Series_AT_Commands_Manual sección 23.5. Summary of CME ERROR Codes.
+CME ERROR: 13El multiplexor de la tarjeta SIM se controla por el pin 66 del módulo, para cambiar la SIM configurada deberá enviar comandos para controlar este pin, recuerde que para usar una tarjeta eSIM deberá soldar una en el footprint destinado para este propósito, a continuación, se muestran los comandos para seleccionar la tarjeta SIM actual:
Después de seleccionar la tarjeta SIM es importante que configure la operadora y el APN. De lo contrario no podrá conectarse a internet.
6. Configuración de la operadora
Cada vez que cambie la tarjeta SIM deberá configurar la operadora y el APN. Primero deberá identificar las redes disponibles con el comando AT+COPS=? para confirmar que su operadora tenga cobertura en la región, este comando puede demorar hasta 5 minutos en finalizar la búsqueda de redes, por favor espere.
AT+COPS=?Ejemplo de respuesta (en México):
+COPS: (1,"TELCEL","TELCEL","334020",8),(1,"AT&T","AT&T","334050",8),(1,"Movistar","TEMM","33403",8),(1,"AT&T","AT&T","334090",8),(1,"AT&T","AT&T","334050",9),(1,"TELCEL","TELCEL","334020",9),,(0,1,2,3,4),(0,1,2)
OKEste comando brinda información de las redes disponibles separadas por paréntesis, el formato es el siguiente ( <con_status>,<oper_long>,<oper_short>,<oper_num>,<Ac_T>):
<con_status>: Estado de la conexión, de tipo numérico:
0: Desconocido
1: Operadora disponible
2: Conectado a esta operadora
3: Operadora no disponible
<oper_long>: Nombre completo de la operadora en formato alfanumérico.
<oper_short>: Nombre corto de la operadora en formato alfanumérico.
<oper_num>: Código de país móvil de la operadora en formato numérico.
<Ac_T>: Tecnología de conexión:
0: GSM - 2G
8: eMTC - LTE
9: NB-IoT
utilizando la respuesta de ejemplo podemos identificar las siguientes redes:
Disponible
TELCEL
TELCEL
334020
LTE
Disponible
AT&T
AT&T
334050
LTE
Disponible
Movistar
TEMM
33403
LTE
Disponible
AT&T
AT&T
334090
LTE
Disponible
AT&T
AT&T
334050
NB-IoT
Disponible
TELCEL
TELCEL
334020
NB-IoT
¡ Advertencia !: Aunque el estado de la red es disponible, no significa que el dispositivo pueda conectarse a esa red, se requiere una tarjeta SIM autorizada por la operadora. Nuestros servicios ofrecen membresías multicarrier, lo que le permite conectarse a redes de múltiples operadoras, puede consultar con nuestro equipo de soporte las operadoras compatibles con nuestras tarjetas eSIM y la cobertura de nuestros servicios
Para seleccionar una operadora puede utilizar el método automático, manual o una combinación de ambos:
Para consultar la red a la que se encuentra conectado actualmente puede utilizar el comando AT+COPS? :
AT+COPS?Si el módulo se encuentra conectado a una red responderá:
+COPS: <mode_conn>,<oper_format>,"<oper>",<Ac_T><mode_>: Modo de conexión utilizado
0: Automático
1: Manual
2: Desconexión manual de la red
<oper_format>: Formato del siguiente campo
0: Nombre completo de la operadora en formato alfanumérico.
1: Nombre corto de la operadora en formato alfanumérico.
2: Código de país móvil de la operadora en formato numérico.
<oper_>: Operadora en el formato especificado en el campo anterior
<Ac_T>: Tecnología utilizada para la conexión:
0: GSM - 2G
8: eMTC - LTE
9: NB-IoT
7. Configuración del APN
Un nombre de punto de acceso o APN es el nombre de la puerta de enlace entre la conexión móvil y la red de internet o una red privada. Aunque el dispositivo se encuentre conectado a una operadora no tendrá acceso a internet hasta proporcionar los datos del APN, durante este proceso la operadora identificará el tipo de conexión y asignará una IP apropiada para el ruteo de datos. En la mayoría de los casos se recomienda utilizar el mecanismo de suscripción por petición (automático), sin embargo, es posible que este mecanismo falle por múltiples motivos cuya explicación escapa al alcance de este manual. En general si la suscripción por petición falla entonces deberá consultar con el proveedor de la tarjeta SIM cuáles son los valores correctos del APN y configurarlos en un contexto PDP, recuerde que solo hace falta configurarlo cada vez que cambie de SIM.
Cada sesión a internet requiere un contexto PDP (Packet Data Protocol), en este contexto se define el APN, que se enviará al solicitar una dirección IP a la red de la operadora. El X-NODE 2G LTE GNSS (BG95-M3) soporta hasta 16 contextos PDP, para mantener el manual simple se configurará exclusivamente el contexto con identificador 1, lea el manual del fabricante si quiere obtener más información.
Después active la sesión a internet en el contexto 1
AT+QIACT=1Si la conexión se activó correctamente el módulo responderá
OKPuede consultar la dirección IP con el comando AT+QIACT?:
AT+QIACT?+QIACT: 1,1,1,"xxx.xxx.xxx.xxx"
OKPara terminar la sesión a internet debe cerrar la sesión PDP con el comando:
AT+QIDEACT=1VI. Ejemplo de uso
Ping a un servidor remoto
En la terminal serial abra el puerto del X-NODE 2G LTE GNSS (BG95-M3) con la siguiente configuración: Velocidad de comunicación: 115,200 bps Paridad: Ninguna Bits de datos: 8 Bits de paro: 1
Después presione brevemente el botón "PK" del X-NODE 2G LTE GNSS (BG95-M3) para encender el módulo, espere hasta que el nodo finalice el proceso de inicialización indicado por el mensaje:
APP RDY
Inicie una sesión PDP para obtener una dirección IP con el comando AT+QIACT=1, confirme que cuente con una dirección IP válida con el comando AT+QIACT?:
AT+QIACT=1AT+QIACT?Si el comando indica que hubo un error, deberá revisar la sección: 6. Configuración de la operadora y la sección 7. Configuración del APN, si tiene problemas revise la sección de preguntas frecuentes.

Para hacer un Ping a un servidor remoto deberá utilizar el comando
AT+QPING=1,"<remote_servername>"
por ejemplo, para hacer un Ping a Google el comando es:
AT+QPING=1,"www.google.com"Si la comunicación es correcta el módulo responderá con los mensajes:
+QPING: 0,"<remote_serverip>",32,<time_in_ms>,255
+QPING: 0,<packets_sent>,<packets_recieved>,<packets_lost>,<min_time_ms>,<max_time_ms>,<average_time_ms><remote_serverip>: IP del servidor remoto obtenida del servidor DNS.
<time_in_ms>: Tiempo de respuesta del servidor (valores menores son mejores).
<max_time_ms>, <min_time_ms>, <average_time_ms>: Estadísticas de tiempo de los mensajes como máximo, mínimo y promedio.
<packets_sent>, <packets_recieved>, <packets_lost>: Estadísticas de cantidad de paquetes enviados, recibidos y perdidos.

Finalice la sesión PDP para desconectarse de internet con el comando:
AT+QIDEACT=1Protocolo MQTT sobre comandos AT
Este ejemplo asume que el usuario conoce los conceptos básicos del protocolo MQTT, la sesión se hará sin SSL, puede obtener más información en la nota de aplicación: Quectel_BG95BG77BG600L_Series_MQTT_Application_Note_V1.1.pdf.
En la terminal serial abra el puerto del X-NODE 2G LTE GNSS (BG95-M3) con la siguiente configuración: Velocidad de comunicación: 115,200 bps Paridad: Ninguna Bits de datos: 8 Bits de paro: 1
Después presione brevemente el botón "PK" del X-NODE 2G LTE GNSS (BG95-M3) para encender el módulo, espere hasta que el nodo finalice el proceso de inicialización indicado por el mensaje:
APP RDY
El bróker que se usará es Mosquitto en el puerto 1883, pero las instrucciones aplican para cualquier otro bróker sin SSL, para esta prueba solo se requiere un X-NODE 2G LTE GNSS (BG95-M3) y una computadora/teléfono con un cliente MQTT, en este ejemplo se utilizará el cliente para navegadores MQTT.Cool.
¡ Advertencia !: El bróker test.mosquitto.org es un servidor experimental para realizar pruebas, NO lo utilice en el despliegue de proyectos y NUNCA publique información confidencial en el.
En el cliente seleccionaremos el bróker (1), después debe configurar el usuario y contraseña (2), en el bróker de mosquitto puede dejar estos campos vacíos, pero si está utilizando otro bróker y así lo requiere puede ingresar estos datos manualmente (3). Después presione el botón Connect.

Bróker:
test.mosquitto.org:1883En el campo de suscripciones escriba el tópico con un QoS de nivel 0 (1), esto nos permitirá tener un canal en donde recibir información, por ejemplo:
Tópico:
xide-xc08/dev-123Recuerde que puede personalizar este tópico y puede suscribirse a múltiples tópicos. Después presione el botón de Suscribir, el tópico se agregará a su lista de suscripciones (2).

Deberemos hacer lo mismo en el X-NODE 2G LTE GNSS (BG95-M3) a través de comandos AT. El segundo comando debe enviarse uno inmediatamente después del primero, ya que el servidor puede terminar la conexión si no recibe información del cliente. El primer comando define el bróker y el puerto:
AT+QMTOPEN=0,"<mqtt_broker>",<port_number>
Reemplazamos los datos con la información del bróker de mosquitto:
AT+QMTOPEN=0,"test.mosquitto.org",1883El segundo comando define la información del cliente, los parámetros <client_username> y <client_password> son opcionales dependiendo de la configuración del bróker:
AT+QMTCONN=0,"<client_unique_id>","<client_username>","<client_password>"
Para utilizar el bróker de mosquitto personalice el <client_unique_id> con un valor aleatorio por cada dispositivo que conecte al bróker, por ejemplo:
AT+QMTCONN=0,"xide-client-id-f497002f"Después debemos suscribirnos a al mismo tópico:
AT+QMTSUB=0,<msg_id>,"<topic_id>",<qos_level>
El campo <msg_id> se utiliza cuando el nivel QoS es mayor que 0, y sirve para identificar si algunos mensajes no fueron enviados correctamente, acepta valores de 1-65535, como utilizaremos un nivel 0 este valor es irrelevante.
AT+QMTSUB=0,1,"xide-test/dev-123",0
Ahora podemos empezar a enviar y recibir mensajes entre los dos equipos, primero enviaremos un mensaje de hola mundo desde el cliente al bróker, que lo reenviará al X-NODE 2G LTE GNSS (BG95-M3), al enviar mensajes en MQTT debemos especificar el tópico, recuerda que la suscripción solo es para recibir información.

Para enviar información desde el X-NODE 2G LTE GNSS (BG95-M3) al bróker, que lo reenviará a nuestro cliente MQTT se utiliza el comando:
AT+QMTPUB=0,<msg_id>,<qos_level>,<server_retain>,"<topic_id>",<msg_length>
<msg_id>: Identificador del mensaje, en QoS nivel 0 este valor es irrelevante.
<qos_level>: Nivel QoS, utilizaremos el nivel 0.
<server_retain>: Le indica al servidor si debe conservar el mensaje (1) o puede descartarlo después de entregarlo a los suscriptores activos (0), esta opción permite enviar mensajes a cliente que se encuentren desconectados una vez se conecten con el bróker. Sin embargo, dependiendo de la configuración del bróker este valor puede ser ignorado.
<topic_id>: El tópico en donde se publicará el mensaje.
<msg_length>: Longitud del mensaje
El parámetro <msg_length> es muy importante, una vez que se envíe el comando AT+QMTPUB el dispositivo responderá con el carácter ">", y no enviará el mensaje hasta recibir la cantidad de caracteres especificado por este parámetro. Por ejemplo, el mensaje "Hello World from XC08!" tiene una longitud de 22 caracteres por lo que este es el valor que debemos enviar:
AT+QMTPUB=0,0,0,0,"xide-test/dev-123",22Hello World from XC08!
Protocolo MQTT con TinyGSM en Arduino Framework
Para poder compilar el ejemplo deberá descargar e instalar la librería de TinyGSM y PubSubClient, en PlatformIO puede instalarlas agregando la siguiente línea a su archivo platformio.ini:
lib_deps =
https://github.com/vshymanskyy/TinyGSM.git
https://github.com/knolleary/pubsubclient.gitEn ArduinoIDE puede instalarlas desde el Administrador de librerías.
GNSS sobre AT
El X-NODE 2G LTE GNSS (BG95-M3) cuenta con solo una antena, lo que significa que para utilizar la funcionalidad GNSS deberá desactivar los contextos PDP activos, que puede consultar con el comando:
AT+QIACT?+QIACT: <context_id>,1,1,"xxx.xxx.xxx.xxx"
OKPuede cerrar los contextos PDP con el comando AT+QIDEACT, debe enviar este comando por cada <context_id> encontrado por el comando anterior:
AT+QIDEACT=<context_id>Para activar la funcionalidad GNSS debe utilizar el comando:
AT+QGPS=1El módulo demorará unos cuantos minutos en obtener las efemérides de los satélites y determinar la posición global, si es la primera vez que activa la funcionalidad GNSS después de encender el módulo el tiempo de obtención será más largo.
Puede obtener la posición con el comando AT+QGPSLOC=2, si el comando regresa un error 516, significa que aún no se obtiene la posición, deberá esperar un tiempo antes de volver a intentarlo.
AT+QGPSLOC=2Si el módulo ya ha calculado la posición entonces responderá con un mensaje con el siguiente formato:
+QGPSLOC: <utc_time>,<latitude_deg>,<longitude_deg>,<horizontal_precision>,<altitude_m>,<d_position>,<course_over_ground>,<speed_kmh>,<speed_k>,<utc_date>,<no_sats><utc_time>: Tiempo universal coordinado (UTC) en formato hhmmss.sss
<latitude_deg>: Latitud en grados.
<longitude_deg>: Longitud en grados.
<horizontal_precision>: Precisión horizontal (HDOP), valores más bajos son mejores.
<altitude_m>: Altitud de la antena con respecto al nivel del mar en metros.
<d_position>: Tipo de posición GNSS
2: Posición 2D
3: Posición 3D
<course_over_ground>: Dirección de movimiento en grados con respecto al norte.
<speed_kmh>: Velocidad relativa con respecto a tierra en kilómetros por hora.
<speed_k>: Velocidad relativa con respecto a tierra en nudos.
<utc_date>: Tiempo universal coordinado (UTC) en formato ddmmyy
<no_sats>: Número de satélites utilizados para calcular la posición.
Por ejemplo, de la siguiente respuesta podemos obtener la información:
+QGPSLOC: 153010.000,19.42692,-99.16774,1.1,2240.6,3,220.16,5.154,2.782,250925,06153010: Hora 15:30:10 UTC que en la zona horaria de México son las 09 de la mañana con 30 minutos y 10 segundos.
19.42692,-99.16774: Longitud y latitud.
1.1: Precisión horizontal excelente.
2240: Altitud de 2240 metros sobre el nivel del mar.
3: La posición obtenida es tridimensional (latitud, longitud, altitud).
220.16: La dirección del curso es de 220.16 grados (suroeste).
5.154: Velocidad de 5.154 kilómetros por hora.
2.782: Velocidad de 2.782 nudos.
250925: Fecha 25 de noviembre de 2025.
06: Para calcular la posición se utilizaron 6 satélites.

GNSS con TinyGSM en Arduino Framework
Para poder compilar el ejemplo deberá descargar e instalar la librería de TinyGSM, en PlatformIO puede instalarla agregando la siguiente línea a su archivo platformio.ini:
lib_deps =
https://github.com/vshymanskyy/TinyGSM.gitIndicador de carga de batería
Ciclo de aprendizaje de la batería
Para obtener los mejores resultados el usuario deberá modificar 4 parámetros para emparejar estos valores con los de la batería: Capacidad Nominal (Design Capacity), Energía Nominal (Design Energy), Voltaje de finalización (Terminate Voltage) y Tasa de disminución (Taper Rate).
Estos valores se deben configurar cada vez que desconecte y vuelva a conectar una batería, hacerlo mejorará la precisión del indicador en los primeros ciclos, sin embargo, si no está seguro de cómo inicializar/administrar estos valores puede solo inicializar la Capacidad nominal (Nominal Capacity), mientras la batería se mantenga conectada el dispositivo se encargará de ajustar los parámetros con el tiempo hasta obtener valores precisos, esto se conoce como ciclo de aprendizaje.
Ejemplo Indicador de carga con Arduino Framework
Para poder compilar el ejemplo deberá descargar e instalar la librería de SparkFun_BQ27441_Arduino_Library, deberá colocar los jumpers del módulo en la configuración Pruebas de escritorio o 5VDC + Batería Li-Po/Li-Ion, si no lo ha hecho, lea cuidadosamente la sección 2. Selección del voltaje de alimentación:
VII. Solución de problemas y preguntas frecuentes
VIII. Descargas
Última actualización
¿Te fue útil?





