Академический Документы
Профессиональный Документы
Культура Документы
CAMPUS QUIXAD
BACHARELADO EM SISTEMAS DE INFORMAO
QUIXAD CEAR
2016
EMMANUEL CAIN ALVES DE MELO
QUIXAD CEAR
2016
Dados Internacionais de Catalogao na Publicao
Universidade Federal do Cear
Biblioteca Universitria
Gerada automaticamente pelo mdulo Catalog, mediante os dados fornecidos pelo(a) autor(a)
Aprovada em:
BANCA EXAMINADORA
Este trabalho prope o desenvolvimento de uma plataforma para mapeamento de salas de aula
atravs da tecnologia do Bluetooth Low Energy (BLE), com o objetivo de fornecer informaes
sobre as salas de aula, como: nmero da sala, nmero do bloco, aula atual, docente, disciplina,
campus, instituio, horrio de incio e fim da aula, aula anterior e prxima aula, que sero
mostrados aos usurios atravs de uma aplicao mvel. Trazendo dessa forma, o conceito de
Internet das Coisas (IoT) para as salas de aula e facilitando o trabalho de alunos e professores,
principal pblico alvo deste projeto.
Palavras-chave: Bluetooth Low Energy. Internet das Coisas. Aplicaes Mveis. Salas de Aula
Inteligentes.
ABSTRACT
This work proposes the development of a platform for mapping classrooms using Bluetooth Low
Energy technology (BLE), with the objective of providing information about the classrooms,
such as: room number, block number, current class, teacher, discipline, campus , Institution,
start and end times of the class, previous class and next class, which will be shown to the users
through a mobile application. Bringing this way, the Internet of Things (IoT) concept to the
classrooms and facilitating the work of students and Teachers, the main target for this project.
Keywords: Bluetooth Low Energy. Internet of Things. Mobile Applications. Smart Classrooms
LISTA DE FIGURAS
IP Internet Protocol
SO Sistema Operacional
TI Tecnologia da Informao
1 INTRODUO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2 FUNDAMENTAO TERICA . . . . . . . . . . . . . . . . . . . . . . 15
2.1 Internet das Coisas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Bluetooth de Baixa Potncia . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 Beacons BLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4 MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Objetivos especficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4 TRABALHOS RELACIONADOS . . . . . . . . . . . . . . . . . . . . . 28
5 PROPOSTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.1 Arquitetura do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.1.1 Mdulo Web Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.1.2 Mdulo Arduino Beacon . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.1.3 Mdulo Aplicao Mvel . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.2 Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.2.1 Protocolo e Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6 APRESENTAO E ANLISE DOS RESULTADOS . . . . . . . . . . 43
6.1 Avaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7 CONSIDERAES FINAIS . . . . . . . . . . . . . . . . . . . . . . . . 50
REFERNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
13
1 INTRODUO
Pode-se entender o termo Internet das Coisas, ou Internet of Things (IoT), como
ficou conhecido, como sendo um conjunto de tecnologias que engloba e conecta tudo e qualquer
objeto no mundo fsico atravs de uma representao virtual desses objetos e da utilizao de
um identificador nico que os representa (LEE et al., 2015). Tambm pode ser entendido, como
um fenmeno ou habilidade, em que vrios objetos do cotidiano, como automveis, geladeiras,
foges entre outros, se conectam atravs da internet e trocam informaes entre si, monitoram e
reagem aes humanas (EVANGELATOS; SAMARASINGHE; ROLIM, 2012).
Ambas as definies reforam a ideia de objetos tecnologicamente avanados que
podem se conectar a internet e tem a habilidade de trocarem dados entre si, reagindo a
determinadas aes humanas. Esta ideia de IoT, transmitida pelos autores Lee et al. (2015) e
Evangelatos, Samarasinghe e Rolim (2012) ser utilizada durante todo este trabalho.
O conceito de Internet das Coisas, somado a algumas tecnologias, pode ser utilizado
para auxiliar empresas, consumidores, professores, alunos, empregados e a populao de modo
geral na realizao de suas atividades e em suas vidas cotidianas. A dificuldade na obteno
de informaes pelos alunos sobre determinados locais, como salas ou laboratrios de uma
universidade, ou ainda constantemente atualizar as informaes referentes a estes locais
um problema que pode ser resolvido com IoT, onde a sala comunicaria essas informaes
aos alunos. Um mundo conectado e acessvel, onde as informaes so obtidas quase que
instantaneamente, algo que vem sendo cada vez mais real e disponvel atravs da Internet das
Coisas.
Dentro da rea de conhecimento da IoT, temos os prdios inteligentes, ou Smart
Buildings que podem ser definidos como construes que fornecem um gerenciamento dos
servios de consumo de energia, gerncia de medidas anti-desastres e promovem solues para
aumentar o conforto de seus ocupantes e a eficincia das tarefas realizadas (AGARWAL; WENG,
2012).
Uma das principais razes por trs da construo de prdios inteligentes e pela
popularizao do conceito, o conforto decorrente do alto nvel de automao que os prdios
inteligentes provm. Poder controlar a temperatura da casa de qualquer local, refrigerando-a ou
aquecendo-a para que a temperatura dentro da casa esteja perfeita, antes mesmo de se chegar na
casa, ou ainda, receber avisos da geladeira no smartphone toda vez que um alimento acabar ou
estiver perto do fim so alguns exemplos da automao proveniente da utilizao do conceito de
14
IoT.
Em uma construo inteligente possvel encontrar diversos tipos de componentes
que empregam o conceito de IoT, como a criao de uma rede de comunicao machine-to-
machine entre dispositivos de automao, torneiras que ajustam a temperatura da gua de
acordo com a temperatura ambiente e sensores que coletam e enviam informaes sobre o local.
Esses sensores podem ser utilizados para coletar informaes, tais como: nmero de pessoas,
temperatura atual, taxa de luminosidade, nvel de CO2 no ambiente, e muitos outros (ZAFARI;
PAPAPANAGIOTOU; CHRISTIDIS, 2015). Alguns outros exemplos de componentes que
utilizam-se do conceito de IoT para criao de prdios inteligentes so mostrados no projeto IoT
Home of the Future da IEEE 1 .
Em outras palavras, esses componentes possibilitam a construo ter um crebro
(SNOONIAN, 2003), permitindo-lhe tomar decises, como aumentar ou baixar a temperatura de
uma sala com base no nmero de ocupantes no local ou mostrar uma determinada informao
sobre um contedo de uma aula para um aluno com base na sua proximidade da sala.
sobre esse contexto, de Internet das Coisas e Prdios inteligentes que esse projeto
trabalha, com o objetivo geral de desenvolver uma plataforma para mapear salas de aula e
fornecer informaes sobre as mesmas, como: identificao da sala, aula atual, professor atual,
horrio de inicio e fim da aula, instituio e prxima aula e aula anterior, visando a implantao
da IoT como ferramenta para facilitar o trabalho de professores e alunos, principal pblico alvo
deste projeto.
Alm da seo de introduo, este trabalho estruturado da seguinte maneira: 2
- Fundamentao Terica, que mostra os conceitos chaves em que este trabalho se baseia,
como IoT, BlueTooth de Baixa Potncia, Beacon e MQTT; 3 - Objetivos, onde se exibido
o objetivo geral e objetivos especficos deste trabalho; 4 - Trabalhos Relacionados, que lista
algumas abordagens utilizadas para implantao da IoT, atravs do BlueTooth de Baixa Potncia
e Beacon; 5 - Proposta, onde se mostrado a arquitetura adotada na soluo para o problema
que este trabalho se dispe solucionar, bem como os mdulos que compem o sistema; 6 -
Apresentao e anlise dos resultados, onde se analisado os resultados gerados durante o
projeto e tambm onde ocorre a validao desses resultados; e por fim a seo 7 - Consideraes
finais, onde se feita as consideraes finais e diretrizes futuras para este trabalho.
2 FUNDAMENTAO TERICA
Esta seo apresenta alguns conceitos bsicos sobre o trabalho que devem ficar bem
claros para que se possa compreender o contexto ao qual o projeto se aplica e a razo pela qual
certas decises foram tomadas. Primeiramente explicado o principal conceito chave do trabalho,
Internet das Coisas, que o principal pilar onde este trabalho se sustenta, posteriormente se
falado sobre Bluetooth de Baixa frequncia, uma tecnologia que est em ascenso e que uma
das maneiras mais recentes de se aplicar o conceito de IoT, depois abordado o conceito de
Beacon BLE, que so dispositivos cujo o objetivo transmitir uma mensagem em broadcast para
dispositivos em curto/mdio alcance atravs da utilizao do Bluetooth de Baixa frequncia, e
por fim, falado sobre o protocolo de comunicao MQTT, bastante utilizado em aplicaes IoT.
O termo Internet das Coisas relativamente novo e foi formalizado pela primeira
vez por Kevin Ashton no ano de 1999 (ASHTON, 2009), pesquisador e criador do sistema
global para sensores Radio Frequency Identification (RFID), que uma tecnologia de rdio de
curto alcance usada para mapear e transmitir informaes digitais, na sua maioria, atravs de
dispositivos conhecidos como TAGs Inteligentes (LANDT, 2005) e (KORTUEM et al., 2010).
Kevin Ashton no contexto de gesto de cadeia de abastecimento, definiu o termo IoT como
obteno de informaes atravs de sensores computacionais (ASHTON, 2009). Apesar do
pouco tempo de sua definio, o termo vem ganhando uma crescente popularizao por enfatizar
a representao virtual do mundo fsico e das coisas que o compe para permitir automao
de aplicaes que auxiliem as pessoas em suas tarefas (TAKALO-MATTILA; KILJANDER;
SOININEN, 2013). Porm, boa parte do sucesso do termo tambm se deve, aos vrios desafios
enfrentados e pelas rduas conquistas adquiridas por seu precursor RFID, passadas tempos antes,
abrindo as portas para o conceito de automao (WANT, 2006).
A perspectiva de Internet das Coisas como ferramenta que auxilia no dia-a-dia das
pessoas, contribui para que o termo se torne cada vez mais popular. Council (2008) inclui IoT
como uma das seis tecnologias que mais crescem na rea da Tecnologia da Informao (TI)
e previu que at o ano de 2025, a Internet das Coisas estar presente em tudo, incluindo em
moblias, eletrodomsticos e at mesmo embalagens de alimentos.
Pettey e Meulen (2012), classificaram a IoT no ano de 2012, como sendo uma das
16
Hype Cycle uma pesquisa que leva em considerao adoo, maturidade, impacto
nas aplicaes da atualidade e surgimento de tecnologias especificas. A pesquisa ainda nos
mostra uma elevao no pico de expectativas inflacionadas (peak of inflated expectations), como
podemos ver na figura 2, confirmando a previso de Pettey e Meulen (2012).
17
1 https://www.google.com.br/trends/
18
Bluetooth Low Energy (BLE), Bluetooth de Baixa Potncia, Bluetooth 4.0 ou ainda
Smart Bluetooth um tipo de tecnologia de conexo sem fio desenvolvida pelo Grupo de Interesse
Especial sobre Bluetooth (Bluetooth Special Interest Group) e pode ser entendida como uma
especificao, ou funcionalidade que integra o Bluetooth desde 2010, a partir de sua verso 4.0
(BLUETOOTH, 2010b).
Bluetooth Low Energy possui algumas vantagens comparado ao Bluetooth Clssico,
vantagens estas que o tornam mais inteligente ao proporcionar mais funcionalidades para
20
os desenvolvedores, fabricantes e para os usurios que tero uma melhor experincia com IoT
fornecida pelo BLE. Segundo Bluetooth (2010a), essas vantagens fazem do BLE uma das
tecnologias mais recomendadas para se empregar a Internet das Coisas, como as listadas abaixo:
Promove a IoT atravs do suporte a diversas opes de conexo, como: Internet Protocol
version 6 (IPv6), 6LoWPAN (IPv6 over Low power Wireless Personal Area Networks) e
Bluetooth Smart Gateways;
Baixo consumo de energia, sendo capaz de funcionar por quase um ano com uma clula
de bateria do tamanho de uma moeda;
Capacidade de mltiplas conexes, onde temos um BLE central, chamado de BLE master
que responsvel por aceitar, gerir e controlar as conexes de vrios outros dispositivos
que iro requisitar conexo, e so conhecidos como BLE slaves.
Envio de arquivos para diversos dispositivos ao mesmo tempo, graas a capacidade de s
permitir o envio de pequenas mensagens de no mximo 1 Mbps (Megabite por segundo), o
BLE consegue enviar essas mensagens relativamente pequenas em broadcast para todos
os BLE slaves conectados.
Capacidade de enviar pequenas quantidade de bytes em broadcast sem a necessidade de
criar uma conexo.
Fornecer informaes de sensores dos dispositivos que o utilizam, como: porcentagem
da bateria, heixo de rotao, indicador de fora de sinal recebido ou RSSI (Received
Signal Strength Indicator), atravs do servio de response sobre a mensagem em broadcast
enviada.
Baixo custo, encontrando no mercado, produtos com a tecnologia por menos de $10,00
dlares.
O Bluetooth de Baixa Potncia vem sendo muito usado em sistemas de localizao indoor.
A Apple, empresa Norte-Americana que projeta e desenvolve produtos eletrnicos, utilizou a
tecnologia do BLE para lanar o Ibeacon, um dispositivo capaz de localizar dispositivos IOS
(Iphone Operating System) prximos que possuam a tecnologia BLE e enviar-lhes informaes
com base na localizao desses dispositivos (CONTE et al., 2014).
Para o futuro, previsto que o BLE esteja presente em mais de 1 bilho de
dispositivos devido ao crescente uso da tecnologia do Bluetooth Clssico, utilizada em celulares,
carros, notebooks, aparelhos de som, dentre vrios outros tipos de dispositivos. Esta
popularizao do Bluetooth Clssico serve como uma espcie de alavanca para impulsionar o
21
Um Beacon BLE pode ser entendido como um dispositivo que utiliza da Tecnologia
do Bluetooth low Energy para transmitir uma mensagem em broadcast para todos os dispositivos
que estejam em um raio de cerca de 100 metros e possuam a funo BLE ativada (ZAFARI;
PAPAPANAGIOTOU, 2015). Os dispositivos, geralmente smartphones e tablets, reagem a essa
mensagem realizando alguma ao referente a mensagem enviada.
importante frisar que Beacons so dispositivos perifricos de comunicao e no
devem ser utilizados para trabalhar com grandes volumes de dados e sim, apenas transmitir
pequenas mensagens contendo a informao desejada. Como disse Patrick Leddy, chefe executivo
e fundador da empresa Pulsate - mobile marketing firm, os Beacons funcionam apenas como
uma espcie de farol (por isso a nomenclatura Beacon, do portugus, farl), apenas enviando
mensagens com uma pequena quantidade de dados em broadcast para os dispositivos ao redor,
os informando sobre sua existncia (STATLER, 2016).
Na figura 4, podemos ver como uma mensagem enviada por um Beacon BLE
estruturada:
22
PAPAPANAGIOTOU, 2015).
Na figura 6, podemos ver como o protocolo IBeacon est estruturado, dentro do
pacote de mensagem BLE.
Alm dos Beacons serem usados como ferramentas para calcular a localizao de
determinada aplicao e ser utilizado em sistemas de localizao indoor de alta preciso, sua
24
principal utilizao na transmisso de dados para dispositivos prximos, sendo bastante teis
para transmitir informaes especficas para os dispositivos com base na sua localizao atual.
Por exemplo, o Beacon pode mostrar uma informao sobre um determinado produto de uma
loja a um cliente que se aproxima de determinado Beacon, ou mostrar descontos quando se
passa em frente a um estabelecimento, ou ainda informar qual aula est sendo ministrados em
determinada sala, quando um aluno se aproxima do local.
A Figura 8 exemplifica uma aplicao dos Beacons em uma loja, onde os cliente
entram em uma regio denominada Beacons Zone e recebem informaes sobre os produtos,
cupons de descontos personalizados, informaes sobre o caminho mais fcil para chegar a seo
onde determinado produto est localizado e novidades sobre a loja.
2.4 MQTT
3 OBJETIVOS
O objetivo geral deste trabalho desenvolver uma plataforma para mapear salas de
aula, a qual ir fornecer informaes sobre as mesmas, tais como: identificao da sala, atravs
do nmero da sala e bloco onde se encontra; nome da disciplina da aula atual; nome do docente
que est ministrando a aula atual; horrio de incio e fim da aula, instituio; prxima aula e aula
anterior, visando a implantao da IoT como ferramenta para facilitar o trabalho de professores e
alunos.
Os seguintes objetivos especficos devem ser atingidos para que se possa concluir o
trabalho:
Criar um Beacon utilizando uma placa de prototipao para programao de software
embarcado;
Desenvolver um aplicativo mobile que ir receber as informaes enviados pelo Beacon e
apresent-las ao usurio;
Implementar um servidor web que ser utilizado pelos docentes para atualizar as
informaes transmitidas pelo Beacon;
Implantar e testar o projeto em um ambiente real de execuo.
28
4 TRABALHOS RELACIONADOS
Como dito na seo 1 de introduo deste trabalho, o conceito de IoT pode ser
entendido como um conjunto de tecnologias que engloba e conecta tudo e qualquer objeto no
mundo fsico, provendo uma troca de informaes destes objetos (LEE et al., 2015), porm uma
das principais dificuldades encontradas por quem quer empregar o conceito de IoT, seja em
empresas, salas de aula, construes ou reas de convivncia prover essa conexo, ou ainda,
realiz-la de forma independente provendo o mximo possvel de automao sem que para isso o
usurio deva interagir para que ocorra o funcionamento do sistema.
A proposta de soluo deste problema varia muito conforme a escolha das tecnologias
que se pretende trabalhar. Khoo (2015), por exemplo, prope uma soluo para automao
de conexes mobile para interao com um dispositivo de vdeo atravs de um servidor, que
por sua vez ir gerenciar estas conexes. O autor aponta em seu trabalho alguns benefcios
gerados pela utilizao da IoT, porm tambm mostra algumas dificuldades enfrentadas pelo
seu uso, como garantir conexes atravs de um identificador nico para um grande nmero de
dispositivos conectados a internet. Com base nesse problema, o autor realiza um estudo de
algumas tecnologias e lista os benefcios e limitaes das mesmas. Depois o autor escolhe as
tecnologias disponveis que melhor se adaptam ao seu contexto.
Khoo (2015) escolhe a ferramenta IBeacon da Apple, equipada com a tecnologia
BLE (BlueTooth Low Energy), assim como a tecnologia BPAN (BlueTooth Personal Area
Network), que se trata de uma outra especificao do BlueTooth, como o BLE. A soluo do
autor para o problema encontrado consiste em utilizar a tecnologia BPAN para prover acesso
um servidor atravs de uma rede de conexes IP (Internet Protocol ou Protocolo de internet),
sobre o BlueTooth. O Autor tambm estrutura sua plataforma criada com essas tecnologias no
modelo Cliente-Servidor, onde uma placa Raspberry Pi faz a funo de servidor enquanto uma
aplicao mobile desenvolvida em Android faz o papel de cliente.
O autor no deixa claro onde ser implantado seu projeto, porm informa que a
plataforma deve ser capaz de informar aos usurios sobre sua prpria existncia e deve fornecer
uma conexo de forma automtica e instantnea aos seus usurios. Atravs dos resultados obtidos
e da anlise dos mesmos, Khoo (2015) deixa claro a capacidade da plataforma desenvolvida por
ele e a necessidade das ferramentas escolhidas. Os resultados obtidos pelo autor ajudaram nesse
trabalho na escolha das ferramentas trabalhadas pelo autor e pelo modelo da estrutura do projeto
desenvolvido por Khoo (2015).
29
aplicao por sua vez, requer a resoluo do ucode por um servidor, aps recuperar a informao,
a aplicao retorna a aplicao mvel do usurio, o endereo no banco de dados referente ao
objeto de interesse. Por fim, a aplicao do usurio utiliza este endereo para consultar o banco
de dados e obter as informaes desejadas sobre o determinado objeto.
Na abordagem de Takalo-Mattila, Kiljander e Soininen (2013) tambm criado uma
aplicao mobile para dispositivos IOS que escaneia todos os Smart Bluetooth Beacons vizinhos
ao dispositivo com o objetivo de mapear e mostrar informaes sobre esses objetos representados
atravs dos Smart Bluetooth Beacons. Assim como na proposta de Takalo-Mattila, Kiljander
e Soininen (2013) usaremos os beacons desenvolvidos para representar algo do mundo fsico,
no caso as salas de aula, como tambm criaremos uma aplicao mobile, porm a aplicao
ser para dispositivos Android, com o objetivo de apresentar as informaes referentes a sala,
entretanto estas informaes estaro presentes tanto no servidor, como na aplicao, atravs de
um banco local, solucionando o problema de falta de conexo com a internet.
31
5 PROPOSTA
O sistema proposto neste trabalho consiste em trs mdulos, como podemos ver na
figura 10: um Web Service desenvolvido utilizando NodeJS (JavaScript), que tambm possui
uma interface de usurio, que por sua vez foi desenvolvida utilizando AngularJS1 e serve para
armazenar e repassar as informaes relacionadas s salas de aula para os Beacons especficos;
uma plataforma de prototipagem Arduino UNO com um mdulo Bluetooh Low Energy e um
Ethernet Shield, que recebe atravs da rede as informaes que so envidas pelo Web Service; e
por fim, um mdulo para dispositivos mveis Android, que uma aplicao para a plataforma
Android, utilizada para mostrar as informaes das salas para os usurios.
A arquitetura escolhida baseada na arquitetura cliente-servidor, onde se tem dois
principais clientes, o Arduino Beacon e a Aplicao Mvel. O servidor web utiliza o MongoDB
para armazenar as informaes cadastradas atravs da interface de usurio, essas informaes
sero recuperadas posteriormente para serem enviadas para o Arduino Beacon, que por sua vez
ir repassar a referencia dessas informaes para a aplicao mvel mostr-las ao usurio. Esta
comunicao entre os mdulos do sistema ser posteriormente explicada com mais detalhes.
Um dos problemas encontradas nos modelos pesquisados a dependncia da conexo
com Web Server que a aplicao mobile possui, tornando impossvel mostrar alguma informao
ao usurio, caso no haja essa conexo. Pensando em solucionar esse problema, criamos um
banco local para a aplicao, que utilizado quando no se tem conexo com o servidor e pode
1 https://angularjs.org/
32
3 https://www.mongodb.com/
34
15 m e s s a g e += i n t T o H e x ( o b j e c t . keyCampus , 2 ) ;
m e s s a g e += i n t T o H e x ( o b j e c t . k e y D i s c i p l i n a P r e v i o u s , 2 ) ;
17 m e s s a g e += i n t T o H e x ( o b j e c t . k e y D i s c i p l i n a N e x t , 2 ) ;
// Hora de fim
19 m e s s a g e += i n t T o H e x ( new D a t e ( o b j e c t . t i m e s t a m p E n d ) . g e t H o u r s ( ) + 1 , 2 ) ;
m e s s a g e += i n t T o H e x ( o b j e c t . k e y H i s t o r i c o , 2 ) ;
21 m e s s a g e += i n t T o H e x ( 1 , 2 ) ;
m e s s a g e += i n t T o H e x ( 1 , 2 ) ;
23 // Minuto de fim
m e s s a g e += i n t T o H e x ( new D a t e ( o b j e c t . t i m e s t a m p E n d ) . g e t M i n u t e s ( ) + 1 , 2 ) ;
25 // Retorna a mensagem mapeada com os identificadores das informaces
c a l l b a c k ( message ) ;
27 } ) ;
Aps criada, a mensagem com as informaes referentes sala ser enviada para
o Beacon e posteriormente ser transmitida por ele. Para tal, utilizamos o Mosca, um MQTT
Broker para NodeJS, leve e rpido, para publicar em um tpico gerado dinamicamente com base
nas informaes cadastradas sobre o Beacon. A seguir segue o cdigo em JavaScript referente a
esta parte.
1 e v e n t o s . map ( f u n c t i o n ( v ) {
Beacon . getByKey ( v . keyBeacon , f u n c t i o n ( e r r , d a t a ) {
3 if ( err || ! data || d a t a . l e n g t h == 0 ) {
c o n s o l e . l o g ( "Erro ao atualizar evento!" ) ;
5 } else {
var b e a c o n = d a t a [ 0 ] ;
7 _ _ g e t I n s t i t u i c a o C a m p u s ( v . k e y I n s t i t u i c a o , v . keyCampus , f u n c t i o n ( i n s t i t u i c a o ,
campus ) {
Evento . g e n e r a t e M e s s a g e ( v , f u n c t i o n ( message ) {
9 var t o p i c = i n s t i t u i c a o [ 0 ] . name . t o U p p e r C a s e ( ) + "/" + campus [ 0 ] . name .
t o U p p e r C a s e ( ) + "/" + b e a c o n . name ;
c o n s o l e . l o g ( "Compartilhando o evento [" + m e s s a g e
11 + "] com o beacon " + b e a c o n . name + " width " + t o p i c ) ;
__mosca . p u b l i s h ( t o p i c , m e s s a g e ) ;
13 }) ;
})
15 }
})
17 } ) ;
O shield Ethernet encaixado sobre a placa Arduino Uno, estendendo suas portas de
sada, porm o shield Ethernet utiliza os pinos 10, 11, 12 e 13 para o envio e recebimento de dados.
Deve-se prestar bastante ateno nesse detalhe, pois para evitar conflitos entre informaes no
se deve ligar nada nessas portas. Sendo assim o modulo BLE foi ligado a outras sadas PWM
(Pulse Width Modulation), no caso as sadas 5 e 6 do shield Ethernet, como mostrado a figura 11
desenvolvida utilizando a ferramenta Fritzing4 , que retrata a comunicao entre os mdulos do
Arduino para formar o Arduino Beacon.
6 https://www.mysql.com/
3 t v B l o c o . s e t T e x t ( b l o c o ! = n u l l ? " B l o c o " + b l o c o . getName ( ) : " . . . " ) ;
t v D o c e n t e . s e t T e x t ( d o c e n t e ! = n u l l ? d o c e n t e . getName ( ) : " . . . " ) ;
5 t v D i s c i p l i n a . s e t T e x t ( d i s c i p l i n a ! = n u l l ? d i s c i p l i n a . getName ( ) : " . . . " ) ;
t v I n s t i t u i c a o . s e t T e x t ( i n s t i t u i c a o ! = n u l l ? i n s t i t u i c a o . getName ( ) : " . . . " ) ;
7 tvCampus . s e t T e x t ( campus ! = n u l l ? campus . getName ( ) : " . . . " ) ;
t v A u l a A n t e r i o r . s e t T e x t ( a u l a A n t ! = n u l l ? a u l a A n t . getName ( ) : " . . . " ) ;
9 t v A u l a P r o x i m a . s e t T e x t ( a u l a P r o x ! = n u l l ? a u l a P r o x . getName ( ) : " . . . " ) ;
t v I n i c i o . s e t T e x t ( S t r i n g . f o r m a t ( "%02d " , h o r a I ) + " : " + S t r i n g . f o r m a t ( "%02d " , m i n I ) ) ;
11 t v F i m . s e t T e x t ( S t r i n g . f o r m a t ( "%02d " , h o r a F ) + " : " + S t r i n g . f o r m a t ( "%02d " , minF ) ) ;
/ / Se a l g u n s d o s campos e s t i v e r n u l o , s i g n i f i c a que o b a n c o l o c a l e s t \ a d e s a t u a l i z a d o
13 i f ( ! d i a l o g S h o w e d && ( s a l a == n u l l | | b l o c o == n u l l || d o c e n t e == n u l l || d i s c i p l i n a ==
null
|| i n s t i t u i c a o == n u l l | | campus == n u l l | | a u l a A n t == n u l l
15 || a u l a P r o x == n u l l ) ) {
dialogShowed = true ;
17 / / Pede p a r a o u s u r i o a t u a l i z a r o b a n c o l o c a l
new M a t e r i a l D i a l o g . B u i l d e r ( B e a c o n A c t i v i t y . t h i s )
19 . t i t l e ( " Dados d e s a t u a l i z a d o s " )
. c o n t e n t ( " C o n e c t e com a i n t e r n e t e a t u a l i z e s e u s d a d o s ! " )
21 . p o s i t i v e T e x t ( "OK" )
. show ( ) ;
23 }
}
5.2 Interfaces
Como dito na seo 5.1.1, o Web Service cria os tpicos em tempo de execuo
de acordo com as informaes cadastradas sobre os Beacons, como por exemplo, atravs dos
campos instituio, campus, sala e nome do Beacon o web service consegue criar uma rota
e publicar as mensagens destinadas aos Beacons daquele tpico. Isso deve ocorrer porque um
Broker gerencia vrios inscritos e em vrios tpicos e responsvel por atualizar as informaes
dos tpicos a qual esses inscritos fazem parte. Entretanto, os inscritos s se inscrevem em um
tpico por vez e levando isso para o campo de atuao deste trabalho, que so salas de aula, um
Beacon instalado em uma sala, dificilmente ser removido de l, sendo assim,o tpico a qual o
Beacon est escrito deve ser fixo.
No cdigo-fonte 6, podemos ver um exemplo do Arduino Beacon se inscrevendo no
tpico UFC/QUIXADA/BEACON-0
# i n c l u d e < SPI . h>
2 # i n c l u d e < E t h e r n e t . h>
# i n c l u d e < P u b S u b C l i e n t . h>
4 // i n i c i a l i z a n d o os a t r i b u t o s p a r a o c l i e n t e e t h e r n e t .
b y t e mac [ ] = { 0xDE , 0xED , 0xBA , 0xFE , 0xFE , 0xED } ;
6 IPAddress ip (192 , 168 , 0 , 156) ;
/ / I P BROKER
8 IPAddress s e r v e r (192 , 168 , 0 , 112) ;
/ / Criando o c l i e n t e e t h e r n e t .
10 E t h e r n e t C l i e n t e t h C l i e n t ;
PubSubClient c l i e n t ( e t h C l i e n t ) ;
12 v o i d s e t u p ( ) {
14 i f ( E t h e r n e t . b e g i n ( mac ) == 0 ) {
S e r i a l . p r i n t l n ( " F a l h a ao c o n f i g u r a r E t h e r n e t u s a n d o DHCP . T e n t a n d o i p a r b i t r a r i o " ) ;
16 E t h e r n e t . b e g i n ( mac , i p ) ;
}
18 }
void loop ( ) {
20 / Ethernet /
i f ( ! c l i e n t . connected ( ) ) {
22 reconnect () ;
}
24 updater . loop ( ) ;
}
26
void r e c o n n e c t ( ) {
28 / / R e p e t e a t e c o n s e g u i r uma c o n e x a o ;
while ( ! c l i e n t . connected ( ) ) {
30 i f ( c l i e n t . c o n n e c t ( "BEACON0" ) ) {
/ / T p i c o a q u a l o Beacon i r s e i n s c r e v e r
32 c l i e n t . s u b s c r i b e ( "UFC / QUIXADA /BEACON0" ) ;
} else {
34 S e r i a l . p r i n t ( " E t h e r n e t : F a l h a ao r e c e b e r c o n e x a o ! , " ) ;
Serial . print ( client . state () ) ;
36 delay (5000) ;
}
38 }
}
O mdulo BLE envia o UUID para a aplicao mobile utilizando o protocolo IBeacon
(ver figura 6). Na aplicao Mobile, a mensagem capturada atravs da biblioteca AltBeacon7 ,
que uma biblioteca que permite os dispositivos Android utilizarem os Beacons, semelhante aos
dispositivos IOS, como mostra o Cdigo-fonte 7.
b e a c o n M a n a g e r . a d d R a n g e N o t i f i e r ( new R a n g e N o t i f i e r ( ) {
2 @Override
p u b l i c v o i d d i d R a n g e B e a c o n s I n R e g i o n ( C o l l e c t i o n <Beacon > b e a c o n s , R e g i o n r e g i o n ) {
4 i f ( beacons . s i z e ( ) > 0) {
Beacon b = b e a c o n s . i t e r a t o r ( ) . n e x t ( ) ;
6 while ( b != n u l l ) {
onBeaconReceived ( b ) ;
8 b = beacons . i t e r a t o r ( ) . next ( ) ;
}
10 }
}
12 }
7 http://altbeacon.org/
5.2.1 Protocolo e Dados
A ideia por trs da adaptao do protocolo IBeacon que ns tivemos foi aproveitar os
bytes que eram utilizados apenas como identificador para mapear as informaes de uma sala de
aula atravs de um ID, que tem um tamanho de 2 hexadecimais, para cada informao referente
a sala. A tabela 2 nos mostra como estruturado o UUID e os comandos AT necessrios para
modifica-los.
Com a mensagem enviada pelo Web Server, que como dito antes um conjunto de
IDs, o Arduino Beacon quebra essa mensagem em 4 conjuntos de 8 hexadecimais (ou 4 bytes) e
armazena cada um em uma faixa do UUID, como mostra o Cdigo-fonte 8.
v o i d c a l l b a c k ( char t o p i c , b y t e p a y l o a d , u n s i g n e d i n t l e n g t h ) {
2 S t r i n g message = " " ;
f o r ( i n t i = 0 ; i < l e n g t h ; i ++) {
4 m e s s a g e += ( char ) p a y l o a d [ i ] ;
}
6 Debug : : i ( S t r i n g ( " Mensagem r e c e b i d a [ " ) + t o p i c + " ] : " + m e s s a g e ) ;
b l e . setUUID ( 0 , m e s s a g e . s u b s t r i n g ( 0 , 8 ) ) ;
8 b l e . setUUID ( 1 , m e s s a g e . s u b s t r i n g ( 8 , 1 6 ) ) ;
b l e . setUUID ( 2 , m e s s a g e . s u b s t r i n g ( 1 6 , 2 4 ) ) ;
10 b l e . setUUID ( 3 , m e s s a g e . s u b s t r i n g ( 2 4 , 3 2 ) ) ;
}
Como o UUID utilizado para identificar os Beacons e agora est sendo utilizado
para outro fim, utilizamos o nome do modulo BLE como identificador, criando uma restrio no
servidor para que no seja possvel cadastrar dois Beacons com o mesmo nome.
43
Aps ser cadastrada, as informaes sobre a sala sero publicadas via MQTT em
um tpico que formado pela juno dos campos: instituicao/campus/beacon/. Assim que a
mensagem for publicada o Beacon j ser atualizado e comear a transmitir as informaes para
os dispositivos mveis prximos ao Beacon. A figura 14 mostra a tela de incio do aplicativo,
buscando por Beacons na proximidade.
Figura 14 Tela de incio da aplicao
mvel
6.1 Avaliao
Os testes foram executados cerca de 3 vezes para cada dispositivo nas distncias de
1,2,4,12,15 e 25 metros, escolhemos o menor valor das 3 execues para comparar os dispositivos.
A figura 17 representa a relao entre o tempo para detectar um Beacon e a distncia desse
Beacon. J a figura 18, representa a relao entre o tempo para atualizar os dados na tela e a
distncia do Beacon.
Figura 17 Tempo para reconhecer um Beacon x distncia
7 CONSIDERAES FINAIS
Com este projeto, podemos observar o quo ainda podemos explorar tecnologias
como o Bluetooth Low Energy, que surgiram h relativamente pouco tempo, mas j colecionam
uma grande contribuio no desenvolvimento e difuso do conceito de Internet das Coisas.
Ao longo do desenvolvimento deste projeto, surgiram algumas dvidas, como se era
vivel mandar grandes quantidades de dados sobre o BLE, ou se simplesmente ele foi feito s
para representar um local fsico atravs de um identificador. Entretanto uma simples anlise de
outra perspectiva nos mostrou que ainda temos muito o que aprender com essas tecnologia e que
ela pode sim se tornar o futura da IoT em um futuro no to distante.
Conclumos aqui este trabalho, fazendo uma recapitulao dos objetivos especficos
alcanados, como: criao do Beacon utilizando o Arduino e BLE; Desenvolver uma aplicao
mobile para apresentar os dados aos usurios; Criar o servidor, com um cliente front-end; e por
fim, testar o projeto. E atravs destes objetivos especficos, chegamos ao nosso objetivo geral que
era construir uma plataforma para o mapeamento de salas de aula, fornecendo informaes sobre
ela como: nmero da sala, bloco, aula atual, docente, horrio de inicio e fim da aula, instituio,
aula anterior e prxima aula.
Tudo na computao pode melhorar, e nosso projeto no diferente. Segue algumas
melhorias que podem ser aplicadas ao projeto em trabalhos futuros:
Acrescentar mais funcionalidades aplicao android, como o tempo que o aluno ficou na
sala de aula, com base no nmero de mensagens que ele recebeu do Beacon daquela sala
em um intervalo de tempo;
Propor um meio de tornar mais genrico a forma com que o mapeamento dos bytes no
UUID so feitos
Otimizar o response do BLE para conseguir mandar mais dados sem deixar o processo de
comunicao lento.
E por fim, colocar a plataforma em execuo com o objetivo de coletar dados sobre o seu
funcionamento.
Finalmente, gostaria de agradecer meu orientador Marcio Maia pela ajuda e
compreenso ao longo desse 1 ano de projeto, e estender esse agradecimento ao meu amigo
Felipe Pinho que tanto me ajudou nas horas difceis.
Todos os cdigos utilizados nesse projeto podem ser encontrados em:
https://github.com/cainammello.
51
REFERNCIAS
ASHTON, K. That internet of things thing. RFiD Journal, v. 22, n. 7, p. 97114, 2009.
BLUETOOTH, S. The bluetooth core specification, v4. 0. Bluetooth SIG: San Jose, CA, USA,
2010.
CONTE, G.; MARCHI, M. D.; NACCI, A. A.; RANA, V.; SCIUTO, D. Bluesentinel: a first
approach using ibeacon for an energy efficient occupancy detection system. In: BuildSys@
SenSys. 1st ACM International Conference on Embedded Systems For Energy-Efficient
Buildings (BuildSys) 2014: ResearchGate, 2014. p. 1119.
COUNCIL, N. Six technologies with potential impacts on us interests out to 2025. Disruptive
Civil Technologies 2008, 2008.
GARTNER. Gartners Hype Cycle. Gartner, Inc., 2012. Gartner. Disponvel em:
<http://www.gartner.com/technology/research/hype-cycles/.>
GIGAOM. With iBeacon, Apple is going to dump on NFC and embrace the internet of
things. -, 2016. Gigaom. Disponvel em: <https://gigaom.com/2013/09/10/
with-ibeacon-apple-is-going-to-dump-on-nfc-and-embrace-the-internet-of-things/>. Acesso
em: 27 maio 2016.
GLUHAK, A.; KRCO, S.; NATI, M.; PFISTERER, D.; MITTON, N.; RAZAFINDRALAMBO,
T. A survey on facilities for experimental internet of things research. IEEE Communications
Magazine, v. 49, n. 11, p. 5867, 2011.
GOMEZ, C.; OLLER, J.; PARADELLS, J. Overview and evaluation of bluetooth low energy:
An emerging low-power wireless technology. Sensors, Molecular Diversity Preservation
International, v. 12, n. 9, p. 1173411753, 2012.
GUBBI, J.; BUYYA, R.; MARUSIC, S.; PALANISWAMI, M. Internet of things (iot): A vision,
architectural elements, and future directions. Future Generation Computer Systems, Elsevier,
v. 29, n. 7, p. 16451660, 2013.
HUI, J. W.; CULLER, D. E. Extending ip to low-power, wireless personal area networks.
Internet Computing, IEEE, IEEE, v. 12, n. 4, p. 3745, 2008.
HUNKELER, U.; TRUONG, H. L.; STANFORD-CLARK, A. Mqtt-sa publish/subscribe
protocol for wireless sensor networks. In: IEEE. Communication systems software and
middleware and workshops, 2008. comsware 2008. 3rd international conference on. [S.l.],
2008. p. 791798.
KARYDIS, T. Bluetooth Interfacing with HM-10. 2015. Disponvel em:
<http://fab.cba.mit.edu/classes/863.15/doc/tutorials/programming/bluetooth.html>. Acesso em:
17 outubro 2016.
KHOO, K. C. Y. Automation of internet of things connection. Tese (Doutorado) UTAR,
2015.
KORTUEM, G.; KAWSAR, F.; FITTON, D.; SUNDRAMOORTHY, V. Smart objects as
building blocks for the internet of things. Internet Computing, IEEE, IEEE, v. 14, n. 1, p.
4451, 2010.
LAMPKIN, V.; LEONG, W. T.; OLIVERA, L.; RAWAT, S.; SUBRAHMANYAM, N.; XIANG,
R.; KALLAS, G.; KRISHNA, N.; FASSMANN, S.; KEEN, M. et al. Building smarter planet
solutions with mqtt and ibm websphere mq telemetry. [S.l.]: IBM Redbooks, 2012.
LANDT, J. The history of rfid. IEEE potentials, IEEE, Los Alamos Nat. Lab., NM, USA, v. 24,
n. 4, p. 811, 2005.
LEE, B.-u.; IM, S.-y.; LEE, S.-w.; KIM, B.; ROH, B.-h.; KO, Y.-B. The beacon identification
using low pass filter for physical web based iot services. In: IEEE. Communications,
Computers and Signal Processing (PACRIM), 2015 IEEE Pacific Rim Conference on.
Victoria, BC: IEEE, 2015. p. 354358.
MQTT, O. MQTT: MQ Telemetry Transport. 2016.
ORGANIZATION, M. MongoDB Architecture. 2016.
PEREIRA, C. R. Aplicaes web real-time com Node. js. [S.l.]: Editora Casa do Cdigo,
2014.
PETTEY, C.; MEULEN, R. Van der. Gartners 2012 hype cycle for emerging technologies
identifies"Tipping Point"technologies that will unlock long-awaited technology scenarios.
Gartner to Host Complimentary Webinar: Newsroom, 2012.
RIVERA, J.; MEULEN, R. v. d. Hype Cycle for Emerging Technologies, 2015. Gartner, Inc.,
2015. Gartner. Disponvel em: <http://www.gartner.com/newsroom/id/3114217>. Acesso em:
27 setembro 2016.
SNOONIAN, D. Smart buildings. Spectrum, IEEE, IEEE, v. 40, n. 8, p. 1823, 2003.
STATLER, S. Geofencing: Everything you need to know. In: Beacon Technologies. [S.l.]:
Springer, 2016. p. 307316.
TAKALO-MATTILA, J.; KILJANDER, J.; SOININEN, J.-P. Advertising semantically described
physical items with bluetooth low energy beacons. In: IEEE. Embedded Computing (MECO),
2013 2nd Mediterranean Conference on. 2013 2nd Mediterranean Conference on Embedded
Computing (MECO), Budva: IEEE, 2013. p. 211214.
WANT, R. An introduction to rfid technology. IEEE Pervasive Computing, IEEE, IEEE
Pervasive Computing, v. 5, n. 1, p. 2533, 2006.
XAPPSOFTWARE. is MQTT the panacea for all the problems of IoT? -, 2014.
XAppSoftware Blog. Disponvel em: <http://www.xappsoftware.com/wordpress/2014/10/20/
is-mqtt-the-panacea-for-all-the-problems-of-iot/>. Acesso em: 17 outubro 2016.