Revista Eletrônica da Faculdade Metodista Granbery http://re

Propaganda
 Revista Eletrônica da Faculdade Metodista Granbery
http://re.granbery.edu.br - ISSN 1981 0377
Curso de Sistemas de Informação - N. 7, JUL/DEZ 2009
UM MODELO PARA COMUNICAÇÃO REMOTA COM DISPOSITIVOS
DE DIFÍCIL ACESSO EMPREGANDO JME E BLUETOOTH
Bernardo Jacques Delgado Costa*
Wander Antunes Gaspar Valente**
RESUMO
A tecnologia Java, em razão da sua portabilidade, se tornou uma das principais plataformas
para o desenvolvimento de aplicações para dispositivos móveis, através de Java Micro Edition
(JME). Neste contexto, este trabalho procura abordar o processo de desenvolvimento de
software utilizando JME. Concomitantemente é abordada a tecnologia wireless Bluetooth e a
sua utilização no processo de comunicação entre um dispositivo móvel e um equipamento
terminal. O objetivo do presente estudo é desenvolver um protótipo para testar a viabilidade
técnica de um sistema de configuração remota, constituído de um software para envio de
parâmetros, nomeado CfgBlue, instalado em um telefone celular, que se comunica com uma
placa de testes utilizando uma conexão wireless Bluetooth, responsável por emular uma linha
serial, que interpreta as mensagens recebidas e executa as ações solicitadas através de um
firmware 1desenvolvido e gravado no microcontrolador.
PALAVRAS-CHAVE: Bluetooth. Dispositivo móvel. Java.Wireless. Configuração remota.
ABSTRACT
The Java technology, because of their portability, became one of the main platforms to
develop applications for mobile devices, through the Java Micro Edition (JME). In this
context, this work seeks to deal the software development process using JME. Accordingly it
is dealt with wireless technology Bluetooth and its use in the process of communication
between one mobile device and one terminal equipment. The objective of this work is develop
a prototype to test the technical feasibility of a system for remote configuration, consisting of
a software for transmission of parameters, named CfgBlue, installed on cell phone, that
communicates with plate of tests using a Bluetooth wireless connection, responsible for
emulate a serial line to interprets the incoming messages and executes the actions requested
through a firmware developed and recorded in microcontroller.
1
Firmware consiste em um conjunto de instruções operacionais, desenvolvidas e gravadas diretamente no
hardware de um equipamento eletrônico, de forma permanente em uma PROM, ROM, ou de modo
semipermanente em uma EPROM.
KEYWORDS: Bluetooth. Mobile device. Java. Wireless. Remote configuration.
* Bacharel em Sistemas de Informação (jun/2009) pelo Centro de Ensino Superior de Juiz de
Fora (CES/JF), Analista de Sistemas de Automação pela empresa Lupa Tecnologia e Sistemas
Ltda. E-mail: [email protected] e [email protected]
** Engenheiro Eletricista (UFJF), especialista em Ciência da Computação (UFV), mestrando
em Modelagem Computacional (UFJF), professor dos cursos de Sistemas de Informação e
Engenharia
de
Telecomunicações
do
CES/JF.
Email:
[email protected]
e
[email protected]
2 1. INTRODUÇÃO
O contínuo desenvolvimento tecnológico aliado à crescente busca por mobilidade
conduziram à popularização dos dispositivos móveis. Seguindo essa tendência, a Sun
Microsystems desenvolveu a plataforma Java Micro Edition (JME) com o intuito de prover
suporte ao desenvolvimento de software para dispositivos com restrições de memória e
processador, incluindo telefones celulares. Paralelamente a isso, foram sendo desenvolvidos
mecanismos capazes de promover uma comunicação sem fio entre esses dispositivos: as
tecnologias wireless.
Sendo assim, esse trabalho tem como objetivo analisar a plataforma JME e a
tecnologia wireless Bluetooth no contexto dos dispositivos móveis, e mostrar a integração
entre ambas em situações reais.
Para tanto o trabalho foi dividido em 5 seções incluindo esta introdução. A seção 2
aborda a motivação para o desenvolvimento deste trabalho. A seção 3 mostra o
desenvolvimento do protótipo que alia as tecnologias JME e Bluetooth. Na seção 4 são
apresentadas as considerações finais. Por fim, na seção 5, são listadas as referências
bibliográficas utilizadas.
2. MOTIVAÇÃO
Em particular, o desenvolvimento desse protótipo ocorreu após a observação de
situações onde um equipamento eletrônico, instalado em um local de difícil acesso humano,
carecia de configurações locais periodicamente. Um exemplo de ocorrência dessa situação foi
constatado em equipamentos de concessionárias de energia elétrica, que ficam localizados no
alto dos postes de energia. Durante o processo de configuração, foi possível observar que o
funcionário necessita se deslocar até o poste em questão, colocando uma escada para poder
alcançar o equipamento. Em seguida é conectado ao dispositivo um cabo de aproximadamente
dez metros para permitir que o funcionário desça do poste e conecte a outra extremidade do
3 cabo a um laptop que possui o software de configuração do fabricante do equipamento em
questão, para então realizar as configurações necessárias. Ao final do processo, o funcionário
se desloca até o alto do poste novamente para desconectar o cabo que foi utilizado, e só então
o processo de configuração está terminado.
Sendo assim, o protótipo idealizado teve o intuito de facilitar o processo de
comunicação com dispositivos localizados em regiões de difícil acesso, ou ainda em locais
onde a utilização de cabos não é viável, promovendo a interação entre usuário e equipamento
remotamente, através de uma conexão wireless Bluetooth, a fim de facilitar o processo de
comunicação.
3. MODELO PROPOSTO E PROTOTIPAÇÃO
Esta seção tem a finalidade de apresentar a aplicação do conceito, que tem como foco
a transferência de dados, leitura e escrita de parâmetros, através de uma comunicação
Bluetooth, entre um dispositivo móvel e uma placa de testes.
3.1 MODELO PROPOSTO
O modelo propõe a instalação de um adaptador Bluetooth ao equipamento terminal e o
desenvolvimento da aplicação de configuração com suporte a conexão dessa tecnologia,
permitindo a emulação de uma linha serial entre ambos para o envio e leitura de parâmetros,
eliminando a necessidade de um meio físico entre eles.
3.2 TECNOLOGIAS UTILIZADAS
O modelo apresentado utiliza as seguintes tecnologias:
a) JME:
A plataforma Java Micro Edition foi desenvolvida com o objetivo de permitir o
desenvolvimento de aplicativos para dispositivos móveis e com recursos
computacionais limitados, tais como celulares e PDA’s. Devido às limitações de
processamento e memória, os recursos da linguagem foram reduzidos nessa
plataforma, bem como a Máquina Virtual Java.
4 Visando fornecer os recursos necessários ao desenvolvedor, mas tendo em
vista as limitações computacionais, foram desenvolvidas Application Programming
Interfaces (API’s) responsáveis por prover recursos específicos e que são utilizadas
pelo programador apenas quando necessárias.
Seguindo os paradigmas da tecnologia Java, a plataforma JME tornou o
software independente do tipo de dispositivo móvel, sendo dividida nas seguintes
camadas: Perfil, Configuração e Máquina Virtual.
A camada de configuração tem o objetivo de fornecer as bibliotecas básicas
necessárias a linguagem, estabelecendo um padrão de ambiente de execução entre
os dispositivos com características semelhantes. Atualmente, o JME possui dois
tipos de configurações: Connected Limited Device Configuration (CLDC) e
Connected Device Configuration (CDC).
Já a camada de perfil possui API’s específicas, como elementos de interface
gráfica, persistência de dados e meios de comunicação, relacionadas ao tipo de
dispositivo, associando-se assim a apenas uma configuração. Os quatro perfis
existentes atualmente são: Mobile Information Device Profile (MIDP), Foundation
Profile (FP), Personal Basis Profile (PBP) e Personal Profile (PP).
Para o desenvolvimento, testes e simulação serão utilizadas as ferramentas
Integrated Development Environment (IDE) NetBeans 6.5.1 e Wireless Toolkit
2.5.2 for CLDC.
b) Bluetooth:
Bluetooth é um padrão de comunicação sem fio de curto alcance, que utiliza
tecnologia de ondas de rádio, possuindo um baixo custo e baixo consumo de
energia, para permitir conexões ad hoc sem fios entre dispositivos. As conexões
normalmente atingem a distância de 10 metros, podendo chegar a 100 metros caso
se utilize transmissores de maior potência. O Bluetooth opera na banda Industrial,
Scientific and Medical (ISM), na faixa de frequências entre 2,4 GHz e 2,4835 GHz
(BOESING, 2008).
Essa tecnologia foi idealizada e desenvolvida pela empresa Ericsson, com o
objetivo de substituir outros padrões já difundidos no mercado, como
infravermelho, conexões USB, entre outros (GHISI, 2007; SIQUEIRA, 2006).
5 Porém, através da especificação Bluetooth, tornou-se viável o desenvolvimento de
redes pessoais sem fio de baixo custo.
A estrutura básica de comunicação no Bluetooth é chamada de piconet, que
consiste em um dispositivo mestre, aquele que iniciou uma conexão Bluetooth, se
comunicando ativamente com até sete outros dispositivos, denominados escravos,
formando uma topologia em estrela, com o mestre ao centro. Piconets podem se
interconectar formando uma scatternet.
A comunicação Bluetooth utiliza um mecanismo denominado frequency
hopping (salto de frequência), que altera constantemente a frequência, através de 79
canais de frequência distintos, para combater interferências e evitar o
enfraquecimento do sinal. Existem cerca de 1600 saltos por segundo, ocorrendo
assim um salto a cada 0,625 µseg. Dispositivos em uma mesma piconet utilizam o
padrão de saltos de frequência determinado por atributos da especificação Bluetooth
e por um clock do dispositivo mestre, fazendo com que todos os dispositivos que se
comunicam com o mestre passem por um processo de identificação e sincronização.
Todo o processo de comunicação é feito entre o mestre e um escravo, não sendo
possível a comunicação direta entre escravos.
A tecnologia Bluetooth será utilizada para estabelecer a comunicação wireless
entre o aparelho celular e a placa de testes.
c)
Linguagem C:
A linguagem de programação C será utilizada no desenvolvimento do firmware
que será gravado na placa de testes, com a qual o celular irá se comunicar. O
suporte por parte das ferramentas de desenvolvimento de códigos para sistemas
embarcados, e uma base sobre a linguagem, levaram a opção da linguagem C para o
desenvolvimento. O firmware será responsável por tratar os parâmetros recebidos,
executando as solicitações desejadas. Para o desenvolvimento será utilizada a IDE
CodeVisionAVR C Compiler 1.25.5.
3.3 CONSIDERAÇÕES SOBRE O PROTÓTIPO
O protótipo foi desenvolvido com o objetivo de simular uma situação de comunicação
entre um celular e um equipamento terminal, para envio e leitura de parâmetros.
6 Como a ideia central do projeto é apenas mostrar a viabilidade de comunicação entre
os dispositivos, foram implementadas apenas as seguintes situações:
•
Envio de parâmetro para acender um led da placa.
•
Envio de parâmetro para apagar um led da placa.
•
Envio de mensagem a ser escrita no display gráfico da placa.
•
Leitura do estado atual do led.
7 3.4 COMPOSIÇÃO DO PROTÓTIPO
O projeto desenvolvido é constituído de um celular Sony Ericsson w580i2, uma placa
de desenvolvimento STK5003 e um adaptador serial Bluetooth bts1009c da SUNIX4.
3.5 FERRAMENTAS DE DESENVOLVIMENTO
Para o desenvolvimento da aplicação JME, denominada CfgBlue, foi utilizada a IDE
NetBeans 6.5.1, que dentre outras possibilidades permite o desenvolvimento de aplicações
utilizando MIDP 1.0, 2.0, 2.1 e CLDC 1.0 e 1.1 para dispositivos móveis, através da
linguagem JME, que possuem uma JVM instalada. Já para o desenvolvimento do firmware
gravado na placa STK500 foi utilizada a IDE CodeVision AVR 1.25.5 que permite o
desenvolvimento de código embarcado, e o posterior envio do código compilado, em formato
binário, para o microcontrolador. Para o protótipo desenvolvido foi utilizada a linguagem de
programação C na construção do firmware.
3.6 COMUNICAÇÃO CELULAR/PLACA
A interação entre a placa STK500 e o celular ocorre através da comunicação, via
Bluetooth, da aplicação CfgBlue, instalada no dispositivo móvel, com o adaptador serial
Bluetooth bts1009c, que conectado à placa, faz com que os dados recebidos possam ser
processados pelo firmware do microcontrolador e caso necessário, respondidos a aplicação do
celular.
3.6.1 APLICAÇÃO CFGBLUE
A aplicação CfgBlue foi desenvolvida em JME na IDE NetBeans 6.5.1, sendo
responsável por proporcionar uma interface amigável com o usuário, permitindo que ele envie
à placa os parâmetros desejados. Ao executar a aplicação o usuário deve realizar um login,
2
SONY ERICSSON. Disponível em: <http://www.sonyericsson.com>. Acesso em: 12 jul. 2009.
ATMEL. AVR STK500 User Guide. 2003. 61p. Disponível em:
<http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2735>. Acesso em: 12 jul. 2009.
4
SUNIX. BTS1009C Bluetooth to RS-232 Adapter. Disponível em:
<http://www.sunix.com.tw/cc/en/products/Datasheet/BTS1009C.pdf>. Acesso em: 12 jul. 2009.
3
8 para então, se validado, o aplicativo iniciar uma busca pelos dispositivos Bluetooth
disponíveis na área de alcance e exibi-los na tela, para posterior seleção daquele desejado,
iniciando a busca pelos serviços disponíveis e estabelecendo a conexão Bluetooth. Para
facilitar o processo de estabelecimento de conexão Bluetooth, foi utilizado o framework
Marge5, visto que ele disponibiliza, de forma simples, os métodos necessários para se iniciar
uma pesquisa por dispositivos Bluetooth e pelos serviços que estes dispositivos oferecem.
A
aplicação
foi
dividida
em
cinco
classes
denominadas
Comunicacao_BluetoothMIDlet, LoginForm, MainMenu, AplicacaoForm e InquiryList.
3.6.1.1 Protocolo de comunicação
Para a interação entre a aplicação celular e a placa de testes, foi desenvolvido um
protocolo de comunicação próprio para os pedidos de envio e leitura de parâmetros. O
protocolo foi divido em três partes, como mostra a Ilustração 1, separados por ponto e vírgula
e com um \r (Carriage return) ao fim da mensagem, ficando a estrutura na seguinte forma:
ação;variável;valor;\r .
Ação
‘1’ = Escrita
Variável
10 = Led
Valor
Quando for para o Led: 1 = Acender
20 = Display
0 = Apagar
Quando for para o Display: Qualquer valor a ser
escrito no display.
‘2’ = Leitura
10 = Led
-
ILUSTRAÇÃO 1 - Protocolo de comunicação utilizado.
No caso de uma leitura, a aplicação receberá como resposta a mesma ação e variável
solicitada, com o respectivo valor, tratando a mensagem e exibindo o valor na tela.
5
MARGE. Java Bluetooth Framework. Disponível em: <https://marge.dev.java.net/>. Acesso em: 12 jul.
2009.
9 10 3.6.1.2 Diagrama de casos de uso
A Ilustração 2 exibe o digrama de casos de uso da aplicação CfgBlue. Este diagrama
foi desenvolvido utilizando a ferramenta StarUML6.
ILUSTRAÇÃO 2 - Diagrama de casos de uso.
3.6.1.3 Diagrama de classes
A Ilustração 3 mostra o diagrama de classes da aplicação CfgBlue. Este diagrama foi
desenvolvido utilizando a ferramenta StarUML.
6
STARUML. The Open Source UML/MDA Platform. Disponível em:
<http://staruml.sourceforge.net/en/about.php>. Acesso em: 12 jul. 2009.
11 ILUSTRAÇÃO 3 - Diagrama de classes.
3.6.1.4 Diagrama de sequência
A Ilustração 4 exibe o diagrama de sequência da aplicação CfgBlue, desenvolvido
utilizando-se o plug-in UML da IDE NetBeans 6.5.1.
12 ILUSTRAÇÃO 4 - Diagrama de sequência.
3.6.1.5 Funcionamento
13 Ao iniciar a aplicação a classe MainMenu é chamada com a finalidade de
disponibilizar na tela o menu da aplicação, ilustrado na Ilustração 5, em forma de lista, com as
opções de Login e Sair.
ILUSTRAÇÃO 5 - Menu da aplicação.
No caso do usuário selecionar a opção Login, será feita uma chamada a classe
LoginForm, que exibirá a tela ilustrada na Ilustração 6.
ILUSTRAÇÃO 6 - Tela de login da aplicação.
O usuário irá preencher os campos com seu login e senha e em seguida selecionará a
opção logar. O sistema então irá validar o usuário e senha fornecidos, e em caso positivo, irá
iniciar a busca por dispositivos Bluetooth disponíveis na área de alcance do celular, utilizando
14 a interface InquiryListener importada do framework Marge e em seguida irá listá-los na tela
para o usuário como mostra a Ilustração 7.
A classe LoginForm foi projetada com o intuito de mostrar que é possível inserir
meios de segurança ao aplicativo, permitindo acesso apenas a pessoas autorizadas. Porém,
devido ao foco do trabalho, adotou-se apenas um usuário. Portanto a classe verifica apenas se
o usuário digitado é Bernardo e se a senha é 12345.
ILUSTRAÇÃO 7 - Tela de busca e de dispositivos encontrados.
Ao selecionar um dispositivo é iniciada uma busca, através da interface
ServiceSearchListener também importada do framework Marge, pelos serviço oferecidos por
ele e em seguida é aberta uma conexão serial ponto a ponto entre os dispositivos, através do
protocolo de comunicação Bluetooth RFCOMM. Após estabelecida a conexão, a classe
AplicacaoForm é chamada. Esta classe tem a finalidade de fornecer uma interface com o
usuário para envio e leitura de parâmetros, como pode ser visto na Ilustração 8, e promover a
comunicação com o firmware, através de um protocolo de comunicação desenvolvido.
15 ILUSTRAÇÃO 8 - Tela para envio e leitura de parâmetros.
O usuário tem as opções de ler o estado do led da placa, se está aceso ou apagado, e
enviar uma requisição para que ele acenda ou apague. Além disso pode ainda enviar uma
mensagem a ser escrita no display da placa.
3.6.2 FIRMWARE- STK 500
Para integração da placa STK500 com a aplicação CfgBlue foi desenvolvido um
firmrware, apresentado no Anexo B, em linguagem C, utilizando a IDE CodeVison AVR
1.25.5, que foi posteriormente gravado no microcontrolador ATMEGA-167.
A principal função do firmware é receber uma mensagem, baseada no protocolo de
comunicação desenvolvido, enviada pela aplicação CfgBlue, via serial, e interpretá-la,
tomando as ações solicitadas.
4. CONCLUSÃO
A tecnologia dos dispositivos móveis, bem como as tecnologias de comunicação
wireless, têm evoluído em ritmo acelerado. Atualmente, dispositivos com poucos recursos
computacionais podem se comunicar com outros equipamentos através de um padrão de
tecnologia wireless suportados por ambos.
7
ATMEL. ATmega16A Datasheet. 2008. 352p. Disponível em:
<http://www.atmel.com/dyn/products/datasheets.asp?family_id=607#760>. Acesso em: 12 jul. 2009.
16 O presente trabalho teve o objetivo de pesquisar as tecnologias que possibilitassem
uma comunicação wireless entre um dispositivo móvel e um equipamento terminal e,
posteriormente, desenvolver um protótipo baseado nesse modelo.
A implementação apresentada buscou mostrar que um dispositivo como um celular é
capaz de controlar um equipamento terminal através de uma tecnologia wireless.
Foram realizados testes utilizando os modelos de celular Sony Ericsson w580i e
Motorola z3, e em ambos os casos o projeto proposto respondeu satisfatoriamente ao que era
esperado. Através da integração entre hardware e software, o modelo do projeto pode ser
utilizado em qualquer sistema que utilize uma comunicação wireless entre dispositivos,
através de uma emulação de linha serial, de acordo com a sua necessidade. Eliminando assim
a necessidade de meios físicos de interconexão, o que evita muitas complicações quando se
trata de equipamentos carentes de configuração periódica que se localizam em locais de difícil
acesso, ou ainda em prédios históricos, por exemplo, onde não é permitida a passagem de
cabos pelas paredes.
5. REFERÊNCIAS BIBLIOGRÁFICAS
ATMEL. ATmega16A Datasheet. 2008. 352p. Disponível em:
<http://www.atmel.com/dyn/products/datasheets.asp?family_id=607#760>. Acesso em: 12
jul. 2009.
________. AVR STK500 User Guide. 2003. 61p. Disponível em:
<http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2735>. Acesso em: 12 jul.
2009.
BOESING, A. C. Pagamento Eletrônico: estudo teórico e prototipação de um sistema
baseado em smart card para transações ponto a ponto em dispositivos móveis utilizando
Bluetooth. 129f. Trabalho de Conclusão de Curso (Graduação em Ciências da Computação) Centro Universitário Feevale, Novo Hamburgo, 2008.
GHISI, B. C. Marge: framework para integração de aplicações Java via Bluetooth. 147f.
Trabalho de Conclusão de Curso (Graduação em Sistemas de Informação) - Universidade
Federal de Santa Catarina, Florianópolis, 2007.
MARGE. Java Bluetooth Framework. Disponível em: <https://marge.dev.java.net/>.
Acesso em: 12 jul. 2009.
17 SIQUEIRA, T. S. de. Bluetooth – Características, protocolos e funcionamento. Campinas:
Universidade Estadual de Campinas, 2006. Disponível em:
<http://www.ic.unicamp.br/~ducatte/mo401/1s2006/T2/057642-T.pdf>. Acesso em: 12 jul.
2009.
SONY ERICSSON. Disponível em: <http://www.sonyericsson.com>. Acesso em: 12 jul.
2009.
STARUML. The Open Source UML/MDA Platform. Disponível em:
<http://staruml.sourceforge.net/en/about.php>. Acesso em: 12 jul. 2009.
SUNIX. BTS1009C Bluetooth to RS-232 Adapter. Disponível em:
<http://www.sunix.com.tw/cc/en/products/Datasheet/BTS1009C.pdf>. Acesso em: 12 jul.
2009.
18 
Download