[Vídeo do projeto]

Equipa: Grupo 02:
João Domingues (Coord.) Rui Lemos José Santos João Viegas Manuel Silva Bruno Ravara
Empresa Entropic Ventures Unip Lda
Orientadores: David Carvalhão (Entropic Ventures Unip Lda) e Arnaldo Oliveira (DETI)

Desafio

Os desafios no nosso projeto que gostaríamos de destacar foram os seguintes:

  • A recolha dos identificadores de maneira transparente, cumprindo as normas do RGPD.

  • Impossibilidade dos nossos módulos de Wi-Fi e Bluetooth no recetor não conseguirem funcionar simultaneamente.

  • Utilização de um algoritmo de conversão de RSSI para metros viável e com um erro reduzido.

  • Sincronização entre todos os recetores.

  • Criação de uma interface de utilizador, onde seja possível observar através de um Heatmap a quantidade de pessoas numa determinada posição assim como o visionamento das posições em Live Feed.

Resultados

No fim obtivemos resultados satisfatorios, conseguimos fazer a recolha de identificadores de dispositivos Apple, e wearebles de maneira transparente, no entanto não é possível fazer isto com dispositivos Android. Isto acontece porque o Android requer uma aplicação para fazer os broadcasts BLE, o que vai contra o nosso desafio de fazer este Sistema de uma maneira transparente. Para contrariar este problema, decidimos colocar patches Bluetooth nos carrinhos de compra, de maneira a conseguir fazer recolha de informação por mais um meio.

Conseguimos saber as trajetórias dos utilizadores e visualizar as mesmas numa interface de utilizador, no entanto o nosso alcance máximo com erro aceitavél são 5 metros, distancia maxima possível pelo nosso recetor (Arduino nano 33 IOT), o que está longe das nossas expectativas iniciais. Isto poderia ser resolvido com o uso de uma antena, mas infelizmente não houve tempo para fazer o seu desenvolvimento.

Mais informação

Nesta secção iremos entrar em mais detalhe na organização do nosso trabalho. Começamos por ver a arquitetura do nosso projeto:

Texto alternativo

Ao nível de hardware o nosso recetor é constituído por vários módulos que comunicam entre si. O módulo BLE e Wi-Fi, o Servidor Web e por fim o Cliente/Servidor em conjunção com a interface gráfica.

Nos Primeiros dois blocos, estes fazendo parte do Arduino (BLE e Wi-Fi), é feita a recolha e envio dos dados (RSSI e endereço MAC) para um servidor web criado pelo Arduino. O cliente/servidor estará encarregue de ir buscar os dados e fazer o tratamento dos mesmos que os irá guardar numa base de dados para posteriormente serem expostos numa interface gráfica.

Algoritmo usado para a conversão de RSSI para metros: Para a conversão de RSSI para metros começamos por ajustar parametros de uma formula já usada para a conversão até obtermos valores com o erro mais reduzido que conseguissemos e com um bom alcance. O resultado final juntamente com a formula pode ser visto em baixo no gráfico da relação entre o valor real de RSSI e o valor medido.

Texto alternativo

Algoritmo para o calculo da posição: Este cálculo é feito pela aproximação inicial da posição da pessoa (no meio da loja, quando temos um valor de posição medido anteriormente usamos esse valor) que na Figura abaixo está representado por um Triangulo. O algoritmo irá minimizar (pelo método dos mínimos quadrados) a soma dos erros que temos dessa aproximação e do valor obtido pelo RSSI por cada Arduino (representados por losangos) até chegar a posição marcada por uma Cruz na Figura.

Texto alternativo Texto alternativo