segunda-feira, 28 de março de 2011

Comunicação Serial facil



Umas das coisas mais corriqueiras no ramo de automação seja ela residencial ou industrial, é o envio de comandos do computador para o sistema ao qual se deseja automatizar, onde através de um programa no computador o individuo aperta alguns botões e a tarefa é feita numa máquina do ambiente.
Esta comunicação pode ser facilmente feita pela porta serial RS-232 do computador, onde um programa desenvolvido em alguma linguagem de programação (por exemplo, Java) vai enviar informação para a porta e algum dispositivo eletrônico (por exemplo, um microcontrolador) vai receber esta informação e fazer o que tiver que fazer com esta informação.
Para ajudar ainda mais quem pretende fazer esta comunicação via linguagem Java e utilizando o Netbeans eu desenvolvi uma classe com a intenção de facilitar na hora de fazer a comunicação entre PC e dispositivo. A função da classe é diminuir a complexidade abstraindo toda a configuração necessária para por em funcionamento a porta serial.
O nome da classe é PortaSerial que deve ser incluída no projeto. Além de incluir a classe é necessário também incluir o arquivo RXTXcomm.jar ao projeto e em todas classes lib do jdk e jre. É necessário também incluir na pasta Bin do jdk e jre o rxtxSerial.dll, e também na pasta system32 do Windows.

Feito isso é só usar a classe sem precisar se preocupar com nada a respeito da parte de tratamento das variáveis de entradas e saídas e nem das configurações da porta para o funcionamento, que convenhamos é bem chata e cansativa de se fazer.

Basta ler abaixo como é fácil o manuseio da porta serial


Se a classe PortaSerial não estiver no mesmo pacote da classe principal faça:

import (pacote onde está a classe).PortaSerial

Primeiramente criamos um objeto da classe PortaSerial na sua classe principal

PortaSerial portaserial;

O próximo passo é iniciar o objeto

portaserial = new PortaSerial();

agora com o comando abaixo o método ListaPortasCom da classe PortaSerial é executado.

portaserial.ListaPortasCom();

Quando o método anterior é executado ele carrega duas variáveis globais portascom e é do tipo String vetor[] que é publica e pode ser acessada de qualquer classe esta variável tem o nome de todas as portas seriais encontradas no computador, e numero_de_portas que tem o numero total de portas do computador
Veja abaixo como acessar o conteúdo dessas variáveis:

portaserial.portacom[i];
portaserial.numero_de_portas;

tendo o nome de todas as portas na variável portaserial.portacom[i] o próximo passo é abrir a porta a qual deseja efetuar a comunicação

portaserial.abrir_porta(nome_porta, vel);

O comando acima vai executar o método abrir_porta da classe PortaSerial e deve ser passado o nome da porta serial que deseja abrir na variável “nome_porta” que é do tipo String e deve ser tirada da variável “portaserial.portacom[i]”, e a velocidade da conexão na variável “vel” que é do tipo int.
Para enviar uma mensagem basta executar o seguinte comando:

Portaserial.escreve_mensagem(mensagem);

Onde mensagem é o que se deseja enviar pela porta ou seja são os dados a serem transmitidos e é uma variável do tipo String;
E para ler uma mensagem basta executar o comando

Portaserial.le_mensagem();

Feito isso a mensagem quando chegar será visualizada na variável:

portaserial.strEntrada

que é do tipo String

e para fechar a porta basta o seguinte comando:

portaserial.fechar_porta();


Bom é isso pessoal, quem quiser a classe é só entrar em contato comigo pelos comentários ok.

Nenhum comentário:

Postar um comentário