Sistema de Posicionamiento Interior Bluetooth con LoRaWAN
Introducción
Descripción General
El posicionamiento interior es un desafío común para muchas industrias. Aunque existen sistemas de alta precisión como UWB, pueden ser costosos y complejos. Esta solución ofrece una alternativa flexible y rentable al combinar dos poderosas tecnologías inalámbricas: Bluetooth Low Energy (BLE) para detección de ubicación y LoRaWAN para transmisión de datos de largo alcance y bajo consumo.
El sistema está construido alrededor del SenseCAP T1000 Tracker y soporta dos modos distintos de posicionamiento, permitiéndote equilibrar precisión con duración de batería según tus necesidades:
-
Seguimiento de Alta Precisión (Trilateración): Cuando un tracker detecta señales de tres o más beacons BLE, puede calcular sus coordenadas precisas (x, y) en un mapa. Este modo es ideal para rastrear el movimiento de activos o personal, proporcionando actualizaciones de ubicación precisas periódicamente o cuando ocurre movimiento.
-
Posicionamiento Basado en Zonas (Proximidad): Cuando un tracker está al alcance de solo uno o dos beacons, identifica su ubicación basándose en la proximidad al beacon más cercano. Este modo es perfecto para casos de uso más simples como check-ins automatizados, confirmar que un activo está en una habitación designada, o conservar batería reportando ubicación con menos frecuencia.
Al soportar ambos métodos, esta solución proporciona un sistema versátil y fácil de desplegar para una amplia gama de aplicaciones de seguimiento interior, desde detección simple de presencia hasta monitoreo más detallado basado en coordenadas.
Consulta nuestra página de paquete Posicionamiento Integrado Interior y Exterior para todos los productos que necesitas para implementar esta solución.
Características Clave y Beneficios
- Rentable y Escalable: Aprovecha beacons BLE asequibles y evita la necesidad de instalaciones costosas de gateway en cada habitación.
- Transmisión de Datos de Largo Alcance: Un solo gateway LoRaWAN puede cubrir un edificio completo o campus, reduciendo drásticamente los costos de infraestructura.
- Alerta SOS Instantánea: Los trackers incluyen un botón de pánico que, al presionarse, envía inmediatamente una alerta SOS vía LoRaWAN para respuesta rápida de emergencia.
- Gestión Inteligente de Energía: Al usar un acelerómetro incorporado, el tracker puede reportar solo cuando se detecta movimiento y enviar señales periódicas de "latido" de lo contrario. Esto extiende dramáticamente la duración de la batería hasta 6 meses con configuraciones óptimas para muchas aplicaciones de seguimiento de activos.
- Despliegue Simple: Configurar beacons BLE y gateways LoRaWAN es sencillo, poniendo tu sistema de posicionamiento en línea rápidamente.
- Software de Código Abierto: El proyecto es completamente de código abierto, permitiéndote construir y personalizar tu propio servidor backend usando nuestro repositorio de GitHub.
Casos de Uso
Casos de Uso
Esta solución es ideal para una amplia gama de aplicaciones de seguimiento basado en zonas y seguridad:
Seguridad de Campus y Escuela
Proporciona a estudiantes y personal un tracker portátil. El botón SOS incorporado les permite enviar instantáneamente una alerta de emergencia con su última ubicación conocida desde cualquier lugar del campus, brindando tranquilidad y permitiendo tiempos de respuesta más rápidos.
Gestión de Activos
Rastrea la ubicación de activos valiosos, tanto en interiores como exteriores (ej., vehículos en un estacionamiento). Configura el tracker para reportar solo cuando se mueve, conservando batería mientras aseguras ser alertado de movimiento no autorizado.
Check-In Automatizado y Gestión de Personal
Al ajustar la intensidad de señal de un beacon BLE, puedes crear una zona de "check-in" para oficinas o hogares de ancianos. Cuando una persona que lleva un tracker entra a la zona, su presencia se registra automáticamente.
Arquitectura del Sistema
El sistema opera bajo un principio simple pero poderoso. Los trackers móviles escuchan señales de beacons fijos y reportan lo que escuchan a un servidor central.
Prerrequisitos
Los componentes principales son:
- Beacons BLE: Estos son pequeños transmisores fijos colocados en ubicaciones conocidas (ej., entradas de habitaciones, zonas clave). Transmiten continuamente un ID único.
- SenseCAP T1000 Tracker: Este es el dispositivo móvil conectado al activo o persona que quieres rastrear. Escanea beacons BLE cercanos e identifica el que tiene la señal más fuerte.
- Gateway LoRaWAN: El tracker envía un paquete de datos conteniendo el ID del beacon BLE más cercano al gateway vía LoRaWAN.
- Servidor de Red y Aplicación: El gateway reenvía los datos a un Servidor de Red LoRaWAN(SenseCraft Data), que luego los enruta a un servidor de aplicación. El servidor de aplicación mantiene un mapa de los IDs de beacon y sus ubicaciones del mundo real, permitiéndole determinar la posición del tracker (ej., "Tracker #58 está cerca del Beacon #12, que está en la Sala de Conferencias 3").
Antes de comenzar, asegúrate de tener lo siguiente:
- Un SenseCAP T1000 Tracker
- Uno o más beacons BLE
- Un gateway LoRaWAN conectado a internet
- Un servidor o computadora con Docker instalado
SenseCAP T1000 Tracker
Tracker móvil LoRaWAN® con capacidades de escaneo BLE
Detección de Beacon BLE: Soporta BLE 5.1 para posicionamiento preciso interior y exterior.
Red de Área Amplia: Conectividad LoRaWAN® Clase A(v1.0.4) para comunicación de largo alcance y bajo consumo.
Detección de Movimiento: Acelerómetro incorporado para detección en tiempo real de movimiento y estado estacionario.
Botón de Emergencia: Botón SOS independiente para activar alertas de emergencia con una presión.
Beacons BLE
Transmisión Bluetooth Regular
Compatible con Protocolos: Bluetooth® LE 5.0 | Soporte completo para formatos iBeacon y Eddystone.
Despliegue Flexible: Potencia de transmisión configurable para radio de cobertura ajustable.
Larga Duración: Hasta 2 años de duración de batería con configuraciones estándar.
Instalación Fácil: Viene con respaldo adhesivo para montaje fácil en paredes u otras superficies.
Rango de Transmisión: Hasta 75 metros en exteriores, 120 metros en interiores en áreas abiertas.
SenseCAP M2 Gateway Multi-Plataforma
Infraestructura de Red LoRaWAN®
Amplia Cobertura: Radio de cobertura interior de hasta 2 km, asegurando señal estable.
Conectividad Masiva: Soporta más de 200 dispositivos concurrentes con excelente rendimiento.
Múltiples Backhauls: Proporciona múltiples opciones de backhaul de red incluyendo Ethernet, Wi-Fi y 4G.
Solución Integrada: Capacidades integradas de servidor LoRaWAN local para simplificar el despliegue y gestión de red.
Guía de Inicio
- Desplegar Beacons: Coloque beacons BLE en ubicaciones estratégicas en toda su instalación. Cree un mapa o lista documentando el ID único de cada beacon y su ubicación física (ej.,
Beacon_ID_01: "Entrada Principal"
,Beacon_ID_02: "Zona de Almacén A"
). - Configurar el Gateway: Conecte su gateway LoRaWAN a internet y configúrelo para reenviar paquetes a su Servidor de Red LoRaWAN elegido.
- Desplegar la Aplicación: En su servidor de aplicaciones, cree la lógica para mapear los IDs de beacon reportados de vuelta a las ubicaciones físicas que documentó en el Paso 3.
- Configurar el Tracker: Active el SenseCAP T1000 e incorpórelo a su Servidor de Red LoRaWAN. Asegúrese de que esté configurado para modo de escaneo BLE.
- Visualizar: Mientras el tracker se mueve por la instalación, reportará el beacon más cercano, y su aplicación puede mostrar su ubicación en un panel de control o mapa.
Paso 1: Configurar su Hardware
Primero, necesita configurar los dispositivos físicos en su instalación.
1a. Desplegar Beacons
Para detalles técnicos completos, consulte la documentación del BC01 Indoor Bluetooth Beacon.
Primero, coloque sus beacons BLE en ubicaciones clave en toda su instalación, como en la entrada principal, en el almacén y en las oficinas.

A continuación, cree una lista (plantilla) para registrar la Dirección MAC única de cada beacon y su ubicación física. Este registro es esencial para el paso de configuración del software.
Ejemplo de Registro:
MAC Address,Location,Beacon ID
c30000564b31,"Main Entrance",01
c30000564b32,"Warehouse Zone A",02
c30000564b33,"Corner Office",03
El video a continuación muestra cómo utilizarás esta lista para agregar tus beacons al mapa de la aplicación más adelante. Crear un registro preciso ahora hará que la configuración del software sea mucho más fácil.
Consejo Profesional: Para una gestión más fácil, puedes usar la aplicación SenseCraft para dar a todos tus beacons un UUID consistente. Esto ayuda a asegurar que el rastreador solo escuche a tus dispositivos e ignore a otros. Consulta Característica 4: Filtrar por UUID de Beacon para más detalles.
Vista rápida de los parámetros del beacon BC01
Parámetros | Valor Predeterminado |
---|---|
UUID | FDA50693-A4E2-4FB1-AFCF-C6EB07647825 |
Major | 10001 |
Minor | 19641 |
Potencia medida | -59dBm |
Potencia Tx | -30 - +4dBm, predeterminado 0dBm |
Intervalo Adv | 100ms~10s, predeterminado 500ms |
Contraseña | seeed123 (Letras y números) |
Nombre del Dispositivo | BC01 (1-7 caracteres) |
Reinicio Suave | seeed123 (igual que la contraseña) |
1b. Configurar el Gateway
Primero, enciende tu gateway LoRaWAN y conéctalo a internet. A partir de aquí, los pasos dependen de qué servidor de red estés usando.
- SenseCraft Data
- ChirpStack (Servidor LoRaWAN Local)
Si estás usando la plataforma predeterminada SenseCraft Data(anteriormente SenseCAP Portal), tu gateway ya está preconfigurado.
- Sigue el manual de usuario oficial para asegurarte de que el gateway esté en línea y conectado a tu cuenta.
- Una vez hecho esto, puedes continuar al Paso 2.
Si estás usando un servidor ChirpStack auto-hospedado, necesitarás redirigir el gateway y preparar un script decodificador.
-
Configurar el Gateway: Sigue esta guía para redirigir los datos de tu gateway a ChirpStack.
-
Descargar el Decodificador: ChirpStack necesita un decodificador para entender los datos enviados por tu rastreador T1000. Descarga el script ahora para que esté listo para un paso posterior.
Nota: Agregarás este script dentro de la configuración de aplicación de ChirpStack, no en el gateway mismo.
Paso 2: Instalar la Aplicación de Posicionamiento
A continuación, instalarás la aplicación principal en tu servidor usando Docker. O puedes ver primero la demostración.

Ejecutar el Comando de Instalación
Abre una terminal en tu servidor y ejecuta el siguiente comando:
docker run -p 5173:5173 -p 8022:8022 --name indoor-positioning --restart unless-stopped -v /data/indoor-positioning/db/:/app/db/ -d seeedcloud/sensecraft-indoor-positioning
Lo que hace este comando:
- Descarga e inicia la aplicación SenseCraft Indoor Positioning.
-p 5173:5173
hace que el panel web sea accesible en el puerto5173
.-v /data/indoor-positioning/db/:/app/db/
le dice a la aplicación que almacene su base de datos y mapas en la carpeta/data/indoor-positioning/db/
de tu máquina.-d
ejecuta la aplicación en segundo plano.
Después de ejecutar el comando, puedes acceder al panel abriendo un navegador web y yendo a http://<tu_ip_del_servidor>:5173
.
Paso 3: Configurar la Aplicación

Ahora, abre el panel de la aplicación en tu navegador para configurar los ajustes del sistema.
3a. Configuración de Tiempo de Ejecución (Conectando a LoRaWAN)
Esta configuración conecta la aplicación a tu Servidor de Red LoRaWAN para recibir datos del rastreador. Una característica clave es que la aplicación soporta conexiones simultáneas tanto a la plataforma SenseCraft Data como a un servidor ChirpStack.

En el panel, puedes habilitar una o ambas de las siguientes fuentes MQTT para conectarte a tus servidores de red.
Para Conectar a SenseCraft Data
- Habilita el interruptor SenseCAP OpenStream MQTT.
- Ingresa tu Nombre de Usuario y Clave API.
- Puedes generar estas credenciales siguiendo la guía de inicio rápido de Data OpenStream API.
Para Conectar a ChirpStack
- Habilita el interruptor ChirpStack MQTT.
- Ingresa la dirección del servidor de ChirpStack y el ID de Aplicación.
- El campo de tema MQTT se actualizará automáticamente. Puedes encontrar el ID de Aplicación en la página principal de tu aplicación dentro de ChirpStack.

Nota: El campo {clientID}
es usado por el sistema y será reemplazado con un ID aleatorio al iniciar. No necesitas cambiarlo.
Importante: Después de habilitar o cambiar cualquiera de estas configuraciones, debes reiniciar la aplicación (el contenedor Docker) para que surtan efecto.
Otras Configuraciones
Las siguientes configuraciones pueden cambiarse en cualquier momento sin reiniciar la aplicación:
- Autenticación: Actualiza el nombre de usuario y contraseña usados para iniciar sesión en el panel de la aplicación.
- Posicionamiento de Área: Habilita esta opción para estimar la ubicación de un rastreador cuando hay muy pocas señales de beacon disponibles para un posicionamiento preciso de múltiples puntos.
- Control de Acceso del Rastreador: Configura qué dispositivos están permitidos para enviar datos a la aplicación. Puedes permitir datos de cualquier dispositivo o crear una lista específica de rastreadores autorizados.
- Webhook: Habilita esto para enviar resultados de ubicación a tu propio servicio usando una solicitud HTTP POST.
3b. Configuración de Mapa y Beacon
En este paso, usarás el panel de la aplicación para subir tu plano de planta y agregar los beacons que desplegaste físicamente anteriormente.

- Sube Tu Mapa Primero, ve al menú de configuración y sube una imagen de tu plano de planta. Se recomiendan formatos de imagen estándar como PNG o JPG.
- Agrega Tus Beacons Ve a la sección "Beacons". Usando la lista que creaste en el Paso 1a, agrega la información de cada beacon (como su dirección MAC). La forma más fácil de hacer esto es hacer clic directamente en la ubicación del beacon en el mapa que acabas de subir.
- Ajusta el Factor Ambiental (Opcional)
Esta es una configuración avanzada que ajusta finamente la precisión de ubicación. Ayuda al sistema a convertir la intensidad de señal (RSSI) en una distancia más precisa teniendo en cuenta tu entorno específico.
- Para espacios abiertos, el valor predeterminado de ~2.0 es usualmente suficiente.
- Para áreas interiores complejas con muchas paredes y obstáculos, puede que necesites ajustar el valor entre 1.8 y 4.0.
- Recomendación: Es mejor dejar esto en la configuración predeterminada para empezar. Puedes volver y ajustarlo más tarde si necesitas mejorar la precisión del posicionamiento.
Paso 4: Activar y Visualizar Tu Rastreador
El paso final es encender tu rastreador y verlo en el mapa.

- Activa el Rastreador SenseCAP T1000 e incorpóralo a tu Servidor de Red LoRaWAN. Asegúrate de que tu gateway esté en línea y que el dispositivo rastreador esté 'registrado' en el servidor LNS. consulta el Paso 1b para detalles.
- Asegúrate de que esté configurado en modo de escaneo BLE para que pueda detectar los beacons. Consulta el video a continuación para ayuda.
- Visualizar: Mientras el rastreador se mueve por tu instalación, detectará los beacons más cercanos e informará su ubicación. Verás su ícono moviéndose por el mapa en tu panel.
Opta por Other Platform
, cuando uses ChirpStack.
Conserva la configuración predeterminada de la plataforma (SenseCAP for The Things Network), cuando uses SenseCraft Data.
Resumen de Características de la Aplicación
Característica 1: Envío de Datos (Webhook & WebSocket)
Puedes obtener datos en tiempo real del sistema de dos maneras:
- Webhook: Como se mencionó en la configuración, esto envía datos a una URL que proporciones.
- WebSocket: Para aplicaciones en tiempo real, puedes conectarte al endpoint
/ws
usando Autenticación HTTP Básica. Los formatos de datos parasos
,tracker_update
(trilateración), ytracker_location_approximate
(proximidad) se detallan en los ejemplos JSON proporcionados en el documento original.
Formatos de Datos
- Alerta SOS
- Trilateración/Multilateral
- Posicionamiento por Área
{
"type": "tracker_sos",
"data": {
"2CF7F1C0530004AD": {
"timestamp": 1756967508000,
"sos": 0
}
}
}
{
"type": "tracker_update",
"data": {
"2CF7F1C0530003BD": {
"trackerId": "2CF7F1C0530003BD",
"timestamp": 1756967455550,
"position": {
"x": 11.1,
"y": 12.3
},
"last_detected_beacons": [
{
"macAddress": "C3:00:00:56:4B:5D",
"major": null,
"minor": null,
"name": "Unknown Beacon",
"rssi": -79,
"txPower": null,
"configured_x": null,
"configured_y": null
},
{
"macAddress": "C3:00:00:3E:7D:AA",
"major": null,
"minor": null,
"name": "Unknown Beacon",
"rssi": -80,
"txPower": null,
"configured_x": null,
"configured_y": null
},
{
"macAddress": "C3:00:00:13:3C:99",
"major": null,
"minor": null,
"name": "Unknown Beacon",
"rssi": -80,
"txPower": null,
"configured_x": null,
"configured_y": null
}
],
"position_history": [],
"map": "10 Floor",
"sos": 2
}
}
}
{
"type": "tracker_location_approximate",
"data": {
"2CF7F1C0530004AD": {
"trackerId": "2CF7F1C0530004AD",
"timestamp": 1756967098851,
"radius": 5.248074602497725,
"last_detected_beacons": [
{
"txPower": -59,
"rssi": -77,
"name": "corner",
"configured_x": 32.41,
"configured_y": 21.26,
"macAddress": "C3:00:00:56:4B:59"
}
],
"map": "10.5 Floor",
"sos": 0
}
}
}
Característica 2: Dos Modos de Posicionamiento
El sistema admite dos métodos de posicionamiento:
- Trilateración: Cuando el rastreador detecta tres o más balizas, calcula una coordenada precisa (x, y). Este es el modo predeterminado y el más preciso.
- Proximidad (Posicionamiento por Área): Si habilitas esta opción y el rastreador solo puede detectar una baliza, informará su posición como "cerca" de esa baliza dentro de un radio calculado. Esto es útil para garantizar la cobertura en todas las áreas.
Trilateración
Trilateración | Trilateración (SOS) |
---|---|
![]() | ![]() |
Posicionamiento por Área
Posicionamiento por Área | Posicionamiento por Área (SOS) |
---|---|
![]() | ![]() |
Característica 3: Ver el Historial de Alertas
Puedes ver el historial de alertas (por ejemplo, pulsaciones del botón SOS) de cualquier rastreador haciendo clic en su ícono en el mapa. El sistema registra cada nueva alerta y continuará enviando notificaciones mientras la alerta esté activa hasta que se resuelva.

Característica 4: Filtrar por UUID de Baliza
Puedes filtrar los rastreadores mostrados en el mapa según los UUID de baliza asociados. Esto permite un monitoreo más enfocado de áreas o activos específicos. Es importante para evitar manipulaciones no autorizadas.

Referencias y Recursos
- Página Principal: SenseCraft Indoor Positioning Solution
- Imagen de Docker: seeedcloud/sensecraft-indoor-positioning - Docker Hub
- Sitio de Demostración en Vivo: IndoorPositioning
Preguntas Frecuentes
¿Por qué mi rastreador no informa su ubicación?
- Causa probable: Puede haber un problema con la conectividad LoRaWAN.
- Solución: Verifica el estado de tu puerta de enlace LoRaWAN para asegurarte de que esté en línea y conectada. También confirma que el Device EUI del rastreador esté correctamente registrado en tu servidor de red.
¿Por qué la posición del rastreador es inexacta?
- Causa probable: La ubicación de tus balizas BLE podría estar causando interferencia o cobertura de señal débil.
- Solución: Intenta ajustar la potencia de transmisión de las balizas. También puede que necesites reubicarlas para reducir la obstrucción de señal por paredes o maquinaria.
¿Por qué la batería del rastreador se agota tan rápido?
- Causa probable: La frecuencia de informes está configurada demasiado alta, lo que hace que el dispositivo transmita datos con más frecuencia de la necesaria.
- Solución: Optimiza la configuración de detección de movimiento para informar solo cuando el rastreador esté en movimiento. También puedes aumentar el intervalo de informe (el tiempo entre actualizaciones de ubicación) para ahorrar energía.
¿Por qué faltan datos de ubicación o no se muestran?
- Causa probable: Podría haber un problema con la base de datos o la API, a menudo relacionado con cómo se interpreta la carga útil de datos.
- Solución: Primero, verifica que el decodificador de carga útil en tu servidor de aplicaciones sea correcto y esté funcionando. Si el decodificador es correcto, revisa los registros del servidor de aplicaciones para detectar errores o problemas de conectividad.
¿Por qué las alertas SOS no se reciben rápidamente?
- Causa probable: La red LoRaWAN puede estar congestionada o la clase de dispositivo no es adecuada para mensajes urgentes.
- Solución: Para aplicaciones críticas como alertas SOS, asegúrate de que tu rastreador esté configurado para usar modo Clase C. Esto mantiene el receptor del dispositivo encendido de forma continua, lo que permite la recepción inmediata de mensajes desde el servidor.
¿Cómo ajusto el intervalo de publicidad y la potencia de transmisión de una baliza BC01?
Puedes usar la aplicación SenseCraft para configurar la baliza BC01.
- Instala la aplicación SenseCraft desde Google Play Store o Apple App Store.
- Abre la aplicación y habilita el Bluetooth en tu teléfono.
- Escanea las balizas cercanas y selecciona la que deseas configurar.
- Introduce la contraseña predeterminada "seeed123" para acceder a la configuración.
- Ajusta el intervalo de publicidad (100 ms a 10 s) y la potencia de transmisión (-30 dBm a +4 dBm) según tus necesidades.
- Guarda los cambios.