|
|
|
## Introducción:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Definiciones:
|
|
|
|
|
|
|
|
### Tipos de Nodos BLE Mesh.
|
|
|
|
|
|
|
|
- Aprovisionador: Este papel lo lleva a cabo un dispositivo Android o iOS mediante la aplicación nRF Mesh proporcionada por Nordic Semiconductor [9].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.
|
|
|
|
|
|
|
|
- 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.
|
|
|
|
|
|
|
|
- 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.
|
|
|
|
|
|
|
|
Para la programación de cada uno de los diferentes nodos se ha utilizado el entorno de desarrollo Segger Embedded Studio [10], junto con los kits de desarrollo software nRF5 SDK [11] y nRF5 SDKpara Mesh [12].Además de la pila de protocolos Bluetooth Low Energy y Bluetooth Mesh, los cuatro tipos de nodosimplementa el modelo: Simple-Thingy Server. Dicho modelo ha sido implementado por Nordic Semiconductor.La implementación de un modelo personalizado para las placas nRF52 se lleva a cabo siguiendo lospasos aconsejados por el propio fabricante:
|
|
|
|
|
|
|
|
1. Definición de todos los tipos de mensajes descritos en la especificación de Bluetooth Mesh paraese modelo. Cada uno de ellos tiene asociado un código diferenciador llamado opcode que sirvepara poder identificarlos.
|
|
|
|
|
|
|
|
2. Creación de las estructuras para almacenar el contenido de cada uno de los mensajes definidospreviamente.
|
|
|
|
|
|
|
|
3. En la parte del servidor se crea una estructura que contenga un callback para cada tipo demensaje que pueda recibir. Será en estas funciones dónde se defina el comportamiento del servidoral recibir las peticiones del cliente. También es necesario un método que nos permita respondera estas peticiones con el tipo de mensaje correspondiente. Por último, necesitamos juntar todo elmodelo en una función de inicialización.
|
|
|
|
|
|
|
|
4. En el lado del cliente se sigue un proceso similar en el que se crean funciones para enviar losposibles tipos de mensajes. Por otra parte, se definen un handler por cada opcode existente en elmodelo para así poder procesar los mensajes recibidos correctamente. Finalmente también hay quecrear 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 LowEnergy, 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Links de interés y referencias:
|
|
|
|
|
|
|
|
1. [Trabajo de fin de grado: Diseño, implementación y análisis de una red Mesh Bluetooth Low Energy Universidad de Vigo.](http://castor.det.uvigo.es:8080/xmlui/bitstream/handle/123456789/354/TFG\%20Marta\%20Rivadulla\%20Galdo.pdf?sequence=1&isAllowed=y) |
|
|
|
\ No newline at end of file |