Vamos comunicar nossa aplicação Java com Arduino usando uma biblioteca estável, a lib jSerialComm. Em nosso canal no Youtube fizemos a comunicação usando a lib RXTX. Usando ativamente a biblioteca RXTX tive vários problemas, erros na porta USB, consumo alto de memória e muita dor de cabeça.

Nosso exemplo terá as seguintes funcionalidades: listagem de portas, botão para conectar a porta e botão para enviar valor para a porta serial (ligar e desligar – led).

Primeiro vamos começar criando nosso código Arduino, faremos uma código bem simples de envio de dados para a porta serial:

Agora vamos para o Java, acesse o site oficial da biblioteca procure por JAR FILE ou clique aqui para baixar, você pode usar em seu projeto Maven também, eles disponibilizam o artefato da lib. Basta importar a lib em seu projeto, não será necessário fazer mais nenhuma configuração como foi feito na lib RXTX, que tínhamos que colocar duas DLLs para fazer a comunicação.

Desenvolvi a tela de nossa aplicação usando SceneBuilder, que trabalha com FXML. Iremos fazer nossa tela com JavaFX, já que estamos trabalhando com uma lib nova, nada melhor que criarmos nossas telas com JavaFX, que é o futuro do Java Swing para criar telas ricas em componentes.

Caso não tenha nenhum conhecimento em JavaFX e não saiba criar as telas, fiz uma série de JavaFX com SceneBuilder para iniciantes, está em nosso canal Youtube, você pode conferir clicando aqui.

Nossa tela ficará assim:

Coloquei alguns IDs, um para nosso ComboBox e outro para nosso Button ‘conecta’:

VAMOS INTEGRAR

Usaremos a seguinte estrutura inicial:

Fizemos a ligação dos componentes que iremos utilizar (cbPortas, btnConectar) em nosso Controller e declaramos as variáveis porta e led. A variável porta é o objeto SerialPort da nossa biblioteca jSerialComm, e a variável led é o estado do nosso led (ligado/desligado).

O primeiro passo é listarmos as portas COM existentes, para isso iremos criar uma método chamado: carregarPortas():

Chamaremos o método carregarPortas() em nosso inicialize():

Agora vamos dar uma ação ao nosso botão ‘Contectar’, criaremos a On Action chamada: conectar(). E agora que iremos conectar uma porta COM com nossa aplicação.

Depois de conectado, vamos para a parte mais legal, que é ligar e desligar nosso led pela nossa aplicação JavaFX. Para isso temos que criar outro On Action, dessa vez no botão ‘Ligar/Desligar’:

O resultado final será esse:

Download dos projetos – (Incompleto e Completo):

Incompleto (sem a funcionalidade de integração, para acompanhar o tutorial passo a passo) e Completo (esse é o resultado final do tutorial).

Download – Projeto Incompleto 

Download – Projeto Completo

 


Samuelson
Samuelson

Apenas um desenvolvedor que resolveu compartilhar o que aprendeu, procuro passar a realidade do desenvolvimento de software com exemplos práticos e sem enrolação. Trabalho com desenvolvimento de SREP (Sistemas de Registo Eletrônico de Ponto) e integração de leitores biométricos de acordo com os padrões da portaria 373/2011.

    3 replies to "Comunicando JavaFX com Arduino usando jSerialComm"

    • KERROUCHI Slimane

      thanks for this program, it was very helpful to me, but a problem is “the door” what is mean that?

    • KERROUCHI Slimane

      i found a problem of the door, when i translated a page to english they translated a variable portas to the door.
      (^-^)

      • Samuelson

        You’re welcome

Leave a Reply

Your email address will not be published.