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