Universidade Estadual de Campinas Instituto de Computação
INSTITUTO DE COMPUTAÇÃO
Felipe Lima Morais
Captura de contexto com o
smartphone utilizando
redes sem fio
CAMPINAS
2019
Felipe Lima Morais
Captura de contexto com o smartphone utilizando redes sem fio
Dissertação apresentada ao Instituto de Computação da Universidade Estadual de Campinas como parte dos requisitos para a obtenção do título de Mestre em Ciência da Computação.
Orientador: Prof. Dr. Juliana Freitag Borin
Este exemplar corresponde à versão final da Dissertação defendida por Felipe Lima Morais e orientada pelo Prof. Dr. Juliana Freitag Borin.
CAMPINAS
2019
Ficha catalográfica
Universidade Estadual de Campinas
Biblioteca do Instituto de Matemática, Estatística e Computação Científica Ana Regina Machado - CRB 8/5467
Morais, Felipe Lima,
M792c MorCaptura de contexto com o Smartphone utilizando redes sem fio / Felipe Lima Morais. – Campinas, SP : [s.n.], 2019.
MorOrientador: Juliana Freitag Borin.
MorDissertação (mestrado) – Universidade Estadual de Campinas, Instituto de Computação.
Mor1. Smartphones. 2. Sensores inteligentes. 3. Interação humano-máquina. I. Borin, Juliana Freitag, 1978-. II. Universidade Estadual de Campinas. Instituto de Computação. III. Título.
Informações para Biblioteca Digital
Título em outro idioma: Context capture with the Smartphone using wireless networks Palavras-chave em inglês:
Smartphones Intelligent sensors
Human-machine interaction
Área de concentração: Ciência da Computação Titulação: Mestre em Ciência da Computação Banca examinadora:
Juliana Freitag Borin [Orientador] Jó Ueyama
Sandro Rigo
Data de defesa: 22-11-2019
Programa de Pós-Graduação: Ciência da Computação Identificação e informações acadêmicas do(a) aluno(a)
- ORCID do autor: https://orcid.org/0000-0003-2381-1597 - Currículo Lattes do autor: http://lattes.cnpq.br/2476063247253151
Universidade Estadual de Campinas Instituto de Computação
INSTITUTO DE COMPUTAÇÃO
Felipe Lima Morais
Captura de contexto com o smartphone utilizando redes sem fio
Banca Examinadora:
• Prof. Dr. Juliana Freitag Borin Unicamp
• Prof. Dr. Jo Ueyama USP
• Profa. Dr. Sandro Rigo Unicamp
A ata da defesa, assinada pelos membros da Comissão Examinadora, consta no SIGA/Sistema de Fluxo de Dissertação/Tese e na Secretaria do Programa da Unidade.
Agradecimentos
Gostaria agradecer a todas as pessoas que de alguma maneira permitiram que esse traba-lho fosse concluído, mas existe um conjunto de pessoas que merecem ênfase. Grande parte dessa ênfase fica aos meus pais, que mesmo sem entender a fundo o que estava desenvol-vendo, nunca deixaram de me incentivar para concluir essa etapa da minha vida, incentivo que faz toda a diferença, então deixo aqui o meu muito obrigado por tudo que fizeram. Também quero agradecer a minha orientadora (também por me impedir de quase desistir do mestrado no primeiro semestre kkk) e aos professores da banca, pela oportunidade dar orgulho aos meus pais. Nesse agradecimento não posso deixar de citar alguns nomes que foram fundamentais para que tudo isso fosse possível, sendo eles, Jeferson Brunetta, Nátali Amaral, Edson Borin, Vanderson Rosario, Giovanna Mazzali, Benicio Goulart e Carolina Regattieri, além dos amigos que fiz no meu laboratório (LMCAD) e as pessoas que tive a oportunidade de conhecer/conviver dentro do Laboratório Miletus.
O presente trabalho foi realizado com apoio da Coordenação de Aperfeiçoamento de Pessoal de Nível Superior – Brasil (CAPES) – Código de Financiamento 001
Resumo
Cada vez mais a personalização de serviços e softwares, tais como aplicativos móveis, tem sido usada como estratégia por empresas para atrair e fidelizar usuários. Do ponto de vista do usuário, ações personalizadas de acordo com suas preferências e rotina podem facilitar tarefas e contribuir para seu bem estar. Entretanto, para que um aplicativo móvel seja capaz de personalizar suas ações, é necessário que conheça o usuário e o seu contexto. A computação ciente de contexto não é um conceito novo, porém, tem sido potencializada pela grande variedade de dispositivos da Internet das Coisas que tem sido instalados nos mais diversos ambientes. A maioria destes dispositivos coleta dados do ambiente com o uso de sensores e os envia, com o auxílio de tecnologias de comunicação sem fio, para aplicações hospedadas em nuvens computacionais.
Esta dissertação tem como objetivo gerar contexto sobre um usuário de smartphone a partir dos sinais de radiofrequência emitidos por diferentes dispositivos em um ambi-ente; mais especificamente, sinais emitidos por interfaces de comunicação Bluetooth e WiFi. Um dos desafios neste cenário consiste em coletar dados para a descoberta do con-texto consumindo o mínimo de bateria possível do smartphone do usuário. Assim sendo, essa dissertação propõe uma metodologia para coleta de sinais de Bluetooth e WiFi para descoberta de contexto com baixo consumo energético do smartphone. A metodologia foi testada em cenários reais e os resultados apontam economia superior a 80% no consumo de bateria quando comparada a uma metodologia padrão. Adicionalmente, foi desenvolvido e disponibilizado publicamente um framework que integra as tarefas de coleta, armaze-namento e acesso a dados de diversos usuários com o objetivo de impulsionar pesquisas focadas na análise desse tipo de dado.
Abstract
Personalization of services and software, such as mobile applications, has been used as a strategy by companies to attract and retain users. From the user’s point of view, actions tailored to their preferences and routine can make tasks easier and contribute to his well-being. Nonetheless, for a mobile application to be able to customize its actions, it needs to know the user and his context. The context-aware computing concept is not new, but it has been enhanced by the wide variety of IoT devices that have been installed in many places. Most of these devices collect environmental data using sensors and send them to applications hosted on the cloud through wireless communication technologies.
This dissertation aims to discover the context of a smartphone user by observing the radio frequency signals emitted by different devices placed in the same environment; more specifically, signals from Bluetooth and WiFi communication interfaces. One of the challenges in this scenario is to collect data for context discovery by consuming as little battery as possible from the user’s smartphone. Therefore, this dissertation proposes a low energy methodology for collecting Bluetooth and WiFi signals for context discovery. The methodology was tested in real scenarios and the results show savings of more than 80 % in battery consumption when compared to a standard methodology. Additionally, a framework integrating the collection, storage, and data access tasks was developed and made publicly available aiming to foster research focused on the analysis of this type of data.
Lista de Figuras
3.1 Mapa do Andar da Miletus . . . 22
3.2 Variação de sinal Bluetooth (desconfigurado) . . . 23
3.3 Variação de sinal Bluetooth (configurado) . . . 24
4.1 Localização de beacons - MyLife1 . . . 27
4.2 Id Bluetooth X Linha do tempo . . . 28
4.3 Id Bluetooth X Linha do tempo (com rótulos) . . . 30
4.4 Beacon da sala do professor . . . 31
4.5 Beacon que determina do caminho do usuário . . . 32
4.6 Id Bluetooth X Linha do tempo . . . 35
4.7 Id Bluetooth X Linha do tempo (com rótulos) . . . 36
4.8 Resultado da Clusterização dos dados . . . 38
5.1 Fluxograma de coleta (SensorHub) - MyLife2 . . . 40
5.2 Modelo do banco de dados - MyLife2 . . . 42
5.3 Lacuna de informação . . . 43
5.4 Inclusão das informações dentro da tabela . . . 43
5.5 Tabela com a inclusão do preenchimento . . . 44
5.6 Localização de beacons - MyLife2 . . . 45
5.7 Ações do usuário no dia A . . . 46
5.8 Ações do usuário no dia B . . . 46
5.9 Clusterização do dia A (7 Clusters) - Bluetooth . . . 47
5.10 Clusterização do dia B (7 Clusters) - Bluetooth . . . 47
5.11 Clusterização do dia A (8 Clusters) - WiFi . . . 49
5.12 Clusterização do dia B (8 Clusters) - WiFi . . . 49
5.13 Descarga da bateria (dia A) . . . 51
5.14 Descarga da bateria (dia B) . . . 51
6.1 Modelo do banco de dados - App MyLife3 . . . 55
6.2 Painel de configuração - App Mylife3 . . . 56
6.3 Barra lateral - App Mylife3 . . . 56
6.4 Diagrama da infraestutura - MyLife Framework . . . 57
6.5 Pagina inicial webserver - MyLife Framework . . . 57
Lista de Tabelas
5.1 Cronograma de Horário para coleta - MyLife2 . . . 45 6.1 Comparação entre frameworks para coleta e envio de dados de smartphones
Sumário
1 Introdução 12 1.1 Objetivos . . . 13 1.2 Contribuições . . . 13 1.3 Organização do texto . . . 14 2 Revisão Bibliográfica 15 2.1 Contexto . . . 15 2.2 Aprendizado de Máquina . . . 17 2.3 Sensores em smartphones . . . 17 2.3.1 Bluetooth . . . 18 2.3.2 SensorHub . . . 19 2.4 Considerações Finais . . . 20 3 Localização indoor 21 3.1 Metodologia . . . 22 3.2 Resultados . . . 23 3.3 Considerações Finais . . . 24 4 Localização outdoor 26 4.1 Desenvolvimento . . . 26 4.2 Metodologia . . . 27 4.3 Resultados . . . 274.3.1 Análise dos dados utilizando aprendizado de máquina . . . 33
4.4 Considerações Finais . . . 37
5 Reduzindo o custo energético 39 5.1 Desenvolvimento . . . 39
5.2 Pré-Processamento para o Aprendizado de Máquina . . . 42
5.3 Metodologia . . . 44
5.4 Resultados . . . 46
5.5 Considerações Finais . . . 51
6 Framework para captura de contexto 53 6.1 Desenvolvimento . . . 54
6.1.1 MyLife3 . . . 54
6.1.2 Servidor Web . . . 56
7 Conclusões 59 7.1 Trabalhos Futuros . . . 60
12
Capítulo 1
Introdução
Nos últimos anos, a explosão de dispositivos para geração de dados e serviços fez com que a inteligência artificial se desenvolvesse cada vez mais, viabilizando a geração de conhecimento sobre as pessoas (informações contextuais) e facilitando suas vidas através do uso de IoT (Internet of Things) e objetos inteligentes no geral [16, 24].
Existe a expectativa de que até 2027 tenhamos mais de 41 bilhões de dispositivos IoT conectados [28]. Com base nessa quantidade, teremos também um grande volume de dados e, lidar com tal fluxo de informações, se tornará um desafio [36]. Esse desafio está associado à coleta de uma quantidade grande de dados e da geração de informações relevantes através de algoritmos desenvolvidos para o processamento desses dados. [16].
Atualmente, existe uma diversidade enorme de dispositivos compostos de sensores e atuadores com capacidade de coletar informações e realizar ações para automatizar tarefas do cotidiano ou até mesmo tarefas que comumente não seriam realizadas. Essa automati-zação abrange desde um monitoramento cardíaco, a partir de um relógio inteligente, até um sistema completo de automatização de casas inteligentes.
Na busca por geração de conhecimento relevante nos diversos cenários surge o conceito de personalização de aplicações, que visa tratar cada usuário como único. Isso é feito através da coleta e armazenamento de dados provenientes dos sensores presentes nos smartphones, dispositivo considerado mais próximo do ser humano [16].
Nesse ínterim, por meio da coleta de dados de sensores do smartphone, surgiram várias pesquisas atreladas à localização indoor, que utilizam a detecção de sinais das ondas de rádio, como Bluetooth e WiFi, gerando conhecimento sobre o usuário. Tal tecnologia é utilizada para auxiliar na autenticidade de pessoas dentro de empresas e instituições, para monitorar o fluxo de pessoas e objetos, e também como ferramenta de publicidade em algumas lojas.
Dispositivos como leitores de umidade e temperatura, sensores que autenticam a aber-tura de portas, entre outros, emitem sinais pelo ambiente distribuindo informações para dispositivos com os quais consigam interagir, a fim de estabelecer uma comunicação. En-tretanto, além dessas informações específicas trocadas entre os dispositivos conhecidos de uma determinada aplicação, existem também algumas informações genéricas, ou seja, reconhecidas por qualquer dispositivo como, por exemplo, identificadores dos dispositivos que emitiram os sinais transmitidos pela rede sem fio.
identifi-1.1. OBJETIVOS 13
cador de cada dispositivo presente gera um identificador para esse ambiente em questão, o que pode-se classificar como contexto. Contexto é qualquer informação que possa ser utilizada para caracterizar a situação ou o local no qual uma entidade está presente. Essa entidade pode ser uma pessoa, local ou até mesmo um objeto que seja considerado relevante para determinada finalidade [1].
O contexto pode mudar conforme um indivíduo encontra ou não determinados sinais, abrangendo várias possibilidades a depender das mudanças de locais ou de pessoas que estão a sua volta. Nessa linha de pesquisa, busca-se um ponto chave para definir o que é ou não relevante, e também a utilidade das informações obtidas a partir desses sinais de rádio. Dependendo da finalidade, os dados são relevantes, com isso, surge o intuito de selecionar o que é mais importante/relevante na descoberta de contexto consistente, usando conjuntos menores de informações.
A qualidade da coleta desses dados está diretamente relacionada à maneira como ela é realizada, pois há a possibilidade de ocorrer perda de informação dependendo da quantidade de vezes em que a captação é feita num determinado período de tempo. À princípio, quanto mais granular for o tempo de coleta dos sensores, menor as chances de se perder informação possivelmente importante. O problema dessa granularidade, no entanto, advém do seguinte fato: a utilização de um smartphone com uma fonte de energia finita faz com que a granularidade afete diretamente o tempo de autonomia do aparelho. De acordo com Guo and Ma [16], Rachuri [29] e Chatzieleftheriou et al. [9], há um impasse para configurar o intervalo de tempo entre as coletas para que a aplicação não resulte em um consumo de energia tão elevado a ponto de inviabilizar sua utilização. Este impasse motiva o desenvolvimento de estratégias de coleta de dados com característica oportunista, ou seja, estratégias que ativem o processo de coleta apenas nos momentos em que há maior probabilidade de se obter dados importantes para a caracterização do contexto do usuário.
1.1 Objetivos
Este trabalho tem como objetivo propor uma metodologia de baixo consumo energético para coleta de dados sobre a rotina dos usuários utilizando apenas informações das redes de comunicação sem fio detectadas pelo smartphone. A pesquisa visa ainda desenvolver um framework para automatizar a coleta e a disponibilização dos dados dos usuários com o intuito de facilitar o desenvolvimento de algoritmos de aprendizado de máquina para análise desses dados, permitindo o eventual descobrimento de novas formas de usar as informações em assistentes virtuais, além de prover dados para automatização de processos por meio da rotina dos usuários.
1.2 Contribuições
Em resumo, as principais contribuições deste trabalho são:
• apresentação de um estudo sobre a viabilidade do uso de sinais de Bluetooth para descoberta de contexto e rotina de um usuário de smartphone;
1.3. ORGANIZAÇÃO DO TEXTO 14
• proposta de uma metodologia para a coleta de sinais de Bluetooth e WiFi, com baixo consumo energético do smartphone, para descoberta de contexto de um usuário (economia superior a 80% no consumo do dispositivo quando comparada a uma metodologia padrão);
• desenvolvimento e disponibilização de uma ferramenta para a coleta de dados do smartphone e de dispositivos no seu entorno, armazenando as informações dos sen-sores e disponibilizando em uma plataforma web, possibilitando o estudo das infor-mações coletadas para o desenvolvimento de novos mecanismos para a extração de contexto.
1.3 Organização do texto
Esta dissertação é dividida em sete capítulos. O Capítulo 2 apresenta a fundamentação teórica utilizada para o desenvolvimento do trabalho. No Capítulo 3, descreve-se o estudo realizado para determinação de localização indoor a partir da coleta de sinais Bluetooth. O Capítulo 4 apresenta uma metodologia para descoberta de contexto de localização com base em dados coletados de dispositivos Bluetooth a partir de um smartphone. O Capí-tulo 5, propõe melhorias a metodologia apresentada no capíCapí-tulo anterior com o objetivo de reduzir o consumo de energia do smartphone. Na sequencia, o Capítulo 6 apresenta o ItsMyLife framework, descrevendo o desenvolvimento e seus desafios. Por fim, o Capítulo 7 aborda conclusões e trabalhos futuros.
15
Capítulo 2
Revisão Bibliográfica
Este capítulo aborda os temas que embasam o trabalho realizado. A Seção 2.1 apresenta o conceito de contexto e discute algumas técnicas propostas por diferentes autores para a captura de contexto. A Seção 2.2 apresenta uma rápida introdução sobre aprendizado de máquina e descreve a técnica utilizada neste trabalho. Já a Seção 2.3 foca no funciona-mento do Bluetooth e do SensorHub que estão presentes nos smartphones, em geral, e que foram utilizados como fonte de informação para a descoberta de contexto nesta pesquisa.
2.1 Contexto
A palavra contexto pode assumir várias definições dependendo do meio no qual ela é inserida. Em computação, segundo Abowd et al. [1], contexto é qualquer informação que pode ser usada para caracterizar uma situação ou entidade, sendo que essa entidade pode ser uma pessoa, lugar ou qualquer objeto que tenha relevância no ambiente em questão.
Para Schilit et al. [31], o conjunto de informações que representa o contexto deve ser capaz de responder os cinco W’s, que são Who (Quem), What (O que), Where (Onde), When (Quando) e Why (Por que), sendo que essas respostas devem ser obtidas com o mínimo de dados possíveis. A partir desse conjunto de dados capaz de responder os cinco W’s, podemos evoluir para o conceito de contexto consistente.
Contexto consistente é composto por informações geradas a partir das informações pri-márias do contexto, como por exemplo, o que é possível determinar a partir das respostas dos cinco W’s [1].
Contexto consistente permite um conhecimento usado em aplicações e serviços com um maior grau de sofisticação na interpretação dos dados. O desafio está em saber quais dados são necessários para formar o contexto e como deve ser a organização desse conjunto de dados, a fim de extrair o chamado contexto consistente.
A captura de contexto pode ser obtida de várias maneiras e a partir de diferentes recur-sos, por exemplo Johansson et al. [18], analisa o histórico de utilização de pessoas/usuários em algumas plataformas online, identificando-os através da rotina de utilização e mape-ando seus passos para a construção do conhecimento. Com esse conhecimento, Johansson procurava em outras plataformas pessoas/usuários que possuíam comportamentos seme-lhantes a fim de associar uma mesma pessoa a várias contas distintas, mesmo tendo
2.1. CONTEXTO 16
cadastros com nome de usuários diferentes. Outras pesquisas buscam extrair contexto utilizando informações de como a pessoa utiliza a câmera do celular, determinando as características de utilização do indivíduo e gerando uma espécie de ID [17].
Já Kim et al. [21] propuseram um mecanismo para classificar a localização de usuários, para mapear as coordenadas geográficas dos smartphones e fazer com que obtivesse um histórico de locais por onde o usuário passou e, com isso, gerar métricas para obtenção de rotinas. Nessa área de pesquisa, busca-se a precisão na classificação de contexto e, garantir essa conquista, é um trabalho oneroso e desafiador. Além disso, em algumas aplicações essas tarefas computacionais precisam ser executadas em tempo real. Mapear o contexto requer a produção de informações com um índice elevado de diversidade, ou seja, grande variação em relação a entidade/pessoa alvo de mapeamento [37].
Com o aumento crescente de aplicações utilizando e explorando o conceito de contexto, criou-se uma ramificação do contexto focado em extrair conhecimento sobre um usuário em específico, através de diversos dispositivos IoT, nos quais o usuário em questão inte-rage diretamente ou indiretamente. Cordeiro et al. [10] descreve tal contexto focado em conhecimento específico do usuário de Personal IoT, ou Internet das coisas pessoal.
Com a ideia de explorar as possibilidades sobre o conceito, Zeni et al. [37] descre-vem metodicamente com seria o processo para construir um contexto para responder os cinco W’s, usando a captura de informação através do smartphone. Foram combinadas as informações vindas da localização fornecida pelo GPS e do sinal de WiFi, como prin-cipais, para saber quando o usuário mudou de lugar. A aplicação solicita ao usuário um rótulo quando detecta uma nova localização (utilizando um lista fixa de opções), com o objetivo de confirmar a correlação entre os pontos na descoberta do contexto do usuário. Nesse processo, os autores utilizaram a maioria do recursos que o dispositivo pode prover (cerca de 30 recursos) para enriquecer a coleta de dados. Para utilizar vários recursos, foi necessário aplicar um esquema de ontologias para definição de uma hierarquia desses dados. Uma desvantagem da utilização de uma estrutura hierárquica sobre várias fontes de informação é a dificuldade em se encontrar a melhor estrutura para o problema alvo, algo que pode ser foco exclusivo de estudo. Assim sendo, utilizar vários recursos pode tornar o problema mais complexo sem, necessariamente, facilitar na solução do problema. Guo and Ma [16] apresentaram um mecanismo de agendamento de processos que se ajusta ao contexto do usuário para melhorar a utilização dos recursos de processamento do smartphone. Para isso, são coletadas várias informações, tais como dados de Bluetooth, WiFi, GPS bem como de sensores de vestíveis conectados ao smartphone, como dados de pulsação, por exemplo.
Atzori et al. [5] explica IoT a partir de três visões, que são posteriormente utilizadas por Cordeiro et al. [10] para definir Personal IoT e a transmissão de contexto: i) todo dispositivo na IoT deve possuir um identificador - na descoberta de contexto os identifi-cadores permitem a construção de um histórico a partir da interação do usuário com o ambiente e os dispositivos; ii) todos os dispositivos da IoT devem possuir uma forma de comunicação integrada a Internet - a comunicação entre dispositivos e entre dispositivos e usuários e o uso de formato de dados padronizados facilitam a coleta de informações para a descoberta de contexto; iii) uma grande quantidade de dados será gerada por dispositi-vos IoT e necessitam ser processadas, filtradas e entendidas, para a geração de informação
2.2. APRENDIZADO DE MÁQUINA 17
concisa - o processo de descoberta de contexto se beneficia do processamento de dados coletados do ambiente. A proposta desta dissertação faz, de certa forma, a união das visões, sendo que ao utilizar o smartphone do usuário é possível ter um identificador deste usuário, ao coletar informações à nível do protocolo de comunicação obtém-se informações homogêneas, utilizando dispositivos heterogêneos, com a possibilidade de filtrar os dados para as informações concisas.
2.2 Aprendizado de Máquina
O aprendizado de máquina, do inglês Machine Learning, é um ramo da inteligência ar-tificial que fornece aos computadores a capacidade de aprender sem serem programados explicitamente [22, 25]. O aprendizado de máquina ataca tarefas grandes e complexas se concentrando nas informações mais relevantes em uma grande quantidade de dados. Blum e Langley [6] usam como exemplo a Internet, que retem um volume enorme de infor-mações de baixa qualidade, onde o aprendizado de máquina proporciona a personalização de sistemas de filtragem para recuperação de informação com maior relevância.
O aprendizado de máquina se concentra no desenvolvimento de programas de com-putadores que podem mudar quando expostos a novos dados. Nele, há as classes de algoritmos de aprendizado supervisionado, não supervisionado e aprendizado por reforço. Com a expectativa de reconhecer padrão sem uma classificação prévia, neste trabalho utilizou-se o algoritmo de aprendizado não supervisionado chamado de K-Means.
K-means é um dos algoritmos mais simples de aprendizado não supervisionado que resolve problemas de clusterização, sendo um método de quantização vetorial, originado do processamento de sinais, de uso popular para análise de clusters em mineração de dados [25, 30].
A clusterização do K-means visa particionar os dados de entrada em K clusters, sendo esse valor K definido como parâmetro de entrada. Além do valor de K, um conjunto de dados é passado, sendo que cada item desse conjunto pertencerá a um dos clusters definidos pelo algoritmo. Cada cluster possui seu centróide e cada item vai para o cluster que tem o centróide mais próximo. Tais centróides devem ser definidos de uma maneira inteligente, pois diferentes localizações causam resultados diferentes. Então, normalmente, os algoritmos colocam os centróides o mais longe possível uns dos outros [25].
O K-Means foi utilizado neste trabalho como uma ferramenta para encontrar padrões dentro de um grupo de dados que não são perfeitamente determinados. Contudo, não é foco desta dissertação fazer um estudo aprofundado de técnicas de aprendizado de máquina.
2.3 Sensores em
smartphones
Os smartphones possuem diversos sensores, entre eles, acelerômetro, giroscópio, micro-fone, câmera, magnetômero, GPS e sensor de luminosidade. As interfaces de comunicação, tais como Bluetooth, WiFi e LTE também podem ser utilizadas como sensores que cap-tam sinais de outros dispositivos com as mesmas interfaces de comunicação. As subseções
2.3. SENSORES EM SMARTPHONES 18
seguintes apresentam os sensores que serão utilizados no decorrer deste trabalho.
2.3.1 Bluetooth
Bluetooth é uma tecnologia de comunicação sem fio voltada para a transferência de dados em curtas distâncias. A tecnologia foi criada em 1994 pela companhia Ericson e posterior-mente padronizada na especificação IEEE 802.15.1. A interface de rádio Bluetooth opera na banda não licenciada industrial, científica e médica (ISM), no intervalo de frequência de 2,4 GHz a 2,48 GHz [3, 20].
As versões que antecederam o Bluetooth 4.0, chamadas de Bluetooth Clássico, utili-zavam uma divisão de 79 canais de 1 MHz. Esta tecnologia era usada para comunicação contínua de curto alcance entre dispositivos móveis, sendo mais popular para transferência de áudio durante chamadas telefônicas ou como multimídia [3, 4].
A partir da versão 4.0, a comunicação passou por mudanças para aumentar a taxa de transferência e diminuir o consumo de energia, o que gerou a sigla de BLE para Bluetooth Low Energy [11].
Ao contrário do Bluetooth clássico, a faixa de frequência é dividida em 40 canais de largura de 2MHz. Além disso, em dispositivos BLE, as transferências de dados ocorrem em curtos períodos separados por intervalos de espera, o que contribui muito para a economia de energia [11].
BLE foi desenvolvido especialmente para que dispositivos baratos conseguissem usar esse tipo de comunicação sem aumentar drasticamente o consumo de bateria, sendo usado com frequência em dispositivos de IoT. Essa evolução também gerou uma linha de dispo-sitivos chamada de beacons.
O beacon é um dispositivo BLE especial que transmite uma pequena quantidade de dados (geralmente seu identificador) para dispositivos próximos em intervalos de tempo regulares. Durante a operação normal do beacon, ao contrário de outros dispositivos BLE, nenhuma conexão entre os dispositivos é estabelecida, logo o beacon nunca receberá dados [2, 35]. Na maioria dos casos, ele é apenas um transmissor BLE alimentado por bateria com um chip de controle simples, dentro de um invólucro, permitindo fácil implantação em ambientes [35].
Os beacons são usados principalmente para permitir a localização aproximada do usuá-rio, especialmente quando outros métodos de posicionamento são ineficazes, por exemplo, a localização indoor em um edifício. A localização obtida pela triangulação dos beacons, entratanto, pode ser inconsistente em diferentes modelos de beacons, pois o sinal BLE captado pelo dispositivo do usuário pode facilmente ser afetado pelo ambiente, variando a distância do beacon pela intensidade do sinal e ocasionando divergências entre o cálculo e a distância real [35]. Na maioria dos casos de uso, instala-se no dispositivo do usuário uma aplicação que, ao detectar o sinal do beacon, realiza a execução de uma ação forne-cendo ao usuário conteúdo específico do local, o que é comum, por exemplo em lojas de departamentos [2, 11].
O receptor de sinais Bluetooth dos smartphones tem sido usado como um sensor em pesquisas relacionadas ao contexto, Fernquist et al. [14] realizam a coleta de dados de vários smartphones com o intuito de buscar a identificação das pessoas através de suas
2.3. SENSORES EM SMARTPHONES 19
rotinas. Para tanto, como entrada, os aplicativos coletavam a localização das pessoas e também todos os dispositivos Bluetooth encontrados pelo seus respectivos smartphones. O trabalho teve um grande êxito, com a utilização do Bluetooth, principalmente pelo fato de que os dispositivos encontrados pelos usuários normalmente eram de uso pessoal, o que facilitou bastante o processo. Os outros extraíam a rotina dos usuários identificados durante a pesquisa, usando os dados da rotina para identificação, o que é um pouco diferente da proposta de se utilizar a rotina para buscar conhecimento sobre as ações futuras do indivíduo, a fim de tentar auxiliar em processos futuros.
Já Rachuri [29] propôs, um mecanismo para coleta de dados de Bluetooth, acelerômetro e microfone, em intervalos de tempo definidos pela seguinte heurística: quando a coleta não observa diferença para o último dado coletado, o sistema aumenta o intervalo de tempo para a realização da próxima coleta e, na medida em que as diferenças entre as coletas surgem, ele reduz esse tempo. Os resultados mostraram que é possível capturar praticamente todas as variações de localização feitas durante os experimentos. No período em que o estudo foi realizado (2012) não havia uma intensa utilização dos dispositivos Bluetooth como nos dias de hoje, e o foco do trabalho era determinar as movimentações do usuário (smartphone).
2.3.2 SensorHub
O SensorHub é formado por um conjunto de sensores como acelerômetros, giroscópios e magnetômetros, que permitem o desenvolvimento de várias funcionalidades, desde a contagem de passos em vestíveis ao rastreamento de olhares em aplicações de realidade aumentada [33].
A comunicação de dados desses sensores para processadores geralmente ocorre em traços de placas de circuito impresso. Recentemente foi desenvolvido um SensorHub em SoC (system on chip), especializado em processar dados fornecidos de vários sensores, adotados em dispositivos móveis e portáteis [19, 33].
O SensorHub em hardware permite processar os dados dos sensores com um consumo menor de energia, usando um processador auxiliar de baixa potência [19]. Alguns dispo-sitivos com SensorHub utilizam o microcontrolador também para computação genérica e aceleradores de hardware para permitir computação de baixa potência [13].
Em smartphones pode-se, opcionalmente, incluir um SensorHub, o qual pode realizar algumas computações de baixo nível em baixa potência, enquanto o processador principal pode estar em modo de suspensão como, por exemplo, contar os passos ou determinar se o dispositivo está se movendo ou não [13].
O SensorHub em hardware pode, às vezes, ser um chip separado e, às vezes, incluído no mesmo chip do processador principal. No caso em que é separado, é importante que ele tenha memória suficiente para o processamento desejado, a fim de consumir pouca energia e permitir a implementação dos sensores Android de baixa potência [13].
Essa pesquisa utiliza um SensorHub que fica entre o processador principal e o hard-ware dos sensores, coletando e processando os dados do sensor por conta própria. Como consome menos energia, espera-se uma redução geral no uso de energia no que diz respeito aos sensores de movimento.
2.4. CONSIDERAÇÕES FINAIS 20
Neste capítulo serão apresentados alguns trabalhos relacionados ao método de coleta e a possibilidade de utilização das informações extraídas, além de algumas aplicações para os dados coletados, com o intuito de reduzir o consumo energético.
Há pesquisas onde se debate a coleta de dados gastando o mínimo de bateria possível sendo que, muitas, acabam definindo isso como um impasse. Deve-se destacar o fato de não ser possível coletar todas as informações existentes no ambiente sem que os dispositivos de coleta estejam monitorando o ambiente o tempo todo. Nessa linha de raciocínio, há algumas pesquisas que tentam abordar essa questão.
2.4 Considerações Finais
Este capítulo apresentou o conceito de contexto e como a coleta de dados para geração de contexto relacionado a rotina ou comportamento de uma pessoa tem sido abordada por outros pesquisadores. O smartphone tem se tornado uma das principais ferramentas para apoio a coleta desse tipo de dados, dado que acompanha seus usuários na maior parte das suas atividades e deslocamentos diários. Entretanto, há de se considerar o consumo energético ocasionado pelo processo de coleta de forma que não impacte negativamente o tempo de duração da bateria do equipamento. Surge, então um impasse entre a frequência com que os dados são coletados e o consumo energético resultante deste processo: quanto maior a frequência de coleta de dados, maior a capacidade de se capturar mudanças de contexto do usuário, mesmo as mais sutis, mas também maior é o consumo energético do dispositivo. Uma forma de atacar este desafio é a partir do desenvolvimento de estraté-gias de coleta de dados oportunistas, ou seja, que acionam o processo de coleta apenas nos momentos em que se observa maior probabilidade de se capturar dados de contexto relevantes.
Com base neste raciocínio, este trabalho apresenta uma estratégia oportunista e de baixo consumo energético para coleta de dados de contexto a partir do smartphone. Desse modo, o restante do capítulo apresentou as tecnologias e conceitos que serão utilizados nos capítulos seguintes para o desenvolvimento da proposta. A estratégia proposta se baseia nas tecnologias BLE, uma interface de comunicação de baixo consumo energético, e SensorHub, que integra dados de diversos sensores do smartphone para identificar quando o usuário está parado ou realizando atividades como andar, correr, entre outras. Até o momento da redação desta dissertação, não foram encontrados na literatura outros trabalhos que utilizam estratégia semelhante.
Adicionalmente, espera-se que técnicas de aprendizado de máquina sejam amplamente utilizadas para analisar os dados coletados e gerar conhecimento sobre a rotina e o contexto so usuário. Este trabalho faz uso da técnica K-means para fazer uma avaliação inicial do potencial dos dados coletados pela estratégia proposta.
21
Capítulo 3
Localização indoor
É comum a utilização de dispositivos Bluetooth para inferir a localização dentro de um ambiente onde os sinais de GPS apresentam uma baixa precisão, como por exemplo, dentro de prédios ou em locais subterrâneos.
Sharhan and Zickau [32] utilizaram beacons, dentro de um hospital, incorporados à um framework para fazer controle de acesso por meio da localização das pessoas, já que no ambiente em questão, os funcionários, médicos e enfermeiros dispunham de celulares ou tablets. Para garantir a veracidade das informações durante o acesso, o projeto utilizou outros recursos como GPS e sinal de WiFi, com o intuito de aumentar a confiabilidade das informações obtidas pelos beacons.
Outro caso interessante apresentado por Moreira [27], é o resultado de uma competição que ocorreu dentro do Indoor Positioning and Indoor Navigation (IPIN). Os competidores tinham um grande conjunto de dados diversificados, no sentido de ter vários sensores de vários smartphones. Cada grupo tinha como meta conseguir descrever qual era a rota gerada pelos usuários dos dispositivos. Parte dos dados possuía um gabarito e outra parte, não. O autor descreve o desenvolvimento até chegar em resultados bem satisfatórios, interligando a informação e principalmente corrigindo as pequenas variações através de dados dos demais sensores. Mesmo com bons resultados, o autor comenta que as força do sinal das ondas de rádio (Bluetooth e WiFi) não são tão eficientes para definir uma localização precisa, pois existem barreiras que atrapalham o sinal resultando, algumas vezes, em uma localização errada. Por isso, há necessidade de validar com outros vários sensores, mostrando que ainda existe muito a se pesquisar nessa área [27].
Nesse trabalho buscou-se pela compreensão do funcionamento da localização indoor, tendo em vista os desafios existentes, prosseguiu-se em obter e identificar os cômodos do interior de um ambiente. Estudou-se um problema enfrentado nas variações de compor-tamento dos sinais de dispositivos Bluetooth entre os cômodos. Sendo que, muitas vezes o usuário não estava em uma sala, mas os sinais indicavam que sua localização era den-tro dessa sala, ou pior quando o usuário estava em uma determinada sala, mas os sinais indicavam que ele estava em outra sala.
Através de experimentos realizados, com o objetivo de entender o problema e, poste-riormente, gerar mecanismos para restringir o número de falsos-positivos das aplicações,
3.1. METODOLOGIA 22
as quais utilizavam esse recurso em projetos internos da Motorola1.
A coleta atrelou-se a uma análise exploratória para buscar outras possibilidades que o uso dos sinais de dispositivos Bluetooth poderiam proporcionar.
3.1 Metodologia
Foi desenvolvida uma aplicação Android que coleta sinais de dois dispositivos Bluetooth específicos. Os dispositivos Bluetooth foram posicionados em nas salas de reunião no prédio onde a equipe de pesquisa trabalhava.
A execução dos experimentos foi realizada em um ambiente controlado na medida do possível, sem a interferência de nenhuma pessoa em ambas as salas (exceto o usuário2
do smartphone). As duas salas usadas no experimento, possuíam aproximadamente 12 metros quadrados. As salas possuíam a mesma configuração na disposição dos moveis.
Entre as salas havia um ambiente de livre circulação de pessoas, o qual foi utilizado apenas como meio de transição de uma sala para a outra. A Figura 3.1 mostra a estrutura do andar utilizado e também uma legenda indicando qual parte do corredor e quais salas foram objeto do estudo.
Figura 3.1: Imagens do andar do prédio onde os experimentos foram executados Durante os testes, o usuário permanecia em uma das salas por um minuto e, logo após, mudava de sala, onde permanecia por mais um minuto até o momento de realizar a mudança novamente. Durante esse processo, ocorria a utilização da aplicação desenvol-vida, a qual possui dois botões que, quando acionados, informavam o momento em que o smartphone entrava e saida das salas durante os testes. Essas informações foram usadas como gabarito durante as análises.
1Financiadora do projeto de pesquisa apresentado 2O usuário foi o próprio autor deste trabalho.
3.2. RESULTADOS 23
3.2 Resultados
A primeira coleta realizada mostrou uma diferença nas configurações da intensidade do sinal, apresentando-se como o motivo para a geração dos falsos-positivos, tal qual demons-trado na Figura 3.2.
Figura 3.2: Intensidade dos Sinais ( nível em decibéis ou dB) onde as linhas apresentam a variação de sinal dos dispositivos Bluetooth, enquanto as colunas apresentam o real posicionamento do smartphone..
3.3. CONSIDERAÇÕES FINAIS 24
Figura 3.3: Intensidade dos Sinais ( nível em decibéis ou dB) onde as linhas apresentam a variação de sinal dos dispositivos Bluetooth, enquanto as colunas apresentam o real posicionamento do smartphone.
Em alguns pontos, a intensidade do sinal da sala não ocupada se mostra maior do que o da sala ocupada. Isso acontece, porque qualquer barreira entre o emissor e o smartphone pode ser um obstáculo para o sinal da sala com o beacon mais fraco, inclusive o usuário. Com o objetivo de melhorar os resultados obtidos, executou-se diversos experimentos como, entre eles, variando as configurações dos dispositivos ali presentes, reduzindo a intensidade do sinal nas salas, padronizando-as de maneira em que a intensidade fosse proporcional ao tamanho da sala e garantindo a visibilidade do sinal apenas dentro do ambiente. Os resultados podem ser observados na Figura 3.3.
A Figura 3.3 mostra que os dados de intensidade de sinal estão mais consistentes com relação ao gabarito quando comparados aos dados previamente apresentados. Desse modo é possível afirmar, com maior probabilidade de acerto, em qual das salas o smartphone se encontra. Essa simples análise apresentou um fato importante: não é possível gerar resul-tados de localização indoor realmente relevantes sem o conhecimento prévio do ambiente. Os resultados obtidos só foram possíveis levando-se em consideração o tamanho da sala para determinar a intensidade do sinal e o posicionamento estratégico do dispositivo de acordo com o layout dos moveis da sala.
3.3 Considerações Finais
Este capítulo apresentou um estudo exploratório sobre o uso de sinais Bluetooth para localização indoor de um usuário. Os resultados apontaram que esta é uma área complexa, dada a variação de intensidade dos sinais captados e a dificuldade de se estimar uma distância com base unicamente nestas informações.
3.3. CONSIDERAÇÕES FINAIS 25
Com base nos resultados obtidos e dado que este projeto busca descobrir o contexto de um usuário nos mais variados ambientes, optou-se por continuar a exploração do uso de beacons para determinar a localização de um usuário, porém, de maneira mais ampla. Desse modo, no restante deste trabalho, os beacons serão utilizados para determinar, por exemplo, se um usuário está ou não dentro de um prédio. Esse tipo de informação pode contribuir na detecção da rotina de um usuário e dos diferentes contextos em que ele se encontra.
26
Capítulo 4
Localização outdoor
Este capítulo apresenta a ferramenta desenvolvida, a metodologia utilizada e os resultados obtidos a partir da coleta de informações sobre os dispositivos Bluetooth presentes no ambiente externo ao smartphone, tais como beacons, fones de ouvido, caixas de som, entre outros. O intuito deste estudo foi entender quais informações seriam realmente relevantes para identificar o contexto do usuário.
4.1 Desenvolvimento
O aplicativo desenvolvido coleta os endereços MAC (de agora em diante, chamado de ID) de todos os dispositivos que emitem sinais Bluetooth próximo ao smartphone e o instante em que cada dispositivo foi encontrado (timestamp). Essa aplicação, chamada MyLife1, funcionou como uma prova de conceito, onde os dados coletados eram armazena-dos em um arquivo de texto simples dentro do dispositivo. Para executar essa aplicação, utilizou-se um aparelho da linha Moto E, rodando o sistema operacional Android 6.0.1 (Marshmallow).
Para que não se perdesse informações do ambiente, a aplicação deveria ficar o tempo todo em funcionamento. No entanto, a partir do Android Marshmallow, foi incorpo-rado um recurso de economia de energia que prolonga a autonomia da bateria. Esse recurso gerencia/desativa aplicativos que continuam em funcionamento enquanto a tela do dispositivo permanece desligada [12]. Chamado de Doze ou Soneca, esse gerenciador é responsável por reduzir o consumo de bateria, adiando atividades que estão em segundo plano e/ou fechando serviços1 para religá-los quando a tela for ativada [12]. Isso dificultou
a execução do experimento de maneira contínua. A alternativa encontrada na comuni-dade de desenvolvedores Android foi acoplar ao serviço responsável pela coleta dos sinais em uma notificação na barra do sistema para que o serviço fosse interpretado como uma exceção/elevação de prioridade pelo Doze, possibilitando que ficasse o tempo todo em operação.
4.2. METODOLOGIA 27
4.2 Metodologia
Para possibilitar uma validação do projeto, foram distribuídos 13 beacons em lugares frequentados diariamente pelo usuário2 do aplicativo. O objetivo era verificar o horário e
por quanto tempo o usuário permanecia em cada local, através das informações geradas pelo aplicativo. Adicionalmente, o usuário anotou todos os lugares por onde passou, com o intuito de se obter uma forma de validação das informações (gabarito).
Figura 4.1: Locais onde os beacons foram colocados em uma distribuição geográfica. A Figura 4.1 mostra todos os pontos onde foram instalados beacons simulando por onde o usuário possivelmente passaria. A coleta foi realizada duas vezes, sendo a primeira durante 18 dias (de 25 de novembro de 2016 à 13 de dezembro de 2016) e a segunda durante 14 dias (de 27 de janeiro de 2017 à 10 de fevereiro de 2017).
4.3 Resultados
A Figura 4.2 representa os dados da primeira coleta, mostrando apenas os primeiros 8 dias, de modo que a visualização das informações seja mais detalhada - o que não seria possível em um gráfico com 18 dias. O eixo X mostra a linha do tempo e, no eixo Y, estão representados todos os beacons encontrados, sendo indicado no gráfico toda vez que o dispositivo foi encontrado pela aplicação. Cada beacon possui uma cor para facilitar a visualização.
Nota-se na Figura 4.2 que certos comportamentos se repetem ao longo do tempo; em alguns casos, o mesmo conjunto de beacons aparece em diferentes ocasiões, criando
4.3. RESULTADOS 28 Fig ura 4.2 : Grá fico co m o iden tifica do r de ca da disp ositiv o Blueto oth enco ntra do versus o temp o.
4.3. RESULTADOS 29
um certo padrão. Existe também uma notória semelhança no tempo em que o usuário permanece próximo do mesmo conjunto de beacons em dias diferentes. Durante esses 8 dias foram encontrados mais de 250 beacons, sendo que apenas 13 deles foram implan-tados artificialmente no ambiente. Essas observações comprovam a existência de muitos dispositivos Bluetooth no dia-a-dia do usuário do aplicativo.
Após análise das anotações feitas pelo usuário, notou-se que as informações se correla-cionaram com o que era apresentado no gráfico. A Figura 4.3 mostra os dados informados pelo usuário sobrepostos aos dados coletados pelo aplicativo. Os dados apresentados no gráfico deixam uma lacuna do dia 1 de dezembro às 19:10h até às 07:05h do dia 2 de dezembro. Essa lacuna justifica-se pelo descarregamento total da bateria do smartphone. É possível observar que, para cada local informado pelo usuário, há um conjunto de dis-positivos que se repete em todas as ocasiões em que esse local é frequentado. Além disso, há diversos dispositivos que são temporários e não descrevem o locais onde o usuário es-teve ou por onde passou, mas que poderiam ser utilizados para representar um contexto não diretamente associado à localização. Isso mostra que o gráfico é complexo em rela-ção ao detalhamento de informarela-ção e possibilita extrair diversos dados ao analisa-lo sob diferentes perspectivas.
Outro ponto importante a ser analisado está associado ao final de semana do dia 3 e 4 de dezembro, sábado e domingo, respectivamente. O usuário passou a maior parte do tempo em sua casa. Ao analisar somente esse trecho do gráfico, conseguimos notar uma variação entre os beacons que foram colocados no quarto e na sala da casa onde residia o usuário, sendo mapeados através do seu endereço MAC. Desse modo, foi possível estimar o período no qual houve uma mudança de contexto dentro de sua casa. Isso abre margem à possibilidade de estimar informações como o tempo de sono, a frequência com que ele realizou movimentos dentro de casa - informações peculiares, embora sem muita precisão, mas que podem ser úteis para uma assistente virtual ou um sistema de automação residencial. A análise de micro contextos mostra-se como uma área de pesquisa com grandes possibilidades, a partir da análise de sinais Bluetooth.
Devido à quantidade inesperada de dispositivos encontrados, analisamos a relevância dos demais dispositivos Bluetooth não-implantados no ambiente. Percebeu-se que muitos destes dispositivos são temporários, provavelmente dispositivos que estão esperando para se conectarem, deixando de emitir sinais detectáveis pelo aplicativo após estabelecerem uma conexão. Esses dispositivos normalmente não estão atrelados à localização mas sim a situações, como por exemplo, o usuário ativar seu fone de ouvido Bluetooth, passando a informação de que talvez esteja sozinho ou ligando seu mouse Bluetooth, passando a informação de que está no computador.
Já os dispositivos que possuíam uma frequência alta de aparições, ou uma aparição estável por um tempo relativamente grande, tiveram uma atenção especial. Buscando, através de uma análise mais criteriosa, entender os locais onde esses dispositivos estiveram presentes e também o que potencialmente o usuário estaria fazendo no local em questão, a fim de mapear a razão pela qual o dispositivo apareceu.
Analisando esses dispositivos desconhecidos e indo a campo nos lugares especificados pelo usuário, foi possível descobrir a localização geográfica dos dispositivos. Foi possível determinar, por exemplo, que, em um dia específico, o usuário esteve em uma reunião com
4.3. RESULTADOS 30 Fig ura 4.3 : Grá fico co m o iden tifica do r de ca da disp osi tiv o Blueto oth enco ntra do versus o temp o, incluindo os ró tulo s de onde o us uá rio estev e em relação ao temp o.
4.3. RESULTADOS 31
um dos seus professores daquele semestre. Naquela ocasião, além de encontrar beacons ou dispositivos Bluetooth temporários, houve um dispositivo que esteve presente durante toda a reunião, marcando no gráfico exatamente o tempo no qual o usuário afirmou estar com o professor. A Figura 4.4 mostra o momento e o local geográfico3 onde o dispositivo
foi registrado.
Figura 4.4: Gráfico contendo os Identificadores Bluetooth versus o tempo, mostrando o beacon referente a sala do professor em GPT, junto a um mapa que indica a localização geográfica (que foi adquirida posteriormente).
Ao observar o dia referente a essa reunião realizada com o professor, é possível levantar a hipótese de que esse tipo de informação tem valor. Essa situação (generalizando a informação) não foi previamente agendada ou fez parte das ações rotineiras do usuário, podendo ser classificada como um período atípico no seu dia. Tal situação pode gerar mudanças em sua rotina.
Na busca por entender o motivo do aparecimento de alguns beacons - classificados como comuns dentro da rotina semanal do usuário, percebeu-se que um dispositivo esteve quase sempre presente após o usuário sair de sua casa e também quando estava prestes a voltar para ela. Após algumas visitas a campo na tentativa de reproduzir os motivos do aparecimento do dispositivo, notou-se que o emissor de sinal ou beacon estava em uma das rotas que o usuário fazia para chegar à universidade. A partir disso, foi possível identificar quando ele fazia essa determinada rota para chegar ou sair da sua casa, assim como mostra a Figura 4.5, evidenciando os momentos em que ele realizava esse caminho.
3A localização foi registrada após uma pesquisa de campo posterior a coleta para achar a localização
4.3. RESULTADOS 32
Figura 4.5: Gráfico contendo os Ids Bluetooth versus tempo, mostrando o beacon refe-rente a um dos caminhos realizados pelo usuário, com um mapa que indica a localização geográfica (adquirida posteriormente).
A Figura 4.5 mostra a riqueza de informações presentes na captura de sinal oriundo de dispositivos Bluetooth. Pela a análise das informações foi possível afirmar que o usuário em questão realizava, pelo menos, dois percursos entre a universidade e sua casa, como pode ser observado na figura. Ao determinar que o usuário diariamente saía de um contexto para o outro, realizamos estudos considerando os períodos de transição entre os contextos. Nesse caso (possuindo informações sobre os lugares onde o usuário em questão esteve), encontramos um dispositivo que estava presente no caminho entre a sua casa e a universidade, onde um dispositivo era capturado na maioria da vezes que o usuário estava a pouco minutos de chegar em sua residencia ou logo após sair (dependendo de qual era o destino final).
Através do gabarito da rotina do usuário foi possível determinar a localização do dispositivo, como é possível ver na Figura 4.5. A captura de contexto, juntamente de uma análise mais detalhada dos dados, possibilitou a distinção dos caminhos que o usuário faz entre dois contextos de sua rotina. Além da distinção de caminhos, esse ponto abre a possibilidade para, no futuro, o smartphone ser capaz de identificar as rotas e com isso prever para qual contexto o usuário está indo dado um mapeamento de rotas que o usuário faz comumente. Vale enfatizar que uma simples informação, como saber qual a rota que o usuário fez de um local para outro, pode ser um ponto-chave para prever se a rotina diária do usuário poderá ser alterada ou não.
Nota-se a importância dessa análise porque, a partir do momento em que se conhece a rotina do usuário, há a possibilidade de prever seus passos e, acima de tudo, é possível estimar quando o usuário terá um dia atípico (fora do cotidiano). De tal maneira, abre-se
4.3. RESULTADOS 33
um leque abrangente potencializa-se os sistemas de automatização de ações ou assistentes virtuais. Além da descoberta de contexto, esse tipo de dado traz informação de duas vertentes da análise de contexto, evidenciando informações de micro contexto, como o deslocamento do usuário dentro de sua residência, e macro contexto, como informações de onde ele passou e quais rotas ele fez para chegar a um local.
A obtenção de informação, através da análise apenas dos beacons não-implantados no ambiente, foi satisfatória. No entanto, é notório que a quantidade de informação é inferior nessa coleta, devido à baixa quantidade de dispositivos Bluetooth que foram encontrados mais de uma vez classificando-os como parte da rotina.
Existe uma dificuldade de identificar quais dispositivos Bluetooth são importantes para determinar a rotina do usuário, e quais deles não são. Porém, vale a ressalva ser possível que todos os dispositivos sejam relevantes para definir rotinas ou demonstrar ações realizadas pelo usuário ou que afetam sua rotina.
Atualmente, não conseguimos definir o critério de importância de cada dispositivo Bluetooth para a geração de informação sobre o indivíduo que utiliza o smartphone. Uma abordagem considerada foi, durante a análise, aumentar o peso dos beacons que, de alguma forma, ajudam a determinar locais físicos, separando os beacons em dois grupos, fixos e móveis. Seguindo essa linha, uma abordagem seria a expansão da coleta para abranger dispositivos WiFi.
Partindo do pressuposto de que existem muitos aparelhos Bluetooth móveis, a coleta de dispositivos WiFi poderia ser uma maneira de identificar o que seriam beacons móveis, já que a quantidade de roteadores WiFi móveis gerados normalmente por smartphone é baixa em relação a roteadores estáticos, sendo possível associar ambos os tipos de sinais para gerar informações mais sólidas.
Uma limitação observada no aplicativo de coleta MyLife1, foi o consumo elevado da bateria. Por esse motivo, em alguns pontos dos gráficos apresentados, existe uma lacuna com a ausência de beacons. O problema, em relação ao consumo de bateria, já é recorrente na literatura.
É perceptível que, muitas vezes, o conjunto de dispositivos Bluetooth detectados pelo smartphone é igual, até que o usuário mude de localização para que ocorra uma mudança no conjunto de dispositivos. Nota-se que isso não é uma regra, pois podem ocorrer mudan-ças nesse conjunto sem a locomoção do usuário, como, por exemplo, pessoas que possuem algum aparelho Bluetooth que se aproximam do usuário em questão, ou se afastam do mesmo.
4.3.1 Análise dos dados utilizando aprendizado de máquina
Com o intuito de explorar a análise dos dados, utilizou-se um algoritmo de aprendizado de máquina para possibilitar uma análise dos dados mais rápida, partindo do pressuposto que o algoritmo pudesse identificar padrões.
Nesse estudo, optou-se pelo algoritmo chamado de K-Means, um dos mais simples algoritmos de aprendizado não supervisionados que resolve o problema de clusterização. Esse algoritmo utiliza como entrada um valor que representa o número de clusters (K) que se deseja gerar e um conjunto de dados. Os dados coletados foram organizados no
4.3. RESULTADOS 34
formato de uma matriz binária, tendo nas linhas, os instantes em que foram efetuadas as coletas e, nas colunas, os IDs dos dispositivos encontrados. Uma posição da matriz com valor um (1) representa que o dispositivo referente à coluna foi encontrado na coleta realizada no instante indicado pela linha.
Para encontrar o valor mais apropriado para K, foram realizadas diversas execuções do algoritmo variando o valor de K de 3 a 21. O melhor resultado foi alcançado com 7 clusters. A implementação do K-Means utilizada faz parte de uma biblioteca do Python4.
As Figuras 4.6 e 4.7 mostram os resultados da coleta feita pelo MyLife1 do dia 27 de janeiro de 2017 ao dia 31 de janeiro de 2017. O eixo X indica a linha do tempo e o eixo Y mostra o ID de cada dispositivo capturado, sendo que a Figura 4.7 apresenta também os rótulos das regiões onde o usuário esteve de acordo com o gabarito por ele fornecido. A Figura 4.8 mostra o mesmo conjunto de dados organizados em clusters a partir da execução do algoritmo K-Means.
4.3. RESULTADOS 35
Figura 4.6: Gráfico com o identificador de cada dispositivo Bluetooth encontrado versus o tempo.
4.3. RESULTADOS 36
Figura 4.7: Gráfico com o identificador de cada dispositivo Bluetooth encontrado versus o tempo, incluindo os rótulos de onde o usuário informou que esteve em relação ao tempo. As linhas azuis da clusterização são referentes a casa do usuário, onde possui um mapeamento preciso sobre o período em que o usuário esteve em sua residência, os mo-mentos que não possuem cores, são períodos de tempo onde não foi encontrando nenhum dispositivo Bluetooth no ambiente. As cores que estão em constante variação ao longo do gráfico se referem ao laboratório Miletus que continha diversos dispositivos IoT e dezenas de equipamentos com a comunicação Bluetooth.
Infelizmente, o período onde o usuário foi até a igreja e ao supermercado, não foi mapeado como novos clusters, por conta do número de clusters usado para a produção do gráfico. Mas, mesmo aumentando o número para 21 (numero máximo, passado no parâ-metro do clusters), o algoritmo não conseguiu distinguir, devido suas aparições isoladas. Entretanto, em vez de utilizar esses clusters em lugares onde o gráfico não determinou, o algoritmo acabou espalhando, principalmente dentro do espaço onde o usuário ficou no
4.4. CONSIDERAÇÕES FINAIS 37
laboratório Miletus. Sua plausibilidade se justifica devido à grande quantidade de beacons presentes nesse ambiente, sendo que alguns deles são temporários ou não estão presentes em todas as vezes que o usuário esteve no local; em conformidade com a hipótese de que esses beacons consigam definir quem esteve presente no andar, durante sua passagem pelo laboratório, passando a ideia de algo além de apenas determinar sua localização.
Qualquer número superior à 7 em K teve impacto direto na granularidade de contexto enquanto o usuário esteve dentro do laboratório Miletus. Isso ocorre devido a variação de dispositivos encontrados durante todos os momentos nos quais o usuário se dirigiu ao laboratório. Outro fator é a quantidade de vezes que ele foi ao local dado o tamanho da amostra.
No entanto, talvez seja necessário classificar melhor quem/ o que é mais importante para a clusterização, ou ainda realizar um pré-processamento desses dados para determinar melhor quais beacons são mais relevantes (considerando o contexto atrelado ao lugar).
4.4 Considerações Finais
Este capítulo investigou o uso de sinais Bluetooth para determinação de contexto associado a localização. A metodologia utilizada consistiu na coleta contínua de dados (endereços MAC de dispositivos Bluetooth) a partir do aplicativo móvel, MyLife1, desenvolvido neste trabalho.
Uma análise detalhada dos dados coletados apontou que é possível determinar contexto associado a localização utilizando dados de disposivos Bluetooth, em especial quando há um conjunto de dispositivos fixos, como é o caso dos beacons. Entretanto, o fato do aplicativo coletar dados continuamente teve impacto negativo no consumo de bateria do smartphone, o que inviabilizaria o uso desta metodologia por um assistente virtual, por exemplo. O capítulo seguinte apresenta uma nova metodologia, com baixo consumo energético, para descoberta de contexto.
4.4. CONSIDERAÇÕES FINAIS 38 Fig ura 4.8 : R esulta do gera do pelo K-Me ans sobre os dados coletados do dia 27 de janeiro de 2017 ao dia 31 de janeiro de 2017, usando 7 co m o o va lo r de K.
39
Capítulo 5
Reduzindo o custo energético
A aplicação MyLife2 foi desenvolvida com base em uma nova metodologia de coleta de dados para descoberta de contexto objetivando um menor consumo bateria do smartphone do que aquele observado na primeira versão do aplicativo. Nesse ínterim, utilizou-se um recurso em hardware existente em alguns aparelhos da Motorola, o SensorHub. A utilização desse recurso permite mais conhecimento em tempo real sobre a atividade que o usuário está desempenhando. Desse modo, ao contrário do aplicativo MyLife1, que faz a coleta dos dados de forma contínua, a nova versão do aplicativo analisará as informações recebidas do SensorHub para determinar em que momentos há necessidade de se fazer a coleta de dados.
5.1 Desenvolvimento
O aplicativo MyLife2 faz uso do SensorHub, desenvolvido em hardware em algumas linhas de smartphones, para ajudar a diminuir o consumo energético do dispositivo, dado que versão anterior da aplicação apresentou um consumo energético elevado. Para executar a aplicação MyLife2, foram utilizados aparelhos da linha Moto X Force, com o sistema operacional Android 6.0.1 (Marshmallow).
Para a implementação da aplicação Android, foram utilizados alguns trechos de código de propriedade da Motorola para conseguir utilizar o recurso do SensorHub em hardware, uma espécie de sensor virtual que retorna informações do estado atual do dispositivo. Os estados possíveis são: correndo; andando; parado; micro-movimento; dentro de algum veículo.
A ideia foi usar as informações desse recurso para diminuir o tempo de coleta dos dados. Dessa forma, o SensorHub informaria quando o smartphone estaria parado e, consequentemente, sobre a coleta dos sinais que poderia ser interrompida, partindo do pressuposto de que o foco está em contextos atrelados à localização física do usuário.
Optou-se também por interromper a coleta quando o SensorHub detecta que o usuário está em algum veículo, pois dependendo da velocidade, o sinal que ele possa vir a coletar será de alguns segundos - situação que, para a proposta de economizar energia, não apresenta um bom retorno.
5.1. DESENVOLVIMENTO 40
existe a necessidade de coletar informações contidas nas ondas de rádio. A Figura 5.1 apresenta um diagrama de uma máquina de estados, representativo do funcionamento do algoritmo proposto para decisão sobre a ativação ou não da coleta.
Figura 5.1: Fluxograma de coleta da aplicação MyLife2 no modo otimização de energia A Figura 5.1 mostra as ações realizadas para cada um dos estados analisados. Como pode ser notado no fluxograma apresentado, o estado de micro-movimento, que o Sen-sorHub possa vir a retornar, não é tratado. Esse estado foi ignorado pela aplicação, devido ao fato de não trazer nenhuma informação relevante ao foco de economizar bateria.
Também foi incorporada a coleta do sinal de WiFi como sendo uma expansão na coleta dos dados Bluetooth. O WiFi já vem sendo usado por alguns autores, como Zeni et al. [37], Chatzieleftheriou et al. [9], Guo and Ma [16], entre outros, como ferramenta para auxiliar na localização indoor por conta da dificuldade de utilizar sinal de GPS dentro de edifícios. Fridman et al. [15], utiliza o WiFi como complemento de localização de onde o usuário passa normalmente, a fim de identificar se o dispositivo foi roubado ou não está em posse do seu dono (informação da rotina), servindo como uma das entradas do sistema desenvolvido para validar a autenticidade do utilizador.
Além disso, o WiFi normalmente permanece fixo, podendo ser de grande ajuda para o algoritmo de aprendizado de máquina identificar com mais facilidade quais dispositivos Bluetooth são fixos ou não, melhorando o resultado, com a junção dos dispositivos na entrada do algoritmo.
Para o armazenamento dos dados, foi implementado um banco de dados dentro do sistema Android utilizando o SQLite3, que é nativo do sistema operacional e que pro-porciona mais facilidade na manipulação dos dados. Essa alteração também possibilita a coleta de mais dados sobre os dispositivos Bluetooth e WiFi, como, por exemplo, a intensidade do sinal encontrado enquanto o dispositivo efetuava a coleta.
A Figura 5.2 apresenta o modelo de banco de dados utilizado. Os seguintes dados foram coletados e armazenados:
Tabela timeline
5.1. DESENVOLVIMENTO 41
as demais tabelas para facilitar as buscas de filtro feitas em cima dos dados coletados.
Tabela battery
time_id Referência a tabela timeline.
charging Inteiro de 0 a 2 que indica (0) quando o smartphone não está sendo carregado; (1) quando o smartphone está sendo carregado por um carregador veicular; (2) quando o smartphone está sendo carregado por um dispositivo de alta potência.
level Apresenta o nível de bateria restante no smartphone variando de 1 a 100.
Tabela sensor_hub
time_id Referência a tabela timeline.
type Armazena o valor de 0 a 3 como sendo o estado atual do dispositivo, do timestamp referenciado pelo time_id em diante, informado pelo SensorHub do smartphone.
Tabela ble_device
mac_address Armazena o endereço MAC do dispositivo encontrado, gerando um identificador para o mesmo no sistema, permitindo o mapeamento na tabela ble.
Tabela wifi_device
ssid Armazena o nome visível do dispositivo encontrado.
mac_address Armazena o endereço MAC do dispositivo encontrado, gerando um identificador para o mesmo no sistema junto do campo de ssid, per-mitindo o mapeamento na tabela wifi.
Tabela ble
distance Armazena a estimativa de distância do smartphone ao dispositivo emissor do sinal, mas devido a experimentos que provaram inconsis-tência desse valor, o mesmo não foi utilizado para filtragem como se esperava durante o desenvolvimento da estrutura do banco de dados. mac_id Referência a tabela ble_device.
rssi Armazena a última intensidade de sinal captada desse dispositivo no timestamp armazenado no time_id.
time_id Referência a tabela timeline. Tabela wifi
5.2. PRÉ-PROCESSAMENTO PARA O APRENDIZADO DE MÁQUINA 42
distance Armazena a estimativa de distância do smartphone o dispositivo emis-sor do sinal, mas devido a experimentos que provaram inconsistência desse valor, o campo também não foi utilizado.
wifi_device_id Referencia a tabela wifi_device.
rssi Armazena a última intensidade de sinal captada desse dispositivo no timestamp armazenado no time_id.
time_id Referência a tabela timeline.
Figura 5.2: Modelo do banco de dados usado para a coleta do aplicativo Mylife2.
5.2 Pré-Processamento para o Aprendizado de Máquina
Devido à utilização do SensorHub com o objetivo de prolongar a vida da bateria, os dados coletados possuem lacunas no tempo, correspondentes aos intervalos em que a coleta de dados foi desativada, como mostra a Figura 5.3. Tais lacunas impactam negativamente no desempenho de algoritmos de clusterização e uma das soluções, neste caso, é fazer o pré-processamento do conjunto de dados preenchendo estas lacunas Boluki et al. [7].5.2. PRÉ-PROCESSAMENTO PARA O APRENDIZADO DE MÁQUINA 43
Figura 5.3: Fragmento da tabela para exemplificar a ausência de informação armazenada. Assim sendo, foi implementada uma solução de pré-processamento que identifica o período em que o smartphone ficou parado ou se encontra no veículo, de acordo com as informações recebidas pelo SensorHub. Nesse trecho é realizado o preenchimento dos dados, onde, em um dos conjuntos formados pelos últimos cinco segundos, terá seus dados repetidos antes do SensorHub reconhecer que o dispositivo está parado. A determinação desses 5 segundos veio pelo fato do algoritmo usado no SensorHub realizar a classificação do estado do smartphone, a partir dos dados que ficam em uma espécie de buffer, que armazena os dados em uma janela de 5 segundos aproximadamente, como a Figura 5.4 mostra a seguir.
Figura 5.4: Adição de itens durante o período onde o dispositivo ficou parado. Após o preenchimento, obtém uma matriz semelhante a Figura 5.5 e o restante do processo é realizado normalmente, passando a matriz binária para a clusterização. Lem-brando que o processo de preenchimento das lacunas só é realizado com a coleta no modo de otimização de bateria, que é quando a aplicação para de coletar, pelo fato do smartphone estar parado ou em um veículo.
5.3. METODOLOGIA 44
Figura 5.5: Tabela concluída com a adição de itens durante o período onde o dispositivo ficou parado.
5.3 Metodologia
Na realização da coleta propriamente dita, foi criado um conjunto de passos para garantir que o smartphone tivesse uma interferência mínima no consumo da bateria por outros aplicativos.
A coleta foi executada várias vezes, com diferentes configurações. Na primeira aborda-gem foram utilizados dois smartphones idênticos para comparar o consumo, mas, após aná-lises, notou-se que mesmo os dispositivos possuindo as mesmas configurações de hardware e com a mesma configuração de coleta, o consumo dos dispositivos tinha uma diferença expressiva, inviabilizando a comparação do consumo energético entre dois dispositivos.
Então, utilizou-se a comparação do consumo energético de um mesmo dispositivo, variando as configurações a cada dia. Com o objetivo de garantir que a rotina não interferisse no experimento, uma análise foi realizada com o objetivo de encontrar os dias que possuíam grande correlação das atividades e dos horários.
A coleta foi realizada durante um período de 12 horas. O smartphone era carregado durante a noite e antes de ser removido do carregador, acessava-se as configurações do aplicativo para determinar parâmetros do experimento dentro da aplicação do MyLife2. Na sequência o smartphone era removido do carregador e iniciava-se a coleta dos dados com o monitoramento da bateria.
O algoritmo usado para verificar a correlação, verifica os tempos em que o usuário estivesse parado, andando, correndo e dentro do veículo fossem iguais ou semelhantes ao longo das 12 horas analisadas, junto a uma rotina semelhante, ou seja, tenha frequentados os mesmos locais.