|
|
|
## Introducción:
|
|
|
|
|
|
|
|
## Introducción: (Ver Ref: [1])
|
|
|
|
|
|
|
|
Con el paso de los años, la necesidad de mantener conectados a la red los objetos cotidianos,
|
|
|
|
ha dado lugar a la aparición de nuevas tecnologías que se engloban dentro del concepto
|
|
|
|
de Internet de las Cosas (IoT). Entre estas tecnologías se encuentra Bluetooth Low
|
|
|
|
Energy (BLE).
|
|
|
|
|
|
|
|
Bluetooth es una de tecnología para Redes Inalámbricas de Área Personal que se comenzó
|
|
|
|
a desarrollar en el año 1994. Su función principal es permitir la comunicación entre
|
|
|
|
dispositivos mediante un enlace de radiofrecuencia. Desde sus inicios hasta el día de hoy
|
|
|
|
ha ido evolucionando para añadir mejoras como una mayor velocidad de transmisión, un
|
|
|
|
mayor rango de cobertura, o una mayor eficiencia energética.
|
|
|
|
Con la cuarta versión de la especificación de Bluetooth Core, en el año 2010, se introduce
|
|
|
|
Bluetooth Low Energy, una variante de la tecnología enfocada fundamentalmente a
|
|
|
|
reducir el consumo de los dispositivos Bluetooth. Con este primer paso, Bluetooth se
|
|
|
|
incorpora el mundo de las redes IoT.
|
|
|
|
|
|
|
|
En 2015 aparece Bluetooth Mesh Networking, una tecnología de red que usa Bluetooth
|
|
|
|
Low Energy como protocolo de comunicación inalámbrico entre los nodos de la red. La
|
|
|
|
gran aportación de esta versión, que supone el salto definitivo a las redes IoT, es la
|
|
|
|
forma en la que ahora se comunican los nodos de la red, pasando de comunicaciones
|
|
|
|
“peer-to-peer ” a comunicaciones “many-to-many”. Con esta novedad se consiguen crear
|
|
|
|
redes con un número elevado de nodos y de una extensión considerable, sin la necesidad
|
|
|
|
de que todos los nodos sean capaces de verse entre sí. Esto la convierte en una tecnología
|
|
|
|
muy ventajosa a la hora de utilizarla tanto en entornos cotidianos como Smart Homes,
|
|
|
|
Smart Buildings o en grandes redes industriales.
|
|
|
|
|
|
|
|
Bluetooth Mesh introduce el concepto de modelos para definir la funcionalidad básica de
|
|
|
|
los nodos de la red mallada. Cada modelo define un conjunto de estados y de tipos de
|
|
|
|
mensajes que permiten entablar una buena comunicación entre los nodos de la red en
|
|
|
|
diversos entornos.
|
|
|
|
|
|
|
|
El propósito de este proyecto es que los alumnos del Grado en Ingeniería de Tecnologías
|
|
|
|
de Telecomunicación puedan ampliar sus conocimientos sobre las tecnologías Bluetooth
|
|
|
|
Low Energy y Bluetooth Mesh Networking, que de forma conjunta se perfilan como una
|
|
|
|
alternativa válida para el despliegue de redes IoT, a través del desarrollo de un modelo
|
|
|
|
para Bluetooth Mesh propio y del análisis del tráfico que se genera en la red cuando los
|
|
|
|
nodos ejecutan dicho modelo.
|
|
|
|
|
|
|
|
|
|
|
|
## Definiciones:
|
|
|
|
|
|
|
|
### Tipos de Nodos BLE Mesh. (Ver Ref: [1])
|
|
|
|
|
|
|
|
- Aprovisionador: Este papel lo lleva a cabo un dispositivo Android o iOS mediante la aplicación nRF Mesh proporcionada por Nordic Semiconductor. Se encarga de conectarse a cada uno de los nodos de la red mediante una conexión BLE y de configurarlos de tal forma que todos ellos pertenezcan a la misma red Mesh. También adjudica automáticamente una dirección dentro de la red a cada nodo y permite configurar a qué servidor o grupo de servidores se va a dirigir cada instancia del cliente. En el caso de dirigirse a un grupo, debemos crearlo desde la propia aplicación y suscribir a los nodos que se desee.
|
|
|
|
- **Aprovisionador: ** Este papel lo lleva a cabo un dispositivo Android o iOS mediante la aplicación nRF Mesh proporcionada por Nordic Semiconductor. Se encarga de conectarse a cada uno de los nodos de la red mediante una conexión BLE y de configurarlos de tal forma que todos ellos pertenezcan a la misma red Mesh. También adjudica automáticamente una dirección dentro de la red a cada nodo y permite configurar a qué servidor o grupo de servidores se va a dirigir cada instancia del cliente. En el caso de dirigirse a un grupo, debemos crearlo desde la propia aplicación y suscribir a los nodos que se desee.
|
|
|
|
|
|
|
|
- Cliente Para actuar como cliente se utiliza una de las placas Nordic Thingy:52 de Nordic, convenientemente programada. Será el encargado de hacer peticiones al servidor (dispositivo a localizar) o a un grupo deservidores (cuando se busca un conjunto) para conocer el estado de sus baterías. Según el estado de lasbaterías el cliente les responderá con un nivel de alerta más alto o más bajo.
|
|
|
|
- **Cliente: ** Para actuar como cliente se utiliza una de las placas Nordic Thingy:52 de Nordic, convenientemente programada. Será el encargado de hacer peticiones al servidor (dispositivo a localizar) o a un grupo deservidores (cuando se busca un conjunto) para conocer el estado de sus baterías. Según el estado de lasbaterías el cliente les responderá con un nivel de alerta más alto o más bajo.
|
|
|
|
|
|
|
|
- Servidor Para actuar como servidor también se utiliza una de las placas nRF52 de Nordic, en estaocasión programada para ejecutar las tareas correspondientes a un servidor. El servidor escucha laspeticiones que el cliente le haga. Estas peticiones le pueden llegar bien por estar suscrito a un grupoen esa red o directamente a su dirección unicast. Cuando recibe una petición del nivel de batería, se lotransmite al cliente. Cuando recibe una alerta, enciende el led de la placa que corresponda, con el nivelde intensidad adecuado.
|
|
|
|
- **Servidor: ** Para actuar como servidor también se utiliza una de las placas nRF52 de Nordic, en estaocasión programada para ejecutar las tareas correspondientes a un servidor. El servidor escucha laspeticiones que el cliente le haga. Estas peticiones le pueden llegar bien por estar suscrito a un grupoen esa red o directamente a su dirección unicast. Cuando recibe una petición del nivel de batería, se lotransmite al cliente. Cuando recibe una alerta, enciende el led de la placa que corresponda, con el nivelde intensidad adecuado.
|
|
|
|
|
|
|
|
- Relay La finalidad de los nodos relay es recibir y retransmitir mensajes, cuando el servidor no está en elrango de cobertura del cliente y viceversa. Esta función va a estar implementada tanto en los nodos cliente como en los nodos servidor.
|
|
|
|
- **Relay: ** La finalidad de los nodos relay es recibir y retransmitir mensajes, cuando el servidor no está en elrango de cobertura del cliente y viceversa. Esta función va a estar implementada tanto en los nodos cliente como en los nodos servidor.
|
|
|
|
|
|
|
|
- Servidor-Proxy Tiene el mismo comportamiento que los servidores pero a su vez incorpora un servicio de Bluetooth Low Energy que utilizará para ir enviando notificaciones a la aplicación Sniffer con el contenido de los paquetes de la red, que es capaz de capturar.
|
|
|
|
- **Servidor-Proxy: ** Tiene el mismo comportamiento que los servidores pero a su vez incorpora un servicio de Bluetooth Low Energy que utilizará para ir enviando notificaciones a la aplicación Sniffer con el contenido de los paquetes de la red, que es capaz de capturar.
|
|
|
|
|
|
|
|
### Segger Embedded Studio. (Ver Ref: [1])
|
|
|
|
### Segger Embedded Studio. BLE Mesh en la práctica. (Ver Ref: [1])
|
|
|
|
|
|
|
|
Para la programación de cada uno de los diferentes nodos se ha utilizado el entorno de desarrollo Segger Embedded Studio, junto con los kits de desarrollo software nRF5 SDK y nRF5 SDK para Mesh. Además de la pila de protocolos Bluetooth Low Energy y Bluetooth Mesh, los diferentes tipos de nodos implementan el modelo: Simple-Thingy Server. Dicho modelo ha sido implementado por Nordic Semiconductor.
|
|
|
|
Para la programación de cada uno de los diferentes nodos se ha utilizado el entorno de desarrollo Segger Embedded Studio, junto con los kits de desarrollo software nRF5 SDK y nRF5 SDK para Mesh. Además de la pila de protocolos Bluetooth Low Energy y Bluetooth Mesh, los diferentes tipos de nodos implementan el modelo: **Simple-Thingy Server** y **Simple-Thingy Client**. Dicho modelo ha sido implementado por Nordic Semiconductor.
|
|
|
|
|
|
|
|
Siguiendo la Ref: [1], si se desea crear un modelo personalizado para las placas nRF52, se debería lleva a cabo siguiendo los pasos aconsejados por el propio fabricante:
|
|
|
|
|
| ... | ... | @@ -30,7 +66,7 @@ Siguiendo la Ref: [1], si se desea crear un modelo personalizado para las placas |
|
|
|
|
|
|
|
4. En el lado del cliente se sigue un proceso similar en el que se crean funciones para enviar los posibles tipos de mensajes. Por otra parte, se definen un handler por cada opcode existente en el modelo para así poder procesar los mensajes recibidos correctamente. Finalmente también hay que crear una función para inicializar el modelo en el cliente.
|
|
|
|
|
|
|
|
Todos los proyectos siguen una estructura muy similar en la que se inicializan la pila de Bluetooth Low Energy, los parámetros de conexión y la pila de Bluetooth Mesh. Es en esta última donde se inicializan los distintos modelos según el rol que cada nodo va a desempeñar dentro de la red. Por último, se compruebasi el nodo ha sido ya aprovisionado y si no esperará hasta que se incorpore a la red para poder llevar acabo su función principal.
|
|
|
|
Todos los proyectos siguen una estructura muy similar en la que se inicializan la pila de Bluetooth Low Energy, los parámetros de conexión y la pila de Bluetooth Mesh. Es en esta última donde se inicializan los distintos modelos según el rol que cada nodo va a desempeñar dentro de la red. Por último, se comprueba si el nodo ha sido ya aprovisionado y, si no, esperará hasta que se incorpore a la red para poder llevar acabo su función principal.
|
|
|
|
|
|
|
|
|
|
|
|
|
| ... | ... | |
| ... | ... | |