PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ
CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA
ENGENHARIA ELÉTRICA - TELECOMUNICAÇÕES
DISPOSITIVO DE COMUNICAÇÃO CAPAZ DE INTERAGIR COM
APLICATIVO CELULAR VIA TECNOLOGIA BLUETOOTH
CURITIBA
JULHO / 2008
ALISON LUIS LANDO
JEAN PIERRE JARRIER CONTI
PAULO ROBERTO WALENGA JUNIOR
DISPOSITIVO DE COMUNICAÇÃO CAPAZ DE INTERAGIR COM
APLICATIVO CELULAR VIA TECNOLOGIA BLUETOOTH
Projeto Físico apresentado à disciplina de
Projeto Final, referente ao 4º Bimestre, do
curso
de
Engenharia
Elétrica
–
Telecomunicações do Centro de Ciências
Exatas
e
de
Universidade
Tecnologia
Católica
do
da
Pontifícia
Paraná
orientação do:
Prof. Thomaz M. Navarro Verastegui
Assinatura do Orientador
CURITIBA
Julho/ 2008
sob
a
SUMÁRIO
1
INTRODUÇÂO ................................................................................................................. 6
2
TECNOLOGIA BLUETOOTH ........................................................................................... 8
3
DETALHAMENTO DO PROJETO.................................................................................. 10
3.1
Módulo Celular ........................................................................................................ 11
3.2
Módulo UCB (Unidade de Controle Bluetooth) ....................................................... 15
3.2.1
Módulo Bluetooth - GS-BT2416C1.AT1........................................................... 15
3.2.2
Kit Bluetooth de desenvolvimento - GS-BT2416C1DB.AT1 ............................ 16
3.2.3
Microcontrolador e estrutura do Hardware....................................................... 18
3.2.4
Estrutura do Software para o microcontrolador ............................................... 20
3.3
4
Protocolo ................................................................................................................. 21
Aplicação Desenvolvida ................................................................................................. 24
4.1
Hardware da Aplicação ........................................................................................... 25
4.2
Software da aplicação ............................................................................................. 26
5
TESTES E RESULTADOS............................................................................................. 28
6
CONCLUSÃO E DISCUSSÃO ....................................................................................... 29
7
REFERÊNCIAS BIBLIOGRÁFICAS ............................................................................... 30
ÍNDICE DE FIGURAS
Figura 1 - Um “computador sem fios” usando Bluetooth. ........................................................ 8
Figura 2 - Diagrama em blocos do Projeto. ........................................................................... 10
Figura 3 - Diagrama em blocos do módulo celular. ............................................................... 11
Figura 4 - Diagrama de camadas dos protocolos MIDP e CLDC. ......................................... 12
Figura 5 - Interface para as classes WindowObject e LEDObject......................................... 14
Figura 6 - Fluxo de execução do aplicativo no celular........................................................... 14
Figura 7 - Módulo GS-BT2416C1.AT1. ................................................................................. 16
Figura 8 - Kit Bluetooth, GS-BT2416C1DB.AT1.................................................................... 17
Figura 9 - Kit de desenvolvimento para PIC. ......................................................................... 19
Figura 10 - Interligação entre o Kit com o controlador PIC e o Kit/Módulo Bluetooth. .......... 19
Figura 11 - Placa desenvolvida para utilização do Módulo Bluetooth. .................................. 20
Figura 12 - Diagrama de software do controlador. ................................................................ 21
Figura 13 - Protocolo de comandos....................................................................................... 22
Figura 14 - Maquete, exemplo de aplicação.......................................................................... 24
Figura 15 - Diagrama de funcionamento da Aplicação.......................................................... 25
Figura 16 - Diagrama de estados do Software. ..................................................................... 27
RESUMO
O crescimento da telefonia móvel no mundo vem superando as expectativas ano
após ano. Em virtude desse crescimento, os aparelhos celulares apresentam cada vez mais
novidades tecnológicas incorporadas. Uma tecnologia ainda pouco explorada é a tecnologia
Bluetooth. O Bluetooth é uma tecnologia de custo relativamente baixo que proporciona a
comunicação sem fio entre dispositivos eletrônicos a pequenas distâncias. Esse projeto tem
como objetivo apresentar o desenvolvimento de um hardware de menor porte e menor custo
capaz de se comunicar com um aplicativo no aparelho celular via Bluetooth, sendo ambos
para controle ou aquisição de dados. O projeto foi dividido em dois módulos principais,
módulo celular e módulo UCB (Unidade de Controle Bluetooth). Na camada de aplicação do
módulo celular, foi desenvolvido um aplicativo em linguagem Java. O módulo UCB foi
dividido em duas camadas, a camada de comunicação, onde foi feita a interface com a
tecnologia Bluetooth e o tratamento das mensagens e a camada de aplicação responsável
por interpretar as mensagens. No início, o projeto foi desenvolvido utilizando um kit de
desenvolvimento que integra um módulo capaz de se comunicar via Bluetooth com saída
serial e USB. Posteriormente ao funcionamento do sistema utilizando o kit, o dispositivo foi
embarcado em uma aplicação onde foi utilizado apenas o módulo. Para validar o
funcionamento do dispositivo foi desenvolvida uma aplicação baseada em automação
residencial sob uma maquete simulando uma pequena residência. Foi elaborado um
aplicativo capaz de controlar a abertura e fechamento de uma janela e variar a luminosidade
dos LEDs presentes dentro e fora da maquete. O sistema resultante atendeu os objetivos
iniciais do projeto. Visto que era parte do objetivo além de desenvolver um dispositivo capaz
de trocar informações via tecnologia Bluetooth, também obter domínio das tecnologias e
linguagens envolvidas no processo, pode-se afirmar que o projeto atendeu os objetivos
propostos.
1
INTRODUÇÂO
No contexto de avanço tecnológico da telefonia móvel, uma tecnologia ainda pouco
explorada é a Bluetooth. O Bluetooth é uma tecnologia de custo relativamente baixo que
proporciona a comunicação sem fio entre dispositivos eletrônicos a pequenas distâncias
(tipicamente 10 metros). Essa tecnologia tem se tornado, ao longo dos anos, sinônimo de
transferência de pequenos arquivos, imagens e músicas. Com o Bluetooth, o usuário pode
detectar e conectar o seu aparelho de forma rápida a outros dispositivos que tenham a
mesma tecnologia.
A tecnologia Bluetooth também é utilizada para interconectar aplicativos no
computador e no celular. Diversos aplicativos podem ser encontrados na rede para simples
aplicações utilizando o binário celular-computador, como por exemplo, o controle do mouse
via aplicativo em celular. Todavia, seu uso fica restrito aos binários celular-computador e
celular-celular.
Dentro do contexto proposto nos parágrafos acima, é possível observar que a
tecnologia Bluetooth ainda tem muito a ser explorada e é ainda uma tecnologia de mercado,
pois a maior parte dos aparelhos atualmente no mercado conta com essa função. O que se
apresenta necessário é tornar viáveis aplicações de baixo custo usando Bluetooth. A
interação celular-computador não facilita muitas aplicações, visto que há necessidade do
transporte do computador. Um dispositivo capaz de interagir com o aparelho móvel podendo
tomar ações de controle a partir do aparelho ou entregar informações de status para o
mesmo torna viável uma infinidade de aplicações em diversas áreas.
Dessa forma, esse projeto visa o desenvolvimento de um hardware de menor porte
e menor custo capaz de se comunicar com um aplicativo no aparelho celular via Bluetooth,
sendo ambos para controle ou aquisição de dados. Esse dispositivo facilitaria várias
aplicações que na maior parte das vezes dependem de dispositivos robustos e ainda se
tornaria atrativo vista a idéia de convergência de controle proposta acima onde, através do
próprio aparelho, o usuário poderia controlar diversos dispositivos próximos.
Uma das aplicações possíveis para esse projeto é em sistemas de controle para
domótica. É possível observar uma grande expansão e tendência de mercado criar e
desenvolver novos dispositivos para controlar residências. O controle de iluminação de
ambientes e abrir e fechar portas já se tornou clássico, porém o custo elevado do mesmo
ainda torna inviável popularizar seu uso. Normalmente o usuário doméstico utiliza um
controle para abrir e fechar o portão eletrônico, outro para acionar a iluminação da
residência, outro para o ar-condicionado e isso causa um desconforto. Nesse sentido, essa
6
aplicação poderia concentrar os controles residenciais todos no próprio aparelho celular.
Todavia o interesse vai mais além onde, além de realizar um controle com baixo custo,
ainda é possível monitorar consumo de dispositivos específicos criando um perfil de
consumidor, pois o acesso a informações de consumo de água, luz e demais despesas é do
interesse do cliente e também das empresas de abastecimento.
Outra possível área de aplicação é a área biomédica. Diversos dispositivos como
data loggers são desenvolvidos para monitorar a pressão arterial, batimentos cardíacos ou
outras variáveis biomecânicas como, por exemplo, a marcha humana. Para realizar essas
tarefas, dispositivos com vários fios e uma unidade central são dispostos na pessoa
acarretando um desconforto ao ter que se locomover com esses dispositivos. Nesse
conceito o hardware a ser desenvolvido poderia substituir alguns desses elementos, ao
passo de a pessoa ter a necessidade de apenas ter um aparelho celular no bolso.
Seguindo as possibilidades apresentadas, a aplicação adotada está na área de
domótica e foi o foco central para o desenvolvimento do projeto. O projeto consistiu em
acionar um conjunto de LEDs e atuar abrindo e fechando uma janela, usando para isso uma
pequena maquete. Isso foi feito através de comandos inseridos, apresentados em forma de
menu de opções, no aplicativo do aparelho celular, que comunica com o hardware via
interface Bluetooth. A descrição que segue, apresentará o detalhamento do projeto com
uma abordagem geral de todo o sistema e dos módulos envolvidos.
7
2
TECNOLOGIA BLUETOOTH
Para o desenvolvimento do projeto, foi utilizada a tecnologia Bluetooth, presente em
grande parte dos aparelhos celulares atualmente no mercado. Segundo (MILLER e
BISDIKIAN, 2001, p. 3), “o termo Bluetooth se refere a uma especificação aberta para uma
tecnologia que permita comunicação sem fio de voz e dados de curto alcance em qualquer
lugar do mundo”.
Bluetooth opera na faixa de freqüência de 2,4GHz (ou seja, na banda livre para
qualquer tipo de transmissão) e está sujeito a interferência de vários outros tipos de
dispositivos. Justamente por isso o padrão especifica uma comunicação de curto alcance,
com baixo consumo de energia e menor susceptibilidade ao ruído e interferência. Funciona
através de saltos em freqüência, coordenados pelo master da piconet (micro rede formada
por dispositivos Bluetooth conectados, Figura 1). Cada piconet possui um master e um ou
mais slaves. O master é quem gerencia a comunicação de sua piconet, determinando a
seqüência dos saltos em freqüência de cada membro, o instante de tempo em que devem
ocorrer, e qual o dispositivo que “tem a vez” para transmitir (uma vez que o meio é comum a
todos). O master de uma piconet pode gerenciar até 255 slaves, com a condição de que no
máximo 7 destes estejam no modo ativo, devendo todos os outros estar no modo de
economia de energia (modo park).
Figura 1 - Um “computador sem fios” usando Bluetooth.
O endereço ou identificador de um dispositivo Bluetooth possui 48-bits (6 bytes),
similar ao endereço MAC das placas de redes dos computadores. Ele é expresso na forma
de 12 caracteres hexadecimais, com a indicação “0x” (representação de hexadecimal)
8
preposta a ele. Por exemplo, o endereço 0x0A2F5CD6B3E9. Este identificador está gravado
eletronicamente em cada dispositivo, sendo exclusivo daquele dispositivo.
Para estabelecer a comunicação entre 2 dispositivos Bluetooth (“A” e “B”), há uma
seqüência de passos. O dispositivo “A” executa a operação de inquiry, realizando uma
busca de dispositivos Bluetooth no raio de alcance. O dispositivo “B”, que está na vizinhança
de “A”, pode ou não estar no modo visível. Caso esteja, ele será detectado pelo dispositivo
“A”, que tentará iniciar a comunicação. O dispositivo “B” requisita então o código de acesso
(um código de 9 bytes) que, se informado corretamente pelo dispositivo “A”, permite a
conexão entre eles. Assim, os dois dispositivos passam para o estado conectado,
negociando a seqüência dos saltos em freqüência.
Além dessa seqüência de saltos em freqüência, há ainda o uso de vários canais
(conjunto de portadoras), um para cada serviço disponibilizado ou acessado na piconet.
Essa especificação prevista para vários tipos de serviço cria a necessidade de outro tipo de
interação além de master-slave: a interação server-client. Um dispositivo (server) que
implemente um determinado serviço deve registrá-lo na piconet para que este possa ser
acessado pelos (clients). Como exemplo de serviço, temos a transferência de objetos
(arquivos) entre dois dispositivos. O server possui arquivos que interessam ao client e
habilita o perfil OBEX (object exchange profile), registra esse serviço na piconet e, em
seguida, os clients podem acessá-lo a qualquer momento.
A nível específico deste projeto, apenas dois dispositivos bluetooth foram utilizados;
o dispositivo interno ao aparelho celular e o dispositivo do módulo UCB. Ambos poderão
alternar os papéis (roles) de master e slave e as funções de client e server, sendo até
mesmo clients e servers em vários serviços simultaneamente.
O uso da tecnologia Bluetooth se justifica no projeto por ser a interface de
comunicação presente atualmente nos aparelhos celulares e por apresentar um baixo
consumo de energia (que se adequa às necessidades da bateria dos aparelhos). O módulo
Bluetooth presente nos celulares pode ser acessado pela API de comunicação Bluetooth
implementada pelas funções da linguagem Java desenvolvidas para a plataforma J2ME
(Java 2 Micro Edition – especialmente desenvolvida para dispositivos com pouca
capacidade de processamento e memória), fato pelo qual esta foi a linguagem de
programação utilizada.
9
3
DETALHAMENTO DO PROJETO
O projeto foi dividido em dois módulos principais, módulo celular e módulo UCB
(Unidade de Controle Bluetooth). O diagrama em bloco, apresentado na Figura 2, mostra
uma visão geral do projeto. Cada módulo foi dividido em duas camadas, uma de aplicação e
outra de comunicação. A camada de aplicação ficou responsável por acessar a camada de
comunicação para a transmissão dos dados e por controlar um ou mais hardwares conforme
a aplicação necessite.
Figura 2 - Diagrama em blocos do Projeto.
Na camada de aplicação do módulo celular, foi desenvolvido um aplicativo em
linguagem Java. Este aplicativo faz interface com o usuário e a ligação com a camada de
comunicação. Na camada de comunicação do módulo celular foi utilizada a própria interface
do aparelho celular, ou seja, o recurso Bluetooth presente na própria placa do aparelho
celular. A camada de comunicação foi responsável por acessar o hardware Bluetooth
utilizando API Java própria para aplicações em celulares que possibilitam o acessar do
hardware Bluetooth do aparelho.
Assim como o módulo celular, o módulo UCB foi dividido em duas camadas, a
camada de comunicação, onde foi realizada a interface com a tecnologia Bluetooth e o
recebimento das mensagens, e a camada de aplicação que foi responsável por interpretar
as mensagens e executar o comando desejado através de um micro controlador.
10
Na camada de comunicação do módulo UCB, foi utilizado um kit de desenvolvimento,
o GS-BT2416C1DB.AT1 fabricado pela STMicroelectronics. O kit possui interface Bluetooth
e pode ser acessado via comandos AT por uma interface serial. Na camada de aplicação do
módulo UCB, foi utilizado um microcontrolador PIC16F887A fabricado pela Microchip, que
acessou o kit pela interface serial, e com os comandos AT ativou a interface Bluetooth do
próprio kit, possibilitando a transmissão de dados.
Nos parágrafos abaixo será detalhada a característica de desenvolvimento de cada
componente do sistema.
3.1 Módulo Celular
O módulo celular, apresentado no diagrama da Figura 3, é responsável pela interface
entre o usuário e o canal de acesso Bluetooth. Através de um aplicativo o usuário poderá
interagir com o hardware e sua aplicação.
Figura 3 - Diagrama em blocos do módulo celular.
Para o desenvolvimento do aplicativo foi utilizada a plataforma Java J2ME (J2ME é
a plataforma Java direcionada a pequenos dispositivos) em conjunto com a ferramenta
Netbeans. O Netbeans é um ambiente de desenvolvimento integrado (IDE) gratuito e de
código aberto para desenvolvedores de software. O Netbeans contém uma plataforma
exclusiva para aplicações em dispositivos móveis o que facilita a construção de alguns
recursos. A versão utilizada da ferramenta NetBeans foi a 6.0.1 (Build 200801291616) em
conjunto com o Java 1.6.0_02; Java HotSpot(TM) Client VM 1.6.0_02-b06 rodando em
sistema operacional Windows XP.
Atualmente existem inúmeros tipos de dispositivos que rodam J2ME, os principais
são celulares e PDA (Assistente Pessoal Digital, pequeno dispositivo dotado de grande
capacidade computacional). O J2ME tem como alvo dois grupos de produtos distintos:
11
•
Um deles é referente a dispositivos pessoais, móveis e conectados à informação,
telefones celulares e PDAs são os melhores exemplos.
•
Outros são os dispositivos compartilhados, fixo e conectados à informação, exemplos
típicos são: TVs, telefones com Internet e sistema de navegação de carros.
Embora todos esses dispositivos tenham muitas coisas em comum, eles também
diferem na forma, função e características. Para isso, existe o conceito de configuração. A
especificação de uma configuração mínima em termos de hardware e bibliotecas padrão
para o dispositivo, que é a Connected, Limited Device Configuration (CLDC), é prevista para
a primeira categoria de produtos, e a Connected Device Configuration (CDC), para a
segunda categoria de dispositivos.
Como é possível observar na Figura 4, existe uma camada chamada MIDP acima do
CLDC. O MIDP está presente na maior parte dos novos celulares. Dispositivos MIDP
alcançam níveis de desempenho e de conectividade melhores que os antigos e dessa forma
facilitam aplicações que necessitem interface com o usuário. O MIDP é a definição de uma
arquitetura e APIs (Interface de Programação de Aplicativos - conjunto de rotinas e padrões
estabelecidos por um software para utilização de suas funcionalidades por programas
aplicativos) associadas, necessárias para prover um ambiente de desenvolvimento aberto
para MIDs (mobile information devices). O MIDP foi feito para rodar em cima do CLDC.
Figura 4 - Diagrama de camadas dos protocolos MIDP e CLDC.
A aplicação foi desenvolvida para dispositivos que suportem linguagem JAVA, o perfil
MIDP 2.0, bibliotecas CLDC 1.1, JSR-82 e que tenham disponível tecnologia Bluetooth
incorporada. Todos os aparelhos que dispõem de tecnologia Bluetooth integrada já
apresentam disponível suporte a JAVA e as bibliotecas necessárias para a execução do
aplicativo.
Para o desenvolvimento do projeto foi utilizado um celular do fabricante Nokia,
modelo 6265 Black. Para transferir o aplicativo desenvolvido para o celular foi utilizado o
12
software Nokia PC Suíte fornecido pelo próprio fabricante. Os arquivos referentes ao
aplicativo foram enviados ao celular via cabo com conexão USB. Cada aparelho tem sua
forma de conexão para troca de arquivos com um computador pessoal. Na maior parte das
vezes o fabricante disponibiliza algum software e conexão física para integrar os elementos
e tornar possível à transferência. Outros meios de comunicação podem ser usados para a
transferência do arquivo.
Para o celular são transferidos dois arquivos, um com extensão .jar e outro .jad. Em
alguns aparelhos apenas a ação de rodar um desses dois arquivos já executa. Mas na
maioria existe a necessidade de instalar o aplicativo no celular primeiro e depois rodá-lo.
Para o desenvolvimento da aplicação foi necessário desenvolver classes Java
específicas para a solução em questão. A metodologia definida foi criar uma classe
responsável pela comunicação Bluetooth e criar outras classes referentes a cada objeto
relacionado. Dessa forma, foi criada uma classe chamada COMMLayer responsável pelo
tratamento da conexão Bluetooth. Uma classe LEDObject e outra WindowObject são
responsáveis pelos objetos a serem controlados nesse sistema.
Na Classe COMMLayer foram implementados os métodos: connect, disconnect, send
e receive. O método connect realiza a conexão entre o celular e o hardware Bluetooth. Uma
propriedade já inserida no método faz com que seja capaz de buscar exclusivamente o
hardware do sistema excluindo outros dispositivos Bluetooth próximos. O método disconnect
permite desconectar a conexão feita pelo método connect. Após chamar o método connect o
dispositivo cria uma conexão serial no canal Bluetooth e permite, usando os métodos send e
receive, enviar e receber dados.
As
demais
classes,
LEDObject
e
WindowObject,
implementam
métodos
semelhantes, referentes a solicitação de status e alteração de status. No caso do LED, o
status é a intensidade de luminosidade em que o mesmo se encontra. Em se tratando da
classe WindowObject, o status seria se a mesma se encontra aberta ou fechada, tarefa
realizada pelo método GetStatus. A Figura 5 mostra as interfaces referentes às classes
WindowObject e LEDObject chamando seus respectivos métodos.
13
Figura 5 - Interface para a classe WindowObject e LEDObject.
A classe principal do programa foi chamada de HomeControl. Através do Netbeans é
possível construir uma interface interativa com o usuário usando recurso de paletas de
construção de interface como: formulário, caixa de texto, tela de splash, tela de imagens,
dentre outras. Dessa forma, esse recurso foi utilizado onde, a partir da classe principal, as
demais classes eram chamadas construindo o fluxo de execução do software. O fluxo final
do software pode ser observado na Figura 6.
Figura 6 - Fluxo de execução do aplicativo no celular.
14
Através do recurso da construção em fluxo foi possível desenvolver a seqüência de
execução do aplicativo. O item (1) na Figura 6 é um recurso para a apresentação de
imagens. Para utilizar esse recurso foram desenvolvidas imagens de abertura do software,
assim como, execução de erro dentre outras que serão apresentadas mais à frente.
Após uma breve tela de abertura é proposto ao usuário, através do item (2), escolher
conectar ou sair do aplicativo. A opção conectar inicia uma conexão Bluetooth e conecta o
celular com o kit. Caso o comando de conectar seja pressionado o aplicativo chama o item
(3) que se refere a uma tela de espera, onde é apresentada uma janela com o status
“aguardando conexão”. Caso a conexão seja realizada uma tela de sucesso é ativada; caso
contrário, um alerta de “erro” é apresentado e o software solicita a conexão novamente. O
item (4) é o menu de escolha de ambientes. Para essa aplicação foram inseridos os
seguintes ambientes: Sala, Quarto e Externa. O item “Quarto” foi colocado apenas para
contextualizar um cenário em um ambiente maior. Os itens utilizados foram: sala, onde
temos o controle da intensidade de iluminação e controle de abre / fecha janela, e o item
externo, onde é possível controlar a intensidade da iluminação externa.
3.2 Módulo UCB (Unidade de controle bluetooth)
Segundo o que determinava o projeto, a comunicação entre o dispositivo de controle e
o celular foi realizada através da tecnologia Bluetooth. Como esta tecnologia já está
presente no hardware do aparelho celular, para que a integração com o módulo UCB
pudesse ser realizada, foram utilizados o kit Bluetooth de desenvolvimento GSBT2416C1DB.AT1 e o módulo Bluetooth GS-BT2416C1.AT1, ambos da ST Microeletronics
(www.st.com).
3.2.1
Módulo Bluetooth - GS-BT2416C1.AT1
Este módulo, apresentado na Figura 7, conta com um controlador de núcleo
ARM7TDMI (www.arm.com) e circuito de rádio para tecnologia Bluetooth Classe 1. Possui
interfaces para comunicação UART (Universal Asynchronous Receiver/Transmitter), USB
1.1 (Universal Serial Bus), SPI (Serial Peripheral Interface), PCM (Pulse Code Modulation),
I2C (Inter-Integrated Circuit) e 11 pinos de entrada de saída para propósitos gerais. Atinge
taxa de transmissão de dados de até 721kbps e possui suporte integrado em software para
comandos AT. A principio não é permitida a alteração do software deste controlador ou a
15
criação de um especifico para um projeto, uma vez que o fabricante não disponibiliza as
ferramentas necessárias para criação e gravação do novo software para aquisição de
módulos em escala reduzida.
Figura 7 - Módulo GS-BT2416C1.AT1.
Como o GS-BT2416C1.AT1 é um módulo genérico para a utilização da tecnologia
Bluetooth, a forma de utilizá-lo foi inseri-lo em um circuito que atendesse às necessidades
especificas do projeto, tornando possível, desta maneira, aproveitar apenas as
características desejadas das que o módulo disponibiliza, como por exemplo, a interface
serial, deixando todas as outras facilidades desabilitadas.
As configurações dos serviços da tecnologia Bluetooth do módulo são feitas através
de comandos AT via interface serial. Estas configurações dependem exclusivamente da
versão do software inserido no controlador, ou seja, a versão para este módulo não suporta
transferência de arquivos e sim somente comunicação serial. As facilidades permitidas pela
própria seqüência de comandos AT dependem da versão do software presente no módulo,
ou seja, somente a versão 1.2.1.8 possibilita a criação de macros para que as configurações
permaneçam gravadas no controlador, e a cada reinicio do sistema os comandos sejam
configurados sem o envio pela comunicação serial. Já a versão 1.2.1.2 não possibilita a
criação de macros, sendo assim necessário que, a cada reinício do sistema, todo o
processo de configuração inicial deva ser repetido e enviado via interface serial.
3.2.2
Kit Bluetooth de desenvolvimento - GS-BT2416C1DB.AT1
Esse kit, GS-BT2416C1DB.AT1, apresentado na Figura 8, conta com o módulo
Bluetooth GS-BT2416C1.AT1 e suas interfaces preparadas para utilização. Como o próprio
nome diz é uma placa demo desenvolvida para ser utilizada em aplicações genéricas a fim
de disponibilizar as principais funcionalidades do módulo. Possui o circuito para a antena em
16
microstrip, saída para comunicação USB e Serial, Pinos de Entrada e Saída, botão para
reset. Há ainda uma chave manual, H, que comuta entre os modos Comando e Dados. O
modo Comando é utilizado quando se deseja configurar o rádio Bluetooth, via comandos AT,
e permite que seja criada uma macro de auto-configuração que é executada a cada vez que
o kit é reiniciado. Como a comunicação é sempre iniciada pelo aparelho celular, este ocupa
o papel de cliente de um serviço Bluetooth. Assim, o kit deve exercer a função de servidor
do serviço de porta serial sendo, portanto configurado via porta serial (baud rate: 9600bps,
sem paridade, 1 stop bit, sem controle de fluxo) através da seguinte macro de comandos AT:
AT+BTMACROSTART // inicia a gravação da macro
AT+BTCMODE=1 // habilita o modo de conexão
AT+BTPMODE=1 // habilita o modo de pareamento
AT+BTDMODE=0 // desabilita o modo de descoberta
AT+BTSECMODE=0 // modo de segurança desabilitado
AT+BTENCMODE=0 // modo de criptografia desabilitado (idem ao anterior)
AT+BTPINCODE="0000" // código PIN = "0000"
AT+BTNAME="SPP Server" // nome dado ao dispositivo
AT+BTCLASS=050506 // classe do dispositivo
AT+BTREGPORT="SPP port" // nome do serviço oferecido pelo dispositivo (SPP - serial
port profile, com nome escolhido de "SPP port")
AT+BTMACROSTOP // finaliza a macro
Figura 8 - Kit Bluetooth, GS-BT2416C1DB.AT1.
Uma vez feita essa configuração, pode-se deixar permanentemente a chave no
modo Dados. Assim, o modo Comando apenas foi utilizado para a gravação dessa macro,
desde a qual o modo Dados foi ativado e assim permanece. O modo Dados serve para fazer
17
a transmissão/recepção de dados, emulando uma porta serial entre o micro controlador e o
aparelho celular.
Essa porta serial é definida pelo SPP (serial port profile – perfil de porta serial),
presente desde a primeira versão da especificação Bluetooth. Para que essa porta seja
“aberta” basta que se crie uma conexão com uma URL do seguinte formato:
btspp://AABBCCDDEEFF, onde btspp indica que se está utilizando o perfil spp do protocolo
Bluetooth e AABBCCDDEEFF são os 6 bytes que caracterizam o identificador de um
dispositivo Bluetooth (semelhante ao endereço MAC das placas de rede de computadores).
Desse modo, o perfil ssp é o responsável pela camada de enlace e, por conseguinte,
da correção de eventuais erros no percurso entre transmissão e recepção. Com a garantia
de que os dados são transmitidos transparentemente sem erros, pode-se admitir que toda a
informação que parte do aparelho celular é recebida intacta pelo micro controlador, assim
como a informação que parte deste para aquele.
3.2.3
Microcontrolador e estrutura do Hardware
O micro controlador utilizado para o desenvolvimento do projeto foi o PIC16F877A
fabricado pela Microchip (www.microchip.com). As principais características que este
controlador possui são: uma interface Serial, duas saídas de PWM (pulse width modulation –
modulação por largura de pulso), três portas de entrada e saída de 8 bits, três
temporizadores, sendo um de 16bits e dois de 8 bits, freqüência de clock de até 20 MHz e
alimentação de 5V. A programação pode ser feita em linguagem C ou assembly na própria
IDE da fabricante, o MPLAB. Este permite que seja inserido um plug-in CCS
(www.ccsinfo.com) possibilitando a programação em linguagem C. O gravador do firmware
(software embarcado), gerado pelo compilador, é fabricado pela própria CCS, o ICD-U40
possui uma interface muito pratica para gravação e verificação dos estados do controlador.
A placa com o micro controlador utilizado, PIC16F877A, apresentada na Figura 9 foi
elaborada nos laboratórios de Engenharia Elétrica da Pontifícia Universidade Católica do
Paraná (www.pucpr.br). Já possui as interfaces preparadas para serem utilizadas, como:
pinos de entrada e saída, porta serial, cristal de 4MHz, entrada para programação e
alimentação.
18
Figura 9 - Kit de desenvolvimento para PIC.
Como ambos foram adquiridos, o kit (GS-BT2416C1DB.AT1) e o módulo (GSBT2416C1.AT1), tornou-se possível a utilização dos dois dispositivos. O kit foi utilizado para
trabalhar a criação do software e hardware da aplicação até que a placa do módulo fosse
desenvolvida e testada. Com a utilização do kit a ligação com a placa do controlador ficou
apenas via cabo serial, conforme apresentado na Figura 10. E toda a configuração via
comandos AT foi realizada somente uma vez utilizando macros, já que a versão do software
deste kit aceita esta facilidade. Com isso, a chave que comuta entre Dados e Comando
permanece sempre na opção Dados, possibilitando que o celular inicie a conexão e
transmita as informações.
Figura 10 - Interligação entre o Kit com o controlador PIC e o Kit/Módulo Bluetooth.
Já para a utilização do módulo, BT2416C1.AT1, foi desenvolvida uma placa,
apresentada na Figura 11, cujo circuito atende às necessidades do projeto e possibilita a
utilização com outros dispositivos de forma semelhante ao kit, mas possibilitando a inserção
19
em uma placa com controladores diferentes. Neste caso a placa com o módulo foi ligada via
interface serial com a placa do controlador PIC de forma semelhante ao esquema
apresentado na Figura 10.
Figura 11 - Placa desenvolvida para utilização do Módulo Bluetooth.
O desenvolvimento da placa para utilização do módulo foi feito seguindo um
esquemático disponível no datasheet do kit Bluetooth, mas com alterações necessárias para
a utilização no projeto, como conectores das interfaces de entrada e saída, USB e circuito
da antena. A antena utilizada foi uma antena chip RUFA de 2,4GHz SMD e impedância de
50Ω fabricada pela Antenova (www.antenova.com).
3.2.4
Estrutura do Software para o microcontrolador
O software desenvolvido para o microcontrolador PIC16F877A segue o diagrama
apresentado na Figura 12 e utiliza a interrupção da comunicação serial do controlador para
receber os dados e executar a ação programada. Dentro desta interrupção foi criado o
código que identifica o conjunto de instruções, conforme protocolo descrito no Item 3.3. Para
a utilização com o kit não foi necessário enviar os comando AT para configuração, uma vez
que todo o processo de comandos foi gravado em macro e o próprio kit repete esses
comandos quando iniciado, já disponibilizando uma interface de dados.
20
Figura 12 - Diagrama de software do controlador.
O software desenvolvido para o módulo também é reconhecido na interrupção serial
do microcontrolador. A única diferença é que, quando o controlador é iniciado, envia a
seqüência de comandos para configurar o módulo Bluetooth. Esse processo é repetido toda
a vez que o módulo reinicia. Quando o módulo é ligado ou reiniciado, ele envia uma
mensagem “+READY”, informando que está pronto para receber comandos. Com isso, o
software do microcontrolador identifica esta mensagem e envia a seqüência de comandos
para configurar o módulo Bluetooth, tornando assim possível a alteração da chave para
modo Dados.
3.3 Protocolo
O protocolo de comunicação para o envio de comandos entre o celular e o módulo
que controla os dispositivos foi desenvolvido de forma simples, pois a tecnologia Bluetooth
possui uma característica configurável que permite a criação de uma comunicação serial
entre dois dispositivos de forma transparente. Com isso, tanto o programa criado no celular
como o desenvolvido para o microcontrolador trabalham como se estivessem se
comunicando via interface serial RS-232, permitindo que os pacotes de bytes com as
mensagens fossem criados com menor tamanho possível, ou seja, sem bytes para
identificar cabeçalho ou correção de erro, somente valores que o controlador poderia
reconhecer para decidir as ações que lhe fosse requisitado.
21
Conforme apresentado na Figura 13, os pacotes são compostos por 8 bytes que
identificam o tipo do comando, dispositivo a ser acionado e valores a serem atribuídos.
Todos os pacotes enviados do celular para o controlador possuem os dois primeiros bytes
com os caracteres ‘C’ e ‘:’, que servem para confirmar que esta sendo enviado um comando
e não um valor qualquer via interface serial. No terceiro byte, o caractere ‘E’ indica que um
comando de envio está sendo encaminhado ao controlador para que possa ser acionado um
dispositivo. O caractere ‘R’ indica que o comando é para retornar o estado do dispositivo
desejado. Os bytes 3 e 4 identificam o dispositivo que deve ser acionado, exemplo, ‘L’ e ‘1’
indicam que o LED1 receberá o valor desejado ou no caso do retorno do estado, ‘L’ e ‘1’
representam que o dispositivo requisitado para a visualização do estado é o LED1. Os
últimos 3 bytes dos pacotes de envio de comando são os valores que devem ser
incrementados nas variáveis referente ao dispositivo desejado, ex. ‘1’, ‘2’ e ‘4’ indica que o
valor a ser atribuído ao LED é o valor 124 (o maior valor permitido). Já no caso do pacote de
retorno do estado dos dispositivos, o controlador envia para o celular um inteiro de tamanho
4 bytes, correspondente ao estado do dispositivo requisitado. Por exemplo, 0x0000007C
retorna o valor decimal 124 (12*1 + 7*16 = 12 + 112 = 124) para o aparelho celular.
Figura 13 - Protocolo de comandos.
Quando o usuário deseja executar uma ação e aciona no menu do celular a opção
equivalente, uma mensagem no formato (a), da Figura 13, é enviada ao controlador. Essa
mensagem contém as informações que definem que o celular está enviando um comando
para alterar os valores referentes a um dispositivo, o nome do dispositivo e o valor desejado.
Com isso o controlador atribui este valor recebido nas variáveis referentes ao dispositivo e
executa a ação desejada. Quando o usuário envia um comando para identificar o estado dos
dispositivos, a mensagem no formato (b) é enviada ao controlador, que identifica qual
22
dispositivo deve ser visualizado e retorna o valor da variável referente ao dispositivo na
forma da mensagem (c).
23
4
APLICAÇÃO DESENVOLVIDA
Para validar o funcionamento do dispositivo foi desenvolvida uma aplicação baseada
em automação residencial sob uma maquete, apresentada na Figura 14. Simulando o
ambiente de uma sala de estar com uma janela e uma persiana, incluindo iluminação interna
e externa. A aplicação consiste em abrir e fechar uma janela e variar a luminosidade dos
LEDs presentes dentro e fora da maquete. Representando assim uma condição real de
aplicação, onde um usuário tenha a possibilidade de abrir ou fechar a janela de sua sala, ou
verificar o estado da mesma, quando desejar, controlando através de seu aparelho celular,
fornecendo assim uma opção à necessidade de levantar e se dirigir até a janela desejada e
realizar o trabalho manualmente.
As outras opções também seguem o mesmo princípio, para o acionamento dos
LEDs, o usuário aciona as opções de variar a intensidade de luminosidade ou verifica o
estado sem a necessidade de se dirigir ao interruptor.
Figura 14 - Maquete, exemplo de aplicação.
Ao iniciar, o aplicativo solicita realizar uma conexão Bluetooth com o kit interiormente
instalado na maquete. O usuário tem a opção de sair do aplicativo ou “conectar” a ele. Uma
vez conectado, ele permanece até que o aparelho esteja fora do alcance do kit ou até que o
usuário selecione a opção “desconectar”. Após realizar a conexão o usuário tem controle
total sobre os estados dos elementos controlados e o poder de interagir com os dispositivos
a serem controlados.
24
4.1 Hardware da Aplicação
O hardware desenvolvido para a aplicação segue a estrutura apresentada na Figura
15. Como citado anteriormente, o módulo é conectado à placa do controlador via
comunicação serial. Todos os drivers de controle dos dispositivos (LEDs, MOTOR) foram
ligados diretamente na placa do controlador em suas interfaces de entrada e saída.
Figura 15 - Diagrama de funcionamento da Aplicação.
Como observado anteriormente na descrição do kit Bluetooth, existe uma chave H
para comutar entre a opção de comandos e a opção de dados. Esta chave foi inserida na
placa do módulo Bluetooth para poder realizar a comutação entre a opção de Dados e
Comando. Com base nas informações disponíveis no datasheet do módulo foi observado
que o pino GPIO1 comuta para ‘1’ lógico quando uma conexão é criada entre o módulo e o
celular. E o pino GPIO3 deveria estar em ‘1’ lógico para que seja comutado de comando
para dados. Com isso, uma ligação entre os dois pinos do módulo possibilita que o módulo
inicie na opção de Comando e assim que uma conexão for criada, aciona o pino PGIO1 para
nível lógico ‘1’, conseqüentemente o pino GPIO3 passa para nível Lógico ‘1’ comutando de
Comandos para Dados e permitindo a transmissão de dados.
Cada placa contendo 8 LEDs de alto brilho é utilizada para representar a iluminação
do ambiente e é controlada por um dos PWM do controlador. Existem duas placas com
25
LEDs: uma representando a iluminação interna do ambiente e a outra representando a
iluminação externa do ambiente. A saída de cada controlador é ligada a um transistor
BC548, que atua como driver e aciona os LEDs evitando que uma sobre carga de corrente
possa queimar a saída do microcontrolador.
Para o acionamento da janela, foi utilizado um motor de passo com 8 fios controlado
por um driver com circuito lógico digital possibilitando que apenas dois pinos do port do
controlador sejam utilizados para o controle. Um pino fornece o clock responsável por gerar
o passo do motor e controlar a velocidade, e o outro pino comanda o sentido do giro do
motor. O acionamento do motor foi feito através de circuito lógico AND, que possibilitou o
bloqueio do clock para desativá-lo. Para identificar se a janela estava aberta ou fechada
foram utilizados dois sensores de fim de curso, de modo que quando a Janela fosse aberta
o sensor de “Janela Aberta” conectado a um dos pinos do controlador atribui a uma variável
do software o valor lógico ‘1’. De forma semelhante, quando a Janela fosse fechada o
sensor de fim de curso referente a “Janela Fechada” alteraria a variável do software para
estado lógico ‘0’.
4.2 Software da aplicação
O software foi desenvolvido conforme o fluxograma apresentado na Figura 16. Para
o controle da intensidade dos LED foram utilizados os dois canais de PWM presentes no
microcontrolador com freqüência de 500Hz, configuradas no Timer2, permitindo que a
variação da intensidade dos LEDs esteja entre “0” e “124”. Para o controle do movimento da
janela, foi configurado o Timer1 para gerar interrupção com freqüência de 500Hz. Com isso,
a cada interrupção deste timer é gerada uma inversão no valor de saída em um dos pinos
do port D do controlador criando assim um clock com freqüência de 250Hz. Este clock foi
utilizado para o circuito de comando dos motores, que determina o passo do motor e sua
velocidade. Cada motor possui um pino do port D do controlador para habilitar ou desabilitar
o clock no motor desejado através lógica digital AND. Um outro pino no port D configura a
direção do motor, direita ou esquerda.
26
Figura 16 - Diagrama de estados do software.
A comunicação serial é executada através de interrupção, ou seja, quando um byte é
recebido o controlador interrompe o loop infinito e passa a tratar a interrupção. Terminado o
tratamento desta interrupção, o controlador volta ao loop infinito, aguardando que outro byte
seja recebido. Cada byte recebido é inserido em um vetor e, posteriormente, comparado
com os valores necessários para executar a ação desejada. Para que um comando seja
reconhecido, o controlador deve receber, via interface serial, dois bytes iniciais: ‘C’ e ‘:’, que
identificam um envio do celular de um pacote com instruções. O fluxo do programa corre
como um pseudo-paralelismo entre três processos, ou seja, o timer1 é iniciado e continua
gerando um clock sem interrupções, o PWM, embora seja carregado inicialmente com valor
zero, também permanece gerando sinais em seus canais indefinidamente. Por fim, o loop
infinito fica continuamente monitorando os valores dos sensores das janelas e aguardando
uma interrupção da comunicação serial.
27
5
TESTES E RESULTADOS
O principal teste para validar a comunicação entre o módulo ou kit Bluetooth com a
placa do microcontrolador foi conectar os dois dispositivos via comunicação serial, enviar os
comandos de configuração do serviço e comutar a chave para Dados, com isso permitindo
transferência de dados via comunicação serial transparente através da tecnologia Bluetooth.
Um LED na placa do controlador foi acionado quando um determinado byte foi recebido via
comunicação serial, validando assim a conexão entre os dois dispositivos.
A distância para comunicação dos dispositivos Bluetooth atingiu aproximadamente
10 metros, precisamente a distância especificada pelo padrão Bluetooth.
Os testes de funcionamento da aplicação foram realizados através do envio dos
comandos no celular e a verificação do acionamento dos dispositivos referentes pela parte
do módulo UCB. Quando o aparelho celular enviou o comando para abrir a janela, o motor
passou a girar até acionar o sensor de fim de curso e desligar o motor. Em seguida, o
celular solicitou o recebimento do status do motor, e o módulo UCB retornou a informação
referente a “Janela Aberta”. Com isso o celular apresentou na tela o status da Janela. De
forma semelhante testes foram realizados para as demais funcionalidades da aplicação,
todos foram realizados corretamente.
Por questões de segurança de comunicação, foi desabilitada, no módulo e no kit, a
opção de serem descobertos. Assim, somente os dispositivos que conhecem o endereço
deles é que podem se conectar, sendo que qualquer dispositivo que realize a operação
inquiry simplesmente não os encontrará. Como conhecemos de antemão os endereços do
módulo e do kit, isso foi perfeitamente possível de ser utilizado.
Um dos problemas enfrentados no desenvolvimento do software do microcontrolador
foi quando acionados os dois PWM ao mesmo tempo com valores iguais, ocorria
interferência no Timer1, que controlava o passo do motor, deixando-o completamente
desgovernado. A solução encontrada para este problema foi identificar em software se o
valor solicitado para um dos PWM é igual ao outro, e, em caso positivo, acrescentar ‘1’ à
variável e carregar o PWM com esse novo valor, evitando assim que o motor fique
desgovernado.
28
6
CONCLUSÃO E DISCUSSÃO
O sistema resultante atendeu os objetivos iniciais do projeto. Visto que era parte do
objetivo, além de desenvolver um dispositivo capaz de trocar informações via tecnologia
Bluetooth, também obter domínio das tecnologias e linguagens envolvidas no processo,
pode-se afirmar que o projeto atendeu os objetivos propostos.
Faz parte de um plano futuro estender essa aplicação agregando uma topologia de
rede mesh, através da qual o sistema poderá controlar ambientes remotos a distância e
conhecer outros dispositivos presentes na residência. Esse tipo de solução poderá ser
aplicada em outros ambientes ou para outras soluções, não apenas em domótica. A solução
mencionada como projeto futuro é semelhante a uma rede zigbee trabalhando full-mesh,
todavia se apresenta como um diferencial, pois, zigbee ainda não é uma tecnologia presente
em dispositivos móveis.
Uma série de outras possibilidades ainda poderá ser aplicada a essa solução. Vários
dispositivos poderão ser controlados no interior da residência com avanços nessa aplicação.
Todavia, esse mesmo sistema abre um novo segmento de aplicações em diversas outras
áreas como a de saúde. Monitorar pacientes com algum tipo de necessidade especial é
possível utilizando esse sistema. Basta apenas que, o paciente porte um telefone celular.
29
7
REFERÊNCIAS BIBLIOGRÁFICAS
HORSTMANN, Cay S.; CORNELL, Gary. Core Java 2. São Paulo: Makron Books, 2001.
WIKIPÉDIA, (2007). Bluetooth – Conceito e especificações da Tecnologia Bluetooth:
http://pt.wikipedia.org/wiki/Bluetooth. [10 setembro 2007].
MEIOBIT, (2007). Tendência do mercado em aplicação de Mobile Wallet.
http://www.meiobit.com/celulares/oi_lanca_servico_de_pagamento_via_celular.[01 outubro
2007].
MILLER, Brent A.; BISDIKIAN, Chatschik. Bluetooth revealed: the insider's guide to an
open specification for global wireless communications. Upper Saddle River: Prentice
Hall PTR, 2001.
MUCHOW, John W. Core J2ME : Tecnologia & MIDP. São Paulo: Pearson Educação,
2004.
TELECO, (2007). Telecomunicações – Cenário atual. http://www.teleco.com.br. [30 setembro
2007].
STMicroelectronics, http://www.st.com [outubro de 2007].
30
Download

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ