• Nenhum resultado encontrado

Wi-Fi Tag: software de monitorização de fingerprints e hardware

N/A
N/A
Protected

Academic year: 2020

Share "Wi-Fi Tag: software de monitorização de fingerprints e hardware"

Copied!
94
0
0

Texto

(1)

Tiago José Castro Fernandes

Wi-Fi Tag – Software de Monitorização

de Fingerprints e Hardware

Tiago José Castro Fernandes

Outubro de 2014 UMinho | 201 4 W i-F i T ag – Sof tw ar e de Monitor ização de F ing er pr ints e Har dw ar e

Universidade do Minho

Escola de Engenharia

(2)
(3)

Outubro de 2014

Dissertação de Mestrado

Ciclo de Estudos Integrados Conducentes ao Grau de

Mestre em Engenharia Eletrónica Industrial e Computadores

Trabalho efetuado sob a orientação do

Professor Doutor Jorge Cabral

Tiago José Castro Fernandes

Wi-Fi Tag – Software de Monitorização

de Fingerprints e Hardware

Universidade do Minho

(4)
(5)

iii

AGRADECIMENTOS

Para começar gostaria de agradecer à minha família, os meus pais José Cunha Fernandes e Maria Fernandes de Castro por todas as condições e oportunidades que desde sempre me proporcionaram ao longo de toda a minha vida académica e ao meu irmão João Fernandes pelo apoio incondicional.

Ao meu orientador, o Professor Doutor Jorge Cabral e também ao Mestre João Brito não só pelo investimento e confiança transmitidos, bem como todos os conhecimentos e ajuda disponibilizada sempre que requisitada.

Ao ESRG do Departamento de Eletrónica Industrial da Universidade do Minho pelo apoio e disponibilidade sempre demonstrada, assim como pelas condições e recursos necessários sempre proporcionados.

Aos meus colegas de curso e amigos que me acompanharam durante este percurso académico Luís Costa, Eurico Moreira, Pedro Pereira, Fábio Ferreira, Emanuel Costa, Davide Guimarães, Pedro Rocha, João Sousa, Joel Dias e Pedro Ribeiro e, em especial, ao João Enes da Lage com o qual tive ainda, para além disso, a oportunidade de trabalhar no decorrer deste projeto.

Agradecer ainda à minha namorada, Maria Michou, pelo apoio e carinho sempre dedicados, principalmente nos momentos mais difíceis e de menor produtividade.

(6)
(7)

v

RESUMO

Nos dias de hoje, a tecnologia 802.11 WLAN está cada vez mais a tornar-se um elemento indispensável na sociedade que nos rodeia; a possibilidade de acesso à Internet aliado às altas velocidades de transmissão de dados que esta consegue atingir, torna-a praticamente insubstituível atualmente. Contudo, as suas funcionalidades não ficam por aqui. Esta é também utilizada em serviços de sistemas para determinar a localização de um pessoa ou objeto específico, podendo esta informação ser usada para diversas finalidades.

É neste contexto que surge o presente projeto que consiste na monitorização de enfermeiras e médicos numa determinada clinica ou unidade hospitalar. Esta abordagem tem portanto a vantagem de não trazer qualquer custo adicional para instalação de novo hardware, uma vez que serão usadas as instalações WLAN já existentes no local. Desta forma, é apenas necessário que cada pessoa transporte consigo uma Wi-Fi tag que ficará, sem qualquer intervenção por parte do seu portador, encarregue de enviar dados relativos à rede para uma aplicação gráfica que estará a ser executada num servidor.

A presente dissertação assenta na implementação do software relativo à aplicação gráfica que estará encarregue de receber os dados relativos a cada tag, fazer a sua interpretação e, de seguida, apresentar essa mesma informação de uma forma simplificada, aliando, como não poderia deixar de ser, um ambiente gráfico user-friendly e de fácil manuseamento. Para além disso, vai ainda ser desenhado o hardware necessário para dar suporte a cada uma das tags.

(8)
(9)

vii

ABSTRACT

Nowadays, 802.11 WLAN technology is becoming every time more imperative in our society; combining the possibility to connect to Internet with the high speed delivering data it can reach, it gets almost irreplaceable by any other communication protocol. However, its functionalities are not just limited to these. This technology is also often used in localization system services, providing the possibility to determine the exactly position of a specific person or object, being this information available to be used in many different ways.

It is based on that context that the present project arises, with the purpose of monitoring nurses and doctors in a clinic or a medical facility. This approach has the advantage that no costly hardware installations are required once they will already be available in the place to monitor. Like this, it is just necessary that every person carry always his/her own Wi-Fi tag that will be in charge of sending data about its surrounding networks to a graphical application running on a server, without any intervention from the tag holder.

This dissertation is centered on the implementation of the software for the graphical application that will have to receive the data from each tag, interpret it and, only then, display it in a simple and easy to understand style, along with a user-friendly interface, providing any possible user a comfortable experience.

Furthermore, it will be design all the necessary hardware needed to support each tag.

(10)
(11)

ix

ÍNDICE GERAL

Agradecimentos ... iii Resumo ... v Abstract ... vii Índice Geral ... ix Abreviaturas e siglas ... xi

Índice de Figuras... xiii

Índice de Tabelas ... xv Introdução ... 1 1.1. CONTEXTUALIZAÇÃO ... 1 1.2. OBJETIVOS ... 2 1.3. MOTIVAÇÃO ... 2 1.4. ORGANIZAÇÃO DA DISSERTAÇÃO ... 3 Estado de arte ... 5 2.1. MODELO OSI ... 5 2.1.1. 802.11 Wi-Fi ... 6

2.1.2. Internet Protocol (IP) ... 11

2.2. SISTEMAS DE LOCALIZAÇÃO ... 13

2.2.1. Métodos de Localização indoor usando redes Wi-Fi ... 14

2.3. APLICAÇÕES DE MONITORIZAÇÃO DE REDES WI-FI ... 17

Análise do Sistema ...23

3.1. REQUISITOS DO SISTEMA ... 23

3.1.1. Requisitos Funcionais ... 23

3.1.2. Requisitos Não-Funcionais ... 24

3.2. RESTRIÇÕES TÉCNICAS DO SISTEMA ... 24

3.3. COMPORTAMENTO E VISÃO DO SISTEMA ... 25

Design do Sistema ...27

4.1. ESPECIFICAÇÃO DO HARDWARE... 27

4.1.1. WiFi DipCortex ... 27

4.1.2. Shield ... 29

(12)

x

4.1.2.2. Regulador de tensão (LDO) ...30

4.2. ESPECIFICAÇÕES DE SOFTWARE ... 30

4.2.1. Interface Gráfico ... 30

4.2.1.1. Linguagem e IDE...31

4.2.1.2. Protocolo de comunicação ...31

4.2.1.3. Comportamento da aplicação ...32

4.2.1.4. Formato de notação JSON ...37

4.2.2. APIs para suporte ao Acelerómetro LIS331DLH ... 39

4.2.2.1. Mbed ...39

4.2.2.2. Protocolo de comunicação e APIs ...40

Implementação do Sistema ...45

5.1. DESENVOLVIMENTO DA APLICAÇÃO GRÁFICO ... 45

5.1.1. Manutenção dos dados ... 46

5.1.2. Comunicação UDP ... 47

5.1.3. Objeto JSON ... 48

5.1.4. Comportamento da aplicação e interface gráfico ... 49

5.2. BIBLIOTECA DE INTERFACE COM O LIS331DLH ... 53

5.2.1. Aplicação para teste da biblioteca ... 56

5.3. HARDWARE DESENVOLVIDO ... 57 5.3.1. LIS331DLH ... 57 5.3.2. Alimentação da tag ... 58 5.3.3. Outros componentes ... 59 Resultados Obtidos ...61 6.1. APLICAÇÃO GRÁFICA ... 61

6.2. BIBLIOTECA DE INTERFACE COM LIS331DLH ... 66

6.3. HARDWARE DESENVOLVIDO ... 67 Conclusões ...69 7.1. CONCLUSÃO ... 69 7.2. LIMITAÇÕES ... 70 7.3. TRABALHO FUTURO ... 70 Referências Biliográficas ...73

(13)

xi

ABREVIATURAS E SIGLAS

ADC - Analog-to-Digital Converter AP - Access Point

API - Application Programming Interface ARM - Advanced RISC Machine

BSS - Basic Service Set

CMSIS - ARM Cortex-M Software Interface Standard

CMSIS-DAP - ARM Cortex-M Software Interface Standard - Debug Access Port CS - Chip Select

DHCP - Dynamic Host Configuration Protocol DIP - Dual In-line Package

DNS - Domain Name System DS - Distribution System

EEPROM - Electrically Erasable Programmable Read-Only Memory ESS - Extended Service Set

ETSI - European Telecommunications Standards Institute FCC - Federal Communications Commission

FPGA - Field-Programmable Gate Array GPIO - General Propose Input/Output GPS - Global Positioning System GUI - Graphical User Interface HDK - Hardware Development Kit HTTP - HyperText Transfer Protocol I/O - Input/Output

I2C - Inter-Integrated Circuit

IBSS - Independent Basic Service System IC - Industry Canada

IDE - Integrated Development Environment

IEEE - Institute of Electrical and Electronics Engineers IP - Internet Protocol

ISO - International Organization for Standardization JSON - JavaScript Object Notation

(14)

xii

LAN - Local Area Network LBS - Location Based System LDO - Low-DropOut

LLC - Logical Link Layer

mDNS - multicast Domain Name System MAC - Media Access Control

MIMO - Multiple-Input Multiple-Output MISO - Master In Slave Out

MOSI - Master Out Slave In ODR - Output Data Rate

OSI - Open Systems Interconnection PCB - Printed Circuit Board

PLCP - Physical Layer Convergence Procedure PMD - Physical Medium Dependent

RFID - Radio Frequency IDentification RISC - Reduced Instruction Set Computer ROM - Read-Only Memory

RP - Reference Point

RSSI - Received signal strength indication RTOS - Real Time Operating System SATA - Serial AT Attachment SDK - Software Development Kit SPI - Serial Peripheral Interface

SRAM - Static Random Access Memory SS - Signal Strength

SSID - Service Set IDentifier

TCP - Transmission Control Protocol

UART - Universal Asynchronous Receiver/Transmitter UDP - User Datagram Protocol

USB - Universal Serial Bus VCS - Version Control System

WLAN - Wireless Local Area Network WPA - Wi-Fi Protected Access

(15)

xiii

ÍNDICE DE FIGURAS

FIGURA 2.1 PRINCIPAIS STANDARDS IEEE 802.11 EXISTENTES ATUALMENTE [5] ... 6

FIGURA 2.2 ARQUITETURA DAS REDES 802.11 WLAN ... 7

FIGURA 2.3 TOPOLOGIA DE UMA REDE EM MODO AD-HOC ... 7

FIGURA 2.4 TOPOLOGIA DE UMA REDE EM MODO INFRAESTRUTURA ... 8

FIGURA 2.5 TECNOLOGIA 802.11 WLAN NO MODELO OSI [4] ... 9

FIGURA 2.6 EVOLUÇÃO DOS STANDARDS PARA A TECNOLOGIA 802.11 COM AS VÁRIAS TÉCNICAS DE MODULAÇÃO USADAS ... 10

FIGURA 2.7 AS DUAS FASES DO MÉTODO FINGERPRINTING:(A) OFFLINE PHASE, (B) ONLINE PHASE ... 15

FIGURA 2.8 INSSIDER 4 PARA WINDOWS ... 18

FIGURA 2.9 WIFI EXPLORER A MONITORIZAR APENAS OS CANAIS DAS REDES EM 5GHZ ... 19

FIGURA 2.10 EXEMPLO DO INTERFACE DA APLICAÇÃO WIFI INSPECTOR DA XIRRUS ... 20

FIGURA 2.11 USANDO O NETSPOT PARA VERIFICAR A COBERTURA WIFI NUM DETERMINADO LOCAL ... 21

FIGURA 3.1 DIAGRAMA DE CASOS DE USO DO SISTEMA ... 25

FIGURA 3.2 DIAGRAMA DE ESTADOS DO SISTEMA ... 26

FIGURA 3.3 VISÃO GERAL DE TODO O SISTEMA... 26

FIGURA 4.1 PLACA DE DESENVOLVIMENTO WIFI DIPCORTEX ... 27

FIGURA 4.2 PINOUT DA PLACA DE DESENVOLVIMENTO WIFI DIPCORTEX ... 28

FIGURA 4.3 MOCKUP SUGESTIVA PARA O INTERFACE GRÁFICO DA APLICAÇÃO ... 33

FIGURA 4.4 DIAGRAMA DE CLASSE UML RELATIVO AO SISTEMA ... 34

FIGURA 4.5 DIAGRAMA DE ATIVIDADE PARA A THREAD PARA GRAVAR OS DADOS PARA FICHEIRO ... 36

FIGURA 4.6 DIAGRAMA DE ATIVIDADE DA THREAD DO SERVIDOR UDP ... 36

FIGURA 4.7 EXEMPLO DE UMA MENSAGEM NO FORMATO JSON ... 38

FIGURA 4.8 DIAGRAMA DE CLASSES UML RELATIVO AO OBJETO JSON ... 38

FIGURA 4.9 EXEMPLO DE UM WORKSPACE NO IDE ONLINE DO MBED ... 40

FIGURA 4.10 LEITURA DO ACELERÓMETRO USANDO SPI ... 42

FIGURA 4.11 ESCRITA PARA O ACELERÓMETRO USANDO SPI ... 42

FIGURA 4.12 DIAGRAMA TEMPORAL SOBRE O MODO DE TRANSMISSÃO DO PROTOCOLO SPI ... 44

FIGURA 5.1 ATRIBUIÇÃO DA FUNÇÃO A EXECUTAR À RESPETIVA THREAD E INÍCIO DA MESMA ... 45

FIGURA 5.2 EXEMPLO DE COMO TORNAR UMA CLASSE SERIALIZABLE ... 46

FIGURA 5.3 CARREGAR OS DADOS DO FICHEIRO OU CRIAR UM FICHEIRO CASO ELE NÃO EXISTA AINDA ... 46

FIGURA 5.4 GRAVAÇÃO DAS LISTAS PARA OS RESPETIVOS FICHEIROS ... 47

FIGURA 5.5 PROCEDIMENTO PARA CRIAR O SERVIDOR UDP ... 47

FIGURA 5.6 CLASSE JSON ... 48

FIGURA 5.7 PARSING DA MENSAGEM RECEBIDA PARA UM OBJETO JSON ... 48

FIGURA 5.8 PROCESSAMENTO DOS DADOS PARA QUE OS SEJA POSSÍVEL ADICIONAR À LISTA DE SCANS ... 49

(16)

xiv

FIGURA 5.10 FUNÇÃO IMPLEMENTADA PARA OBTENÇÃO DOS ÚLTIMOS SCANS DE UMA DETERMINADA TAG ... 51

FIGURA 5.11 EVENTO DESENCADEADO QUANDO O VALOR DA CHECKBOX DA TABELA É ALTERADO ... 51

FIGURA 5.12 CONDIÇÃO USADA PARA VERIFICAR SE É A PRIMEIRA LEITURA DE UMA DETERMINADA TAG ... 52

FIGURA 5.13 CONDIÇÃO PARA ADICIONAR UMA LEITURA À TABELA TENDO EM CONTA OS APS SELECIONADOS ANTERIORMENTE ... 52

FIGURA 5.14 CLASSE PARA CRIAR UM OBJETO DO TIPO ACELERÓMETRO ... 53

FIGURA 5.15 CONSTRUTOR DA CLASSE ACELERÓMETRO ... 53

FIGURA 5.16 API COM A CONFIGURAÇÃO POR DEFINIÇÃO DO PROTOCOLO SPI ... 53

FIGURA 5.17 MACROS DEFINIDAS PARA ESCREVER E LER USANDO SPI ... 54

FIGURA 5.18 API PARA ESCRITA DE UM VALOR NUM DETERMINADO REGISTO... 54

FIGURA 5.19 API PARA LEITURA DO VALOR DE UM DETERMINADO REGISTO ... 54

FIGURA 5.20 API USADA PARA SABER O VALOR DO EIXO DO X A QUALQUER MOMENTO ... 55

FIGURA 5.21 API COM A CONFIGURAÇÃO A SER USADA PELA WIFI DIPCORTEX NO PROJETO EM QUESTÃO ... 55

FIGURA 5.22 FUNÇÃO RESPONSÁVEL POR FAZER POLLING AO ACELERÓMETRO ... 56

FIGURA 5.23 FUNÇÃO RESPONSÁVEL POR ATIVAR A GERAÇÃO DE INTERRUPÇÃO PELO ACELERÓMETRO ... 57

FIGURA 5.24 ESQUEMÁTICO DO CIRCUITO PARA O ACELERÓMETRO LIS331DLH ... 58

FIGURA 5.25 FIGURA 3.6 ESQUEMÁTICO DO CIRCUITO PARA A ALIMENTAÇÃO DA TAG COM UMA BATERIA... 58

FIGURA 5.26 ESQUEMÁTICO DO INTERRUPTOR DE ALIMENTAÇÃO DA PLACA... 58

FIGURA 5.27 ESQUEMÁTICO DOS CONETORES DA SHIELD ... 59

FIGURA 5.28 ESQUEMÁTICO DA PCB DA SHIELD ... 60

FIGURA 5.29 VISÃO 3D SUPERIOR DA SHIELD ... 60

FIGURA 5.30 VISÃO 3D INFERIOR DA SHIELD ... 60

FIGURA 6.1 INTERFACE GRÁFICO INICIAL DA APLICAÇÃO ... 61

FIGURA 6.2 ADICIONAR UMA NOVA TAG AO SISTEMA ... 62

FIGURA 6.3 ELIMINAR UMA TAG EXISTENTE DO SISTEMA ... 62

FIGURA 6.4 ESCOLHER UMA TAG EXISTENTE NO SISTEMA PARA MONITORIZAR ... 63

FIGURA 6.5 MONITORIZAÇÃO DE UMA TAG ... 63

FIGURA 6.6 INICIAR A MONITORIZAÇÃO DE UMA TAG PARA A QUAL NÃO EXISTEM REGISTOS DE SCANS ANTERIORES ... 64

FIGURA 6.7 LOADING DAS ÚLTIMAS LEITURAS DE UMA PLACA COM UMA SELEÇÃO DAS REDES A MONITORIZAR ... 64

FIGURA 6.8 VERSÃO CRIADA PARA DEBUG USANDO A CONSOLA PARA IMPRIMIR TODOS OS DADOS RECEBIDOS ... 65

FIGURA 6.9 TESTE DO ACELERÓMETRO POR POLLING ... 66

FIGURA 6.10 TESTE DO ACELERÓMETRO POR INTERRUPÇÃO ... 66

FIGURA 6.11 PLACA DE DESENVOLVIMENTO WIFI DIPCORTEX E SHIELD DESENVOLVIDA ... 67

FIGURA 6.12 PROTÓTIPO FINAL DA WI-FI TAG ... 67

FIGURA 6.13 VISTA LATERAL DO PROTÓTIPO DA WI-FI TAG ... 68

(17)

xv

ÍNDICE DE TABELAS

TABELA 2-1 DIFERENTES CAMADAS DO MODELO OSI ... 5

TABELA 2-2 SERVIÇOS DE UMA REDE ... 8

TABELA 4-1 CARACTERÍSTICAS DOS MÓDULOS CONSTITUINTES DA PLACA DE DESENVOLVIMENTO WIFI DIPCORTEX ... 29

TABELA 4-2 TABELA COM AS APIS DISPONIBILIZADAS PELA MBED PARA O PROTOCOLO SPI ... 43

(18)
(19)

1

Capítulo 1

INTRODUÇÃO

Neste primeiro capítulo faz-se uma introdução ao projeto a ser desenvolvido, contextualizando-o na realidade atual no que diz respeito ao mercado. Para além disso, são também definidos os objetivos propostos para este trabalho, bem como as principais razões para a sua escolha. Por fim, é feita uma breve descrição da estrutura da presente dissertação.

1.1.

Contextualização

A informação acerca de posicionamento pode ser bastante importante em diversas áreas como a aviação, aeronáutica ou robótica, mas também em casos mais simples do nosso quotidiano, como simplesmente saber a nossa localização ou a de um determinado local a visitar e qual o melhor percurso para lá chegar ou, por exemplo, permitir tirar partido da nossa posição atual para saber quais os pontos de interesse (PDI) à nossa volta, mas estes estão longes de serem as únicas aplicações possíveis. Vários sistemas de localização, tanto outdoor como indoor, foram sendo desenvolvidos com as mais variadas tecnologias e com os mais variados métodos à medida que o avanço científico e também tecnológico foi permitindo [1].

A tecnologia Wi-Fi foi, nos últimos anos, tornando-se cada vez mais interessante e importante devido principalmente à comodidade e conforto, aliada a uma grande facilidade de utilização, que esta permite no acesso à Internet. Hoje em dia, é possível encontrar Access

Points em praticamente todo o lado, nas nossas casas, no nosso local de trabalho ou nos mais

diversos espaços públicos e zonas urbanas. Contudo, tirar partido desta tecnologia para além desta variante e, no decorrer do que foi descrito no parágrafo anterior, o seu uso para efeitos de localização e posicionamento é também uma grande aposta [2]. É precisamente nessa linha de pensamento que é apresentado o presente projeto.

No seguimento da identificação da localização usando a tecnologia WLAN, vai ser assim implementado um sistema para monitorização da posição de enfermeiros ou médicos para ser usada numa clinica ou unidade hospitalar. As pessoas a serem monitorizadas serão assim portadoras de uma determinada tag da qual terão de se fazer acompanhar sempre, não tendo, para além disto, mais nada com que se preocupar, já que todo o sistema se encarregará de tudo o resto, sendo a qualquer altura possível monitorizar os dados relativos a cada portador.

(20)

2

Esta abordagem não é portanto nova, já que existem alguns estudos usando variadas metodologias, bem como algumas implementações de sistemas com a mesma finalidade e toda uma pesquisa nesta área irá ser realizada antes do início de qualquer desenvolvimento.

1.2.

Objetivos

Numa visão geral, o funcionamento do sistema será baseado na recolha de informações por parte de cada tag relativa às redes detetadas no seu raio de alcance e o envio destas para um servidor no qual estará a ser executado uma aplicação que irá receber todas estas informações e, de seguida, permitir a sua visualização, privilegiando sempre a fácil interpretação dos dados.

Olhando para todo o sistema a implementar é possível dividir o mesmo em duas partes distintas. A primeira das quais é relativa ao funcionamento da tag, isto é, como esta se vai comportar ao longo do tempo, como será feita a deteção das redes à sua volta, quando e como é feito o envio dos dados para a aplicação de monitorização, entre outros. A outra parte será então o desenvolvimento da aplicação de monitorização dessas mesmas tags, permitindo que, a qualquer altura, seja possível saber quais os valores enviados por cada uma delas. O projeto em questão assenta assim na implementação desta última parte, usando para isso o protocolo IEEE 802.11 como meio de comunicação entre as partes.

É importante neste caso definir “monitorização”, uma vez que o intuito do sistema a ser criado neste projeto é unicamente a visualização dos dados enviados por cada tag, isto é, valores relativos às informações captadas acerca de cada AP, assim como, informações acerca da tag que faz o envio. Desta forma, para que seja possível o uso desta informação para identificação da atual posição da pessoa no edifício, será necessário a criação de uma base de dados com as informações relativas ao local onde esta aplicação irá ser utilizada, ou seja, armazenar todos os dados relativos ao posicionamento de todos os APs espalhados por toda a área, bem como a informação relativa à força do sinal de cada rede criada em vários locais. Intercetando depois esta informação com os dados que serão constantemente enviados por cada uma das tags, será efetivamente possível a identificação da posição do seu portador.

1.3.

Motivação

A escolha do tema deste projeto baseou-se nos conhecimentos adquiridos pelo autor, não só durante todo o percurso académico realizado no curso de Engenharia Eletrónica Industrial e Computadores, bem como no período de Erasmus realizado na Alemanha no qual

(21)

3 o autor implementou a comunicação a usar por veículos espaciais, usando a tecnologia WLAN como protocolo.

Esta tecnologia, como já referi anteriormente, encontra-se muito em voga atualmente, numa sociedade cada vez mais voltada para o uso de dispositivos e aplicações que estão, cada vez mais, dependentes da Internet. Por esse mesmo motivo, o autor acredita que desenvolver conhecimento teórico e competências práticas nesta mesma área poderá ajudar a aumentar as probabilidades de entrada num mercado de trabalho que é cada vez mais competitivo.

Para além disso, este projeto foi desenvolvido em conjunto com outra pessoa promovendo assim o trabalho em equipa, competência muito valorizada nas empresas de hoje em dia. A comunicação entre os intervenientes no projeto foi essencial para o seu sucesso, já que foram sempre refletidas e discutidas todas as decisões que pudessem colocar em causa o trabalho do outro elemento.

1.4.

Organização da dissertação

A elaboração deste projeto assenta na metodologia “Waterfall Model” e, como tal, encontra-se dividido em quatro fases distintas: a análise do problema, o design, a implementação e os resultados obtidos. Assim sendo, está apresentado da seguinte forma:

- Como primeiro capítulo temos a introdução na qual é feito o enquadramento do projeto a desenvolver, bem como os objetivos a alcançar aquando do seu fim e explicitando também quais os motivos para a realização do mesmo.

- No capítulo seguinte, Estado da Arte, faz-se um estudo sobre o método de localização usando a tecnologia WLAN 802.11 fazendo, de seguida, um levantamento bibliográfica acerca das mais variadas implementações e abordagens já adotadas até ao momento, explicitando as suas principais características e opções.

- No terceiro capítulo (Análise do problema) está descrito o que vai ser feito no projeto, escolhendo a abordagem a utilizar e definindo claramente quais os requisitos e restrições a que este está sujeito.

- Em todo o quarto capítulo – o Design, é especificado como vai ser desenvolvido o projeto, descrevendo de forma detalhada quais os componentes que vão ser necessários, assim como as interações entre si e será nesta fase que todas as decisões serão tomadas com base no que foi definido no capítulo anterior.

- No quinto capítulo (Implementação) é descrito minuciosamente todo o processo de desenvolvimento do projeto.

(22)

4

- No capítulo dos Resultados Obtidos (sexto capítulo) é apresentado de uma forma clara quais os resultados que se obtiveram no final da implementação do sistema, ilustrados com figuras elucidativas abrangendo um variado leque de situações diferentes.

- Para finalizar, temos o capítulo da Conclusão no qual são referidas as conclusões obtidas do trabalho realizado, bem como as limitações que foram encontradas ao longo do mesmo. É também feita referência a um possível desenvolvimento para o trabalho realizada.

(23)

5

Capítulo 2

ESTADO DE ARTE

Este capítulo começa por abordar o Modelo OSI e as suas camadas, dando principal atenção ao protocolo a ser utilizado neste projeto – 802.11 Wi-Fi. São apresentados depois alguns métodos e abordagens escolhidas para efeitos de localização usando esta tecnologia, bem como exemplos de aplicações implementadas para monitorização de posicionamento.

2.1.

Modelo OSI

O modelo OSI é um modelo de referência da ISO (International Organization for

Standardization) cujo objetivo principal da sua criação foi definir formalmente uma

arquitetura padrão acabando assim com a interoperabilidade entre tecnologias, topologias e protocolos. Este modelo é composto, de uma visão geral, por 7 camadas as quais estão brevemente descritas na seguinte tabela [3].

Tabela 2-1 Diferentes camadas do modelo OSI

Camada Descrição

7 Aplicação Fornece serviços de rede para as aplicações 6

Apresentação Encarregue da encriptação e tradução dos dados assegurando a compatibilidade entre aplicações de sistemas diferentes

5

Sessão Controla o estabelecimento e gestão de sessões de comunicação entre as aplicações

4

Transporte Responsável pelo controlo do fluxo de informação e deteção de erros, assegurando a transferência de pacotes entre dois pontos 3

Rede Endereça os pacotes recebidos pela camada anterior ao longo de uma rede, convertendo endereços lógicos em físicos

2

Ligação de Dados Controla o acesso ao meio físico de transmissão empacotando os dados, bem como deteta possíveis erros da camada física

1

Física Define as características do meio físico (hardware) de transmissão entre a rede e os seus vários dispositivos

Todas estas camadas anteriormente explicitadas possuem vários tipos de protocolos diferentes operando em cada uma delas com especificações e características diferentes como é o exemplo da tecnologia 802.11 Wi-Fi ou do 802.3 Ethernet que são protocolos que atuam na camada de ligação de dados ou, por exemplo, o TCP e o UDP que atuam na camada de transporte.

(24)

6

2.1.1. 802.11 Wi-Fi

A tecnologia de transmissão de dados Wi-Fi ou WLAN (Wireless Local Area

Network) foi desenvolvida para permitir um acesso entre dispositivos numa rede,

independentemente da sua localização, utilizando ondas rádio em vez de uma estrutura baseada em cabos. O IEEE 802.11 foi assim o standard criado pelo IEEE (Institute of

Electrical and Electronics Engineers) para definir e regularizar todas as especificações e

características desta tecnologia [4].

De maneira a serem suportadas maiores velocidades de transmissão de dados e

throughput variadas versões foram desenvolvidas ao longo dos anos e, como tal, vários standards foram assim definidos.

Figura 2.1 Principais standards IEEE 802.11 existentes atualmente [5]

Como se pode verificar pela figura anterior, com a evolução da tecnologia, para além do aumento da velocidade, foi possível aumentar as bandas de frequência dos canais adicionando antenas MIMO (Multiple-Input Multiple-Output), tudo isto aliado a uma redução dos custos de produção por parte dos fabricantes [6].

Na arquitetura 802.11 WLAN estão definidos os seguintes termos:

 Estações – todos os dispositivos que se podem conectar a uma rede;

BSS (Basic Service Set) – conjunto de estações que podem comunicar entre si;

ESS (Extended Service Set) – conjunto de BSSs;

DS (Distribuiton System) – conecta Pontos de Acesso (APs) e tem que controlar as estações dentro de um ESS. Estes APs também são considerados estações, mas endereçáveis.

Na figura seguinte podem ser verificados todos estes termos, bem como todo o tipo de relações existentes entre eles.

(25)

7

Figura 2.2 Arquitetura das redes 802.11 WLAN

No caso em que uma BSS não tem uma estação que funcione como terminal especial, isto é, um Ponto de Acesso capaz de fazer de ponte entre esta rede e o exterior, então esta chama-se uma Independent BSS (IBSS), à qual nos referimos normalmente como Rede

Ad-Hoc, em que todas as estações possuem uma ligação peer-to-peer entre si.

Figura 2.3 Topologia de uma rede em modo Ad-Hoc

Se, por outro lado, for necessário comunicar com outra BSS, será necessário entrar no DS o que é conseguido através do uso de um AP, criando um Wireless DS (WDS). Com esta ligação, uma ESS é assim formada e é a partir da qual que é possível fazer a conexão a sistemas com fios como uma rede Ethernet ou a própria Internet. O AP tem assim um papel crucial neste tipo de arquitetura, uma vez que não só é o ponto de passagem obrigatório na comunicação entre todos os dispositivos, como também está encarregue de fazer toda a gestão da rede tendo importantes funções ao seu encargo como vai ser explicado de seguida [7].

(26)

8

Figura 2.4 Topologia de uma rede em modo Infraestrutura

Numa rede, um variado conjunto de serviços e funções tem de ser respeitado e efetuado estando estas associadas ao tipo de dispositivo que se trata e explicitadas na tabela seguinte [8], [9].

Tabela 2-2 Serviços de uma rede

Dispositivo Serviço Descrição

DS

Distribuição Encaminhar os pacotes recebidos até à estação de destino dos mesmos

Integração Entrega de dados a uma LAN IEEE 802 fora da rede wireless

Associação Serviços de gestão da mobilidade das estações entre BSSs e ESSs, tais como, definir ou alterar o AP e adicionar ou eliminar estações da rede Reassociação

Desassociação

Estação

Autenticação Série de testes para assegurar a autenticação das estações

Desautenticação

Privacidade

Conjunto de algoritmos de encriptação para proteger a WLAN de acessos externos como, por exemplo, WPA, WPA2 WEP

Entrega no MSDU (MAC Service Data

Unit)

Encarregue de assegurar que a informação da MAC Service Data Unit é entregue entre os seus vários pontos.

(27)

9 No modelo OSI, o Wi-Fi foca-se nas duas camadas inferiores, a camada física e a camada de ligação de dados, sendo cada uma delas, para esta tecnologia, divididas em duas subcamadas com funções diferentes.

Figura 2.5 Tecnologia 802.11 WLAN no Modelo OSI [4]

No que toca à camada física, o standard 802.11 atua principalmente nas frequências 2.4 e 5Ghz e foi desenhado para ser suficientemente robusto contra interferências de outras frequências e para manter altas velocidades de transmissão de dados, bem como a segurança dos mesmos.

Inicialmente, foram adotadas algumas técnicas de modulação como infravermelho, FHHS (Frequency Hopping Spread Spectrum Technique) ou DSSS (Direct Sequence Spread

Spectrum Technique), mas uma vez que estas eram incapazes de atingir velocidades de

transmissão acima de 2Mbps outras técnicas foram desenvolvidas como:

CCK (Complementary Code keying) com técnica de modulação dos dados (capaz de transmissões até cerca de 11Mbps);

OFDM (Orthogonal Frequency-Division Multiplexing) e MIMO-OFDM

(28)

10

Todos estes avanços e modificações sobre a camada física do 802.11 foram responsáveis por, como já foi referido, a criação de vários standards para o Wi-Fi, alguns dos quais podem ser verificados na figura a seguir.

Figura 2.6 Evolução dos standards para a tecnologia 802.11 com as várias técnicas de modulação usadas

Como foi referida anteriormente, esta camada pode ser dividida em duas subcamadas com funções diferentes sendo estas [6]:

Physical Medium Dependant (PMD) que está encarregue por fazer a desmodulação dos pacotes recebidos no canal de rádio e a modulação dos pacotes a serem enviados para o mesmo segundo as ordens recebidas por parte da subcamada superior (PLCP);

Physical Layer Convergence Procedure (PLCP) que tem a função de analisar os pacotes recebidos pela camada superior (camada de ligação de dados) e preparara-los para serem enviados para o canal de rádio.

A camada de ligação de dados é, por outro lado, responsável por dotar o protocolo das funcionalidades e procedimentos necessários para a transferência dos dados ao longo de uma rede através da transmissão dos pacotes de forma sincronizada, fazendo o controlo do fluxo, a gestão dos acessos à rede e a deteção de possíveis erros [3], [8]. Do ponto de vista estrutural, esta responde aos serviços requisitados pela camada de rede e resolve o que lhe é solicitado pela camada física.

(29)

11 Também esta camada pode assim ser dividida em subcamadas com funções distintas sendo estas a subcamada MAC (Media Access Control) e a LLC (Logical Link Control). A primeira é responsável por fazer o endereçamento dos dispositivos numa rede, bem como o controlo do seu acesso à mesma, estando assim encarregue de, por meio de variados métodos e funções, assegurar o correto funcionamento de uma rede. Os principais métodos usados por esta subcamada são os seguintes [11] [12]:

DCF (Distributed Coordination Function) que é caracterizado por ser um protocolo de múltiplo acesso em que todas as estações se comportam da mesma maneira, isto é, usando o método CSMA/CA (Carrier Sense Multiple Access with Collision

Avoidance) que consiste em primeiro verificar se o canal se encontra livre e, apenas

depois e em caso afirmativo, a transmissão é iniciada.

PCF (Point Coordination Function) que é uma técnica que centraliza o controlo do acesso ao meio num determinado ponto – um Access Point, que vai fazendo polling entre os dispositivos para determinar quando estes podem começar uma transmissão, estando estas sempre dependentes do AP para assim transmitir ou receber pacotes.

Para interagir com a camada de rede, a subcamada LLC da camada de ligação de dados fica encarregue de fazer o controlo de erros e o controlo de fluxo. Para esta função é usado o protocolo 802.2 que inclui implementações tanto para conexões com fios como comunicações wireless.

2.1.2. Internet Protocol (IP)

O Protocolo de Internet (IP) é um protocolo da camada de rede usado para endereçamento e controlo dos dados que permite que os pacotes sejam encaminhados ao longo de uma rede. Esta camada é considerada a backbone do modelo OSI uma vez que faz a gestão e escolhe o melhor caminho lógico para os pacotes entre duas máquinas numa rede.

Em contraste com a camada de ligação de dados, que apenas lida com as máquinas que estão na mesma rede, esta camada é a mais “baixa” no modelo OSI responsável por transferir os dados de uma máquina para outra, mesmo que não estejam na mesma rede, sendo os dados transferidos na forma de pacotes ao longo de caminhos lógicos até ao seu destino. Esta camada fica então encarregue do:

 Endereçamento lógico – todos os dispositivos numa rede têm um endereço lógico, que é independente do hardware e tem obrigatoriamente de ser único dentro de uma rede;

(30)

12

 Encapsulamento – encapsular as mensagens recebidas de camadas superiores formando, com estas, pacotes com o header relativo à camada de rede.

Routing – serviços encarregues por enviar os mesmos pacotes para o seu dispositivo de destino.

 Desencapsulamento – Examinação por parte do dispositivo de destino para verificar se o pacote foi mesmo endereçado a este dispositivo, fazendo de seguida o desencapsulamento do pacote.

Neste modelo, a camada de rede responde assim aos pedidos por parte da camada de transporte e obedece aos que vêm da camada de ligação de dados [6], [8].

O IP é caracterizado essencialmente por ser connectionless, ou seja, nenhuma conexão é estabelecida antes do envio dos pacotes, não requerendo qualquer mecanismo de controlo de conexão; unreliable, no sentido em que o protocolo não tem a capacidade de gerir ou recuperar eventuais pacotes perdidos uma vez que isto é assegurado por outras camadas e, por último, independente do tipo de meio que utiliza, o que significa que cada pacote pode ser enviado através de uma cabo coaxial, fibra ótica ou por ondas rádio.

Este é protocolo da camada de rede mais usado em todo o mundo e é quase sempre usado em conjunto com o TCP ou com o UDP (protocolos da camada superior) e pode correr “em cima” ligações de dados como o Ethernet ou o Wi-Fi (protocolo da camada inferior).

Os dados quando organizados em pacotes são constituídos por:

Um header (que especifica): o O endereço da fonte; o O endereço de destino;

o Outras informações sobre os dados.

 A mensagem a enviar.

A versão de IP mais utilizada nos dias de hoje é o IPv4, contudo, o seu sucessor, IPv6 já é também suportado e usado atualmente. A necessidade do surgimento de uma nova versão prendeu-se com o, há muito antecipado, problema do exaustão de endereços, uma vez que a quantidade de endereços diferentes que existem no IPv4 é limitada [13]. Desta forma, o IPv6 foi desenvolvido de forma a aumentar este número de endereços diferentes possível e, para além disso, simplificar alguns aspetos na atribuição de endereços às máquinas numa rede e no processamento dos pacotes pelos routers devido a uma nova especificação do seu formato.

(31)

13

2.2.

Sistemas de Localização

Muitos sistemas para determinar a posição ou um percurso feito por um utilizador foram propostos e desenvolvidos ao longo dos anos permitindo o avanço em variadas áreas de ciência e tecnologia. Estes serviços de localização - LBS (Location Based Services) podem ser classificados em duas formas distintas se tivermos em conta o local no qual vão ser postos em funcionamento, sendo alguns para localização outdoor, enquanto outros foram pensados e criados com o intuito de uma localização indoor.

Para ambientes exteriores, um Global Navigation Satellite System (GNSS) como o GPS é o ideal uma vez que consiste na comunicação com vários satélites através do envio e receção de sinais de rádio, envolvendo um processo de triangulação usando estes mesmos, de maneira a determinar a posições absolutas com uma precisão de aproximadamente 10 metros. [14], [15] Contudo, este método não é adequado para efeitos de localização indoor, já que os sinais não conseguem penetrar nas paredes dos edifícios, estando assim limitado em termos de cobertura, já que a instalação de infraestruturas no interior dos edifícios unicamente para este propósito seria de elevado custo financeiro e, como tal, não justificável.

Ainda no capítulo de ambientes exteriores, têm vindo a ser propostas nos últimos anos LBSs para grandes e amplas áreas baseadas na rede dos telemóveis. O método por detrás destes sistemas tecnológicos assenta na medição da intensidade do sinal em conjunto com o seu angulo de chegada e/ou da diferença de tempo de chegada. No entanto, em locais muito grandes este método é bastante limitado e, tal como o GPS, não pode ser utilizado para localização indoor devido aos fenómenos de reflexão sofridos pelos sinais de rádio frequência (RF) [16].

No que toca a espaços interiores são diversas as tecnologias que têm vindo a surgir; desde sistemas recorrendo ao uso de raios infravermelhos (IR) [17], de sinais rádio [18] e até ultrassons [19]. Focando a nossa importância nos sistemas baseadas em ondas rádio, tecnologias como o RFID ou o WLAN (Wi-Fi) são bastante utilizadas atualmente para efeitos de tracking [20], [21]. A primeira é caracterizada por ser um sistema baseado no Received

Signal Strength Indication (RSSI) que é a força presente num sinal de rádio recebido por um

recetor RFID para determinar a localização de um determinado objeto ou corpo portador de uma tag. Esta é assim uma tecnologia non-contact e de identificação automática cujos benefícios levaram a várias pesquisas e estudos, tendo por exemplo, Fu, A. & Retscher, G.,

(32)

14

(2009) introduzido três métodos para localização de objetos. (namely cell‐based positioning,

trilateration, and location fingerprinting) [1].

A tecnologia Wi-Fi permite, por outro lado, implementar um LBS com menos esforço, uma vez que o hardware necessário para possibilitar esta abordagem já se encontra disponível no local. Obviamente que o Wi-Fi não foi pensado e desenhado para ser usado com o propósito de servir de mecanismo de localização, não obstante, através da força de sinal – SS (Signal Strengh) emitida pelos APs espalhados num determinado local, é de facto possível estimar localizações [22].

2.2.1. Métodos de Localização indoor usando redes Wi-Fi

De maneira a aproveitar esta informação relativa às ondas que se propagam no ar, existem basicamente dois métodos diferentes. Um deles baseia-se no modelo de propagação das mesmas e na geometria do local para converter o SS numa medida de distância, sabendo de antemão as coordenadas de cada AP, usando assim um algoritmo de triangulação para identificar a posição aproximada. O outro, por outro lado, consiste na criação de uma

fingerprint do local, que não é mais do que uma espécie de base de dados com informações do

valor do RSSI das redes em determinados pontos estratégicos espalhados pela superfície a monitorizar que depois serão usados para comparar com os valores obtidos pelo objeto que queremos localizar [22], [23].

Recorrendo ao primeiro método - trilateration, pelo que foi possível constatar através de experiências anteriores, quando apostando numa abordagem com o uso de regressões polinomiais para determinar a relação matemática entre o RSSI e a distância, foram obtidos resultados onde alguns fatores afetaram significativamente a precisão do algoritmo [24], [25], [26]. Isto deve-se à existência de fenómenos de refração e reflexão na propagação das ondas rádio que, no interior dos edifícios, tomam comportamentos bastante imprevisíveis. Esta é afetada pela pelas paredes ou pela mobília, pela qualidade dos materiais e ainda pelo simples movimento das pessoas o que leva a que esta propagação sofra de connectivity of line-of-sight (LOS), Non-line-of-sight (NLOS) e shadow fading [27].

Contudo, uma abordagem feita posteriormente baseada em duas técnicas -

regression-based e correlation-regression-based, apostando numa regressão linear para descobrir a relação entre o

RSSI e a distância até ao respetivo AP, foi posta em prática tendo os resultados demonstrado que, quer usando 802.11 (Wi-Fi) ou 802.15.4 (Zig-Bee) esta abordagem é capaz de aumentar

(33)

15 a precisão deste método, tornando-o desta feita um técnica de certa forma praticável para localização indoor [28].

O segundo método – fingerprinting já foi aceite como um método efetivo para localização indoor usando WLAN uma vez que ter já demonstrado performances muito promissoras [29], [30]. Este método pode ser descrito como um processo de duas etapas, na qual na primeira fase, chamada de “offline phase” ou “training phase”, é realizado o radio

map que é a criação de uma base de dados com valores de RSSI relativos aos pontos de

acesso que se encontram detetáveis nessa mesma área. Esta fase é assim feita apenas uma vez para cada edifício e o mais importante a fazer aqui será a escolha dos pontos de referência (RP) na área a monitorizar nos quais vão ser verificados os valores de RSSI. Na segunda fase – “online phase” ou “positioning phase” são utilizados os valores de calibração obtidos na fase anterior para estimar a localização mais provável da tag, usando para tal um algoritmo de pesquisa e comparação. Todo este método pode ser descrito pela seguinte figura, onde MU significa Mobile User [2], [22].

Figura 2.7 As duas fases do método fingerprinting: (a) offline phase, (b) online phase

É no algoritmo escolhido para obter a posição mais provável que se encontra a chave para o sucesso ou não deste método. Duas são as abordagens possíveis neste campo, isto é, existe o método determinístico e o método probabilístico, sendo ambos definidos como algoritmos de localização estática.

O primeiro é o mais simples, sendo a localização final atribuída às coordenadas da

fingerprint cuja distância ao valor relativo ao MU é menor. Esta abordagem foi pela primeira

vez usada por Bahl e Padmanabhan em 2000 [29] naquele que é o primeiro sistema baseado em WLAN para localização de utilizadores dentro de um edifício – RADAR, tornando-se no

(34)

16

principal trabalho de fingerprinting alguma vez desenvolvido, cobrindo todos as aproximações determinísticas possíveis. Consistia em três computadores Pentium funcionando como APs instalados num edifício e um portátil funcionando como MU. Na obtenção da posição usando esta aproximação, foram feitos vários avanços com os mais diversos métodos a surgirem de melhorias feitas sobre estratégias anteriores, existindo métodos como o K-nearest neighbor (KNN) ou o Weighted K-nearest neighbor (WKNN) que foram desenvolvidos baseados no método nearest neighbor (NN) usado por Bahl e Padmanabhan [22].

Esta abordagem determinística, porém, não explorava todas as potencialidades que os valores colecionados para a criação do radio map poderiam oferecer e, para isso mesmo, uma outra abordagem foi pensada e implementada [31]. Assim, de uma forma resumida, são escolhidos alguns RP cujos valores estejam mais próximos dos valores do MU e, baseado nestes, vai ser estimada uma posição sendo vários os métodos desenvolvidos como o

Histogram e o Histogram comparison, o Kernel ou Gaussian que usavam diferentes

abordagens [32]. Como se previa, depois de elaborados vários testes, escolhendo os melhores parâmetros a usar por cada um dos métodos testados foi possível verificar que estes últimos conseguem de facto atingir resultados melhores comparativamente com os métodos determinísticos.

Contudo, melhores resultados poderiam ainda ser obtidos e, não contentes com as abordagens escolhidas e os vários métodos desenvolvidos, foram criados filtros que de uma forma totalmente computacional melhoram a eficiência das estimativas criadas [32], [33]. Foram assim desenvolvidos o filtro de Bayesian usando um gráfico de modelo de estados e o filtro de Kalman com dois modelos de estados, o estacionário e modelo de estados de velocidade constante que se mostraram mais precisos do que os algoritmos de localização, tendo o Position Kalman Filter (PKF) (modelo estacionário) obtido melhores performances que o filtro de Bayesian.

Em todos os testes e estudos realizados foi concluído que o planeamento e criação do

radio map tem uma importância muito elevada no sucesso da técnica de fingerprinting já que

todos os cálculos ou estimativas realizadas pelos mais variados métodos estão dependentes de uma boa escolha e distribuição dos RP e não existe propriamente um modelo a seguir aquando da offline phase, já que muitos fatores têm de ser equacionados como paredes, portas ou escadas.

(35)

17 Por ultimo, e em jeito de resumo, ambos os métodos (fingerprinting e trilateration) usam wireless signal strength para determinar a localização, mas de formas diferentes. No primeiro é necessário uma base de dados detalhada das forças de sinais relativas a cada RP para que possam ser comparadas com a força de sinal do objeto ou pessoa a localizar. Todavia, este pode-se tornar um processo moroso e altamente desgastante, levando a que muito tempo seja perdido na primeira fase e, uma vez que a sua precisão aumenta com a quantidade de RF definidos, em espaços muito grandes e com vários APs este processo pode até se tornar impraticável, existindo portanto um tradeoff entre precisão e performance.

O método de trilateration é uma técnica mais flexível já que o sistema calcula a posição em tempo real estando o sistema mais adaptado a mudanças ambientais do local a monitorizar que o método anterior. No entanto, no mundo real este processo não é assim tão preciso uma vez que as ondas rádio sofrem vários fenómenos que alteram a sua propagação de uma maneira imprevisível. Neste sentido, o fingerprinting já considera estas alterações e estas atenuações através da criação de uma base de dados, o que, para efeitos práticos, leva a uma maior precisão na obtenção da localização.

2.3.

Aplicações de Monitorização de redes Wi-Fi

Muitas são já as aplicações desenvolvidas até à data para análise e monitorização de redes Wi-Fi existentes no mercado e para as mais variadas plataformas, desde aplicações móveis, como Android ou iOS a aplicações para desktop como, por exemplo, Windows, Linux ou MAC OS.

No seguimento deste projeto e considerando que o seu objetivo será o desenvolvimento de uma aplicação gráfica com este mesmo propósito foi assim efetuada uma pesquisa das aplicações já desenvolvidas com o principal objetivo de saber quais as suas principais características e funcionalidades, bem como o seu interface gráfico e opções disponíveis.

Algumas são gratuitas enquanto outras não, mas quase todas elas acabam por fazer basicamente o mesmo e, por isso mesmo, serão apresentadas somente aplicações com interfaces diferentes ou que possuam alguma funcionalidade extra em relação às outras.

Para começar temos a InSSIDer 4 que é uma grande ferramenta utilizada para detetar as redes Wi-Fi que se encontram no alcance de um computador, assim como algumas outras características de cada uma delas. Esta possui assim suporte para ambos Windows e MAC OS e, para cada rede, é capaz de detetar o endereço MAC do router em questão, o fabricante do

(36)

18

mesmo, o canal que está ser utilizado, o nome público da rede (SSID), o tipo de segurança, a força de sinal (RSSI) entre outros.

Figura 2.8 InSSIDer 4 para Windows

Com a possibilidade de verificar o canal em que cada rede detetada opera, esta aplicação permite, em caso de deteção de problemas no sinal ou na comunicação, identificar se existe algum tipo de conflito de redes a usar o mesmo canal. Por outro lado, permite ainda verificar a força do sinal de uma determinada rede num determinado local, ou seja, com esta aplicação conseguimos ter ideia de qual a cobertura da rede, permitindo assim identificar “zonas mortas”, ou seja, zonas sem cobertura [34], [35].

Com as mesmas características da aplicação anterior existe também o WiFi Explorer que faz a listagem das redes encontradas com os mais variados atributos já explicitados, detetando ainda as redes usando 802.11a/b/g/n/ac, com frequências na banda de 2.4 e 5Ghz, bem como canais em 20, 40 80 e 160 MHz. De salientar que esta aplicação apenas se encontra disponível para MAC OS.

(37)

19

Figura 2.9 WiFi Explorer a monitorizar apenas os canais das redes em 5GHz

Como se pode ver pela figura apresentada, para além disso e, comparativamente com o

software anterior, este é capaz de não só mostrar o gráfico com todas as redes e a força do seu

respetivo sinal, como também um gráfico apenas com os canais usados pelas redes tanto em 2.4GHz ou em 5GHz [36].

Um outro programa para fazer o sniffing de redes Wi-Fi é o WiFi Inspector da Xirrus que é característico por ter um radar com a localização dos APs por si encontrados, isto claro, em conjunto com todas as características de cada rede. Para além disso, dispõe ainda de um outro painel que mostra informações acerca da rede à qual o computador está ligado, tais como, o IP interno, o IP externo, o DNS, o gateway e alguns mais.

(38)

20

Figura 2.10 Exemplo do interface da aplicação WiFi Inspector da Xirrus

Contudo, se quisermos uma informação mais detalhada acerca da rede nomeadamente ao nível da força do sinal, esta não será a melhor opção. Este programa assenta sim os seus principais armas na simplicidade e no layout de fácil utilização, bem como o bastante atrativo radar que possui calculando até a distância física entre o computador e os APs neste representados [37], [38].

NetSpot é uma ferramenta disponível para MAC OS bastante útil já que permite

captar, visualizar e analisar dados sobre Wi-Fi. Esta permite visualizar uma rede sem fios construindo, para isso, um mapa da cobertura Wi-Fi da mesma, permitindo que sejam identificadas as “zonas mortas” e, desta forma, permitir simular e escolher a melhor posição para colocar um AP.

Apenas com alguns cliques é possível criar um mapa com a área que queremos analisar, indicar a posição em que nos encontramos na sala e, com base nisto, a aplicação imediatamente começa a captar informação como a força dos sinais, possíveis fontes de ruído e as localizações efetivas dos APs detetados.

(39)

21

Figura 2.11 Usando o NetSpot para verificar a cobertura WiFi num determinado local

Assim sendo, o NetSpot é utilizado com um intuito diferente, ou seja, não apenas para monitorização das redes circundantes, mas mais com o objetivo de ajudar na escolha da melhor distribuição de APs numa certa área ou superfície, bem como a melhor combinação de canais a usar por parte de cada um [39].

Com este mesmo objetivo em mente, a empresa de tecnologia WiFi Xirrus, com um

software já apresentado nesta dissertação, possuí uma outra - WiFi Designer, muito útil para

design e planeamento de redes Wi-Fi [40], [41].

Foi feita uma pesquisa sobre muitos outros programas e softwares de monitorização e análise de redes, mas todos eles com as mesmas características, tendo, por isso mesmo, sido realçados e abordados apenas os cinco anteriores.

(40)
(41)

23

Capítulo 3

ANÁLISE DO SISTEMA

Neste terceiro capítulo faz-se uma análise geral do sistema, com a finalidade de definir qual a melhor metodologia a usar na elaboração deste projeto. Desta forma, vai-se, nesta fase, definir quais as restrições a que o sistema vai ter que obedecer e quais os requisitos que vai ter que cumprir, assim como especificar qual a abordagem a seguir ao longo do desenvolvimento do mesmo.

3.1.

Requisitos do Sistema

O projeto a elaborar vai ter que respeitar dois tipos de requisitos podendo estes ser divididos em duas categorias. Assim sendo, uma delas é composta pelos requisitos denominados funcionais, isto é, funcionalidades que o sistema vai ter que possuir e a outra composta pelos requisitos não funcionais que, conforme o nome refere, são requisitos que não acrescentam ao sistema nenhuma função adicional.

3.1.1. Requisitos Funcionais

No que toca às funcionalidades detalhadas do interface gráfico a desenvolver este deve ser capaz de permitir ao utilizador:

Permitir adicionar novas Wi-Fi tags à aplicação;

Permitir eliminar Wi-Fi tags existentes na aplicação;

Receber os dados enviados por todas as Wi-Fi tags;

 Interpretar as mensagens recebidas usando o formato JSON;

Permitir a monitorização de cada Wi-Fi tag existente na aplicação.

Para a biblioteca a ser desenvolvida para o interface entre a placa de desenvolvimento e o acelerómetro escolhidos, terão de ser implementadas APIs para inicialização e configuração do dispositivo com possibilidade de alteração de todos os parâmetros existentes.

No que toca ao hardware a ser desenvolvido para permitir a realização deste projeto, nomeadamente uma shield na qual a placa a WiFi DipCortex vai ser acoplada, existem também alguns requisitos a serem respeitados dos quais:

(42)

24

 Ser compatível com a placa de desenvolvimento imposta nas restrições que se apresentam a seguir, isto é, a shield terá de possuir conectores que permitam o seu encaixe;

A inclusão de um acelerómetro na shield a ser desenhada para que, com este, seja possível detetar o movimento da tag, que vai estar acoplada a esta;

Ser portátil, isto é, ter uma bateria ou pilha a alimentar a tag, não ficando esta dependente de uma fonte de energia fixa.

3.1.2. Requisitos Não-Funcionais

Para além dos requisitos já descritos existem então os requisitos não funcionais que para este sistema se baseiam basicamente no aspeto visual do interface gráfico. Ou seja, este requisito prende-se com a criação de um ambiente que seja intuitivo e de fácil compreensão para o utilizador facilitando assim o seu uso, ou seja, user-friendly.

3.2.

Restrições Técnicas do Sistema

No que diz respeito à parte técnica do projeto estão já definidos algumas restrições no que toca tanto a hardware como a software.

A placa de desenvolvimento está já definida sendo esta a WiFi DipCortex, comercializada pela SolderSplah Labs e que consiste numa simples, mas poderosa placa de desenvolvimento para as mais variadas soluções com recurso à tecnologia Wi-Fi.

Para além disso e como restrição de software, a plataforma de desenvolvimento de aplicações baseados em microcontroladores ARM – mbed, terá de ser utilizada no desenvolvimento das bibliotecas a serem implementadas para o interface de comunicação com o acelerómetro, uma vez que esta já possui um vasto leque de plataformas de hardware às quais dá suporte, estando incluída a WiFi DipCortex.

Existe ainda uma última exigência acerca do formato a ser usado na comunicação com o interface gráfico, tendo estes de estar formatados com o formato JSON.

(43)

25

3.3.

Comportamento e Visão do Sistema

Nos seguintes diagramas vai-se demonstrar de uma forma mais explícita a interação entre o utilizador e o ambiente que vamos desenvolver, bem como fazer uma visão geral acerca de todo o sistema a ser desenvolvido.

Na figura seguinte pode-se verificar quais as possibilidades de eventos que um utilizador pode realizar na interação com o Graphical User Interface a desenvolver.

Figura 3.1 Diagrama de Casos de Uso do Sistema

Como se pode constatar, o diagrama apresentado espelha os requisitos previamente definidos, representando todos os meios de relação do usuário com a aplicação. Assim sendo, as funcionalidades à sua disposição serão adicionar novas Wi-Fi tags, remover Wi-Fi tags existentes e monitorizar uma determinada Wi-Fi tag existente na aplicação.

Já na figura que se segue estão definidos os estados em que o sistema se pode encontrar a cada momento, bem como quais as possíveis sequências de transição entre os mesmos. Como se pode verificar pelo diagrama, estão presentes os três interações definidas previamente partindo todas estas de um estado idle. Significa isto que apenas uma delas poderá ser executada de cada vez. No caso particular do estado de monitorização de uma tag, só é possível voltar ao estado inicial se for feita o stop do respetiva monitorização, evitando assim problemas como, o remover do sistema uma tag que pudesse eventualmente estar a ser monitorizada.

(44)

26

Figura 3.2 Diagrama de Estados do Sistema

Por último, uma possível visão geral do sistema é apresentada. Nesta podemos identificar as várias Wi-Fi tags espalhadas aleatoriamente numa determinada área. Da mesma forma, por toda esta área estão distribuídos diversos Access Points de maneira a que todo o perímetro seja igualmente coberto. A aplicação a ser desenvolvida vai estar a correr num servidor colocado algures dentro da área envolvente, servidor este que vai estar sempre operacional e a receber mensagens de qualquer uma das tags.

(45)

27

Capítulo 4

DESIGN DO SISTEMA

Na fase de design vai-se analisar mais pormenorizadamente o modo como o sistema irá incorporar os requisitos impostos na fase da análise, tendo sempre em atenção as restrições impostas. Ter-se-á em consideração os componentes de hardware utilizados no sistema, as ferramentas de software e as respetivas interfaces. Será também descrito o sistema na sua totalidade incorporando o conjunto de ferramentas e componentes utilizados.

4.1.

Especificação do Hardware

No que toca ao hardware a ser utilizado este vai estar dividido em duas partes específicas em que uma delas é a placa de desenvolvimento WiFi DipCortex a utilizar e que foi comprada na SolderSplash Labs e a outra será uma shield a ser desenhada e impressa como tarefa deste projeto, sendo que esta vai ser constituída por vários módulos diferentes, alguns necessários para que o cumprimento dos requisitos possa ser respeitado, enquanto outros apenas para efeitos de debug.

4.1.1. WiFi DipCortex

Como já foi referido anteriormente, uma das restrições do projeto prende-se então com o uso desta mesma placa – a WiFi DipCortex, que se trata de uma placa de desenvolvimento que possibilita a criação de aplicações usando, entre outros, a tecnologia Wi-Fi [42].

Figura 4.1 Placa de desenvolvimento WiFi DipCortex

A WiFi DipCortex é constituída por um microcontrolador de arquitetura ARM da NXP e um módulo de IEEE 802.11b/g, o CC3000MOD da Texas Instruments. Esta foi desenhada

(46)

28

numa placa com encapsulamento 40pin DIP e foi desenvolvida para ser utilizada em projetos de sistemas embebidos low power, permitindo conectar qualquer tipo de sensores ou atuadores.

Na figura seguinte é apresentado o seu pinout com as especificações de cada GPIO.

Figura 4.2 Pinout da placa de desenvolvimento WiFi DipCortex

Para fazer o update do código para a placa, basta simplesmente premir o botão de reset e depois conectar a mesma na porta USB e, de imediato, esta vai ser detetada e identificada como um removable disk, sendo depois apenas necessário copiar o novo ficheiro binário gerado pelo código desenvolvido. Depois, basta desconectar a placa e voltar a conectar a mesma, mas desta vez sem o botão de reset premido e o ficheiro binário carregado será executado de imediato.

Na tabela seguinte estão agora especificadas algumas das características de cada um dos componentes constituintes da WiFi DipCortex.

(47)

29

Tabela 4-1 Características dos módulos constituintes da placa de desenvolvimento WiFi DipCortex

LPC1347 ARM Cortex M3 TI SimpleLink CC3000MOD

Até 72MHz Clock

64kB Flash

 12kB SRAM

4kB Eeprom

12bit ADC – 7 Canais

USB 2 Full Speed – Com USB stack na ROM

 UART

2C Bus

SPI Bus

 802.11b/g 2.4GHz

 WEP, WPA e WPA2

 Certificado FCC, IC & ETSI

Open source TI control stack

Configuração para Smartphone

Embedded IPv4 Stack

Low power shutdown

Definição de perfis, permitindo o fast

connection a APs gravados

DNS & mDNS built in

4.1.2. Shield

Para o projeto em questão há então a necessidade do desenho de uma placa - uma

shield, na qual todos os outros elementos da tag final vão estar impressos e contendo ainda o

lugar para encaixar a WiFi DipCortex, tendo sempre em atenção que o tamanho total desta deve ser o menor possível já que a tag deverá ser o mais portátil possível.

4.1.2.1. Acelerómetro LIS331DLH

Um dos requisitos impostos no que toca a componentes de hardware prende-se com o uso de um acelerómetro ligado à placa de desenvolvimento, cuja função será a de avisar a mesma da ocorrência de um movimento.

Tendo em conta as características e a finalidade final da tag, o acelerómetro escolhido foi o LIS331DH da Texas Instruments por ser um acelerómetro ultra low power, de alta performance, com 3 eixos com diferentes modos para poupança de energia, com 2 interrupções independentes geradas quer por free-fall1, wake-up2 ou por deteção de

movimento 6D e, por último, por ter interface de comunicação por SPI e I2C [43].

Para além das características que levaram à escolha deste acelerómetro, estas são as suas principais especificações:

1 Quando a aceleração em todos os eixos se aproxima de zero. Em casos reais, esta é a definida como

zero-g level na qual nenhuma aceleração é capaz de gerar uma interrupção.

2 Refere-se a um valor definido no registo INTx_CTRL que permite definir um valor de threshold

(48)

30

 Tensão de entrada entre 2.16 V e 3.6 V

 Compatível com I/Os de baixa voltagem, até 1.8 V

Modo de consumo ultra low-power até 10 μA

 Medição da aceleração em ±2g/±4g/±8g

Saída de dados de 16bit

10000g high shock survivability

4.1.2.2. Regulador de tensão (LDO)

Para além do acelerómetro, um outro requisito assentava em tornar a tag portátil e, como tal, esta teria se der alimentada por uma pilha ou bateria. Assim sendo, foi escolhida uma bateria de lítio de 3 volts (em forma de moeda) para alimentar a placa já que esta é relativamente leve e de pequenas dimensões. Contudo e tendo em conta que a WiFi DipCortex terá de ser alimentada com 5 volts, será necessário elevar a tensão da bateria e regular a mesma para um valor constante.

Para isso foi usado o circuito integrado TPS63060 da Texas Instruments que é um conversor buck-boost muito utilizado já que fornece uma solução muito eficiente para conversão de tensões. Desta feita, recorrendo ao seu datasheet [44], vai ser utilizado um circuito neste apresentado que permitirá converter uma tensão de entrada de valores entre 2.5 e 12 volts numa tensão de saída constante de 5 volts.

4.2.

Especificações de Software

Neste subcapítulo vai-se abordar, de uma forma detalhada, as diversas ferramentas e linguagens de software, bem como protocolos e conceitos que irão ser necessárias recorrer à medida que se desenvolve o sistema. Serão descritas quais os propósitos que fizeram com que fosse essencial a sua inclusão tendo em conta o contexto do problema.

4.2.1. Interface Gráfico

Para a implementação do interface gráfico a desenvolver várias decisões têm de ser tomadas de maneira a que os requisitos do projeto sejam atingidos sendo todas elas devidamente justificas de seguida.

Imagem

Figura 2.2 Arquitetura das redes 802.11 WLAN
Figura 2.4 Topologia de uma rede em modo Infraestrutura
Figura 2.6 Evolução dos standards para a tecnologia 802.11 com as várias técnicas de modulação usadas
Figura 2.9 WiFi Explorer a monitorizar apenas os canais das redes em 5GHz
+7

Referências

Documentos relacionados

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

A assistência da equipe de enfermagem para a pessoa portadora de Diabetes Mellitus deve ser desenvolvida para um processo de educação em saúde que contribua para que a

Para analisar as Componentes de Gestão foram utilizadas questões referentes à forma como o visitante considera as condições da ilha no momento da realização do

For additional support to design options the structural analysis of the Vila Fria bridge was carried out using a 3D structural numerical model using the finite element method by

Este trabalho busca reconhecer as fragilidades e potencialidades do uso de produtos de sensoriamento remoto derivados do Satélite de Recursos Terrestres Sino-Brasileiro

ed è una delle cause della permanente ostilità contro il potere da parte dell’opinione pubblica. 2) Oggi non basta più il semplice decentramento amministrativo.

29 Table 3 – Ability of the Berg Balance Scale (BBS), Balance Evaluation Systems Test (BESTest), Mini-BESTest and Brief-BESTest 586. to identify fall

Este estudo tem por objetivo determinar até que ponto os acontecimentos da vida são entendidos como indutores de stress e os níveis de burnout e de satisfação com