[Vídeo do projeto]

Equipa: Grupo 05:
Fernando Bezerra (Coord.) , Bruno Teixeira , Manuel Miranda , Pedro Soares , Thalles Menezes
Empresa: Entropic Ventures
Orientadores: Prof. Susana Sargento (DETI)
David Carvalhão (Entropic Ventures)

As doenças contagiosas sempre fizeram parte da nossa história, mas nos últimos tempos com o aparecimento do covid-19 surgiu a necessidade de rastrear possíveis contágios, nomeadamente em ambientes hospitalares. Sendo assim, o nosso projeto consiste em rastrear indivíduos e dispositivos hospitalares em ambientes de cuidados de saúde, permitindo assim localizar e identificar possíveis contágios.

Desafio


A proposta de projeto feita pela empresa Entropic Ventures consiste no desenvolvimento de uma Rede Mesh Resiliente e Flexível para Microcontroladores com limitações energéticas. Este projeto passsa então pela implementação de um protocolo de rede mesh sobre uma plataforma ESP32 que pode suportar diversos modos de funcionamento (store and forward, real-time) e protocolos de camada física (BLE, WiFi, AfE-EA ou outros) que seja flexível, permitindo a adição automática de novos nós, com prioridade na preservação de energia. Após diversas análises, a solução escolhida baseia-se em Bluetooth Low Energy(BLE), pois é esta tecnologia é ideal para baixo consumo. O desafio ocorre em instalações de cuidados de saúde, onde todos os indivíduos e dispositivos portáteis devem ser associados a um sinalizador (beacon) que emitirá constantemente através da Rede Mesh BLE. A mensagem será transmitida até chegar à unidade de processamento de dados através de um nó proxy, onde os dados serão processados. Após extrair o ID do beacon, o sinal RSSI (Received Signal Strength Indicator) e o nó a que está ligado, os dados serão enviados para uma base de dados onde serão associados a um timestamp. Os funcionários do hospital poderão então recuperar qualquer informação que lhe interesse, através de uma interface de utilizador implementada utilizando a ferramenta de desenvolvimento Node-Red.

Arquitetura


O desenvolvimento da arquitetura do projeto foi uma etapa fundamental para para o sucesso da sua conclusão. Esta foi dividida em três.

Arquitetura da rede

Com o objetivo de armazenar os dados, após analisármos o problema, utilizamos o SQLite e a linguagem de programação Python e implementamos 3 tabelas principais. Uma para armazenar os beacons registados na nossa rede e os seus endereços MAC, uma para armazenar os nós e os seus respetivos endereços MAC registados na nossa rede e finalmente, uma tabela que regista as conexões, ou seja, regista os IDs do nó e do beacon que efetuaram a conexão, o RSSI da conexão e a hora e data que a conexão foi efetuada.

Texto alternativo

Essa arquitetura, possibilita que todos os pontos do corredor e salas sejam cobertos pela rede, e que o rastreamento de beacons e o reencaminhamento da informação de qualquer ponto da rede até a unidade de processamento seja eficiente.

Para grandes salas, como uma sala de espera ampla, a arquitetura anterior também é adequado.

Texto alternativo

Dessa forma, pode-se cobrir qualquer espaço hospitalar com essa arquitetura, variando-se apenas a disposição de nós.

Arquitetura da base de dados

Com o objetivo de armazenar os dados, após analisármos o problema, utilizamos o SQLite e a linguagem de programação Python e implementamos 3 tabelas principais. Uma para armazenar os beacons registados na nossa rede e os seus endereços MAC, uma para armazenar os nós e os seus respetivos endereços MAC registados na nossa rede e finalmente, uma tabela que regista as conexões, ou seja, regista os IDs do nó e do beacon que efetuaram a conexão, o RSSI da conexão e a hora e data que a conexão foi efetuada.

Texto alternativo

Arquitetura da interface gráfica

De modo a facilitar a interação com o utilizador, gestão da rede e a visualização dos dados, obtamos por criar uma interface gráfica com recurso ao Node-Red. Na figura representada abaixo observa-se a arquitetura da interface do utilizador que é baseada em tabela personalizadas, filtros, botões para navegar entre tabelas e mecanismos para registar, modificar ou apagar utilizadores ou localizações.

Texto alternativo

Resultados


De modo a compreender melhor os resultados obtidos ao longo destes quatro meses de trabalho, esta secção apresenta a solução desenvolvida com os consequentes resultados por duas secções. A primeira secção trata da arquitetura da rede e o seu funcionamento. A segunda secção trata da arquitetura da base de dados, processamento e interface gráfica.

Rede Mesh

A rede BLE mesh foi implementada de forma resiliente e editável baseando-se em conceitos de Server e Client para três tipos de nós: Low Power Nodes, Relay Nodes e Proxy Nodes. Os Low Power Nodes que somente escaneam e enviam informação se comportam como somente como Clients, os Relay Nodes, que fazem o reencaminhamento de dados apresentam ambos os modos de funcionamento, para receção, escaneamento e receção de informação. O Proxy Node funciona somente como um Server e apenas recebe dados dos nós anteriores para reencaminhar para a Unidade de Processamento (Servidor: Raspberry Pi 0).

Dessa forma, a rede apresenta as seguintes funcionalidades:

  • Reencaminhamento de dados por BLE
  • Uso da função Sleep
  • Rastreio de Beacons
  • Registro temporal de rastreio

Benefícios da Rede alcançada:

  • Conexão resiliente
  • Facilmente editávelp
  • Baixo consumo de energia
  • Adaptabilidade de acordo com o ambiente

A figura a seguir demonstra a trnasmissão de um pacote, a partir de um nó client, passando por um nó server, até chegar ao banco de dados.

Texto alternativo

O formato do pacote transmitido é: MAC_DO_NÓ_QUE_DETETOU_O BEACON MAC_DO_BEACON RSSI

Base de dados

A imagem seguinte ilustra a base de dados implementada. Texto alternativo

Interface Gráfica

Tabela de Conexões

A nossa interface começa por mostrar uma tabela geral com todas as conexões, apresentando também botões para navegar entre tabelas e um filtro.

Texto alternativo

Tabela de Utilizadores

A tabela de utilizadores mostra o nome dos utilizadores associados a um BeaconID, MAC Address, tipo (Hospital Staff, Patient, Visitor ou Healthcare device) e a flag uma flag infected. Tem também diversas funções de registo, modificação ou de apagar o utilizador.

Texto alternativo

Tabela de Localizações

A tabela das localizações mostra o nome das localizações onde estão os nós associados a um NodeID e a um MAC Address. Tem também diversas funções de registo, modificação ou de apagar o utilizador.

Texto alternativo

Tabela de Deteção de Infeções

Por fim, a tabela de deteção de infeções permite filtrar as conexões por utilizador, onde mostra uma tabela com todas as localizações que o utilizador percorreu, ou por localização, onde mostra uma tabela com todos os utilizadores que percorreram uma determinada localização.

Texto alternativo