Envío de múltiples datos simultáneos de Arduino a Java

4
1060

Este artículo consiste en una breve demostración sobre el envío de múltiples datos simultáneos de Arduino a Java. Como ya saben muchos de ustedes, nosotros en Panama Hitek hemos creado la llamada librería PanamaHitek_Arrduino, que permite establecer comunicación entre Arduino y Java.

El siguiente video muestra una breve demostración de cómo programar un algoritmo con la capacidad de recibir múltiples datos enviados desde el Arduino hasta una aplicación en Java. Esto es especialmente útil cuando se tienen varios sensores conectados al Arduino y se desea enviar los datos capturados a una aplicación en Java.

 

Sobre este video he subidos algunos códigos de ejemplo a nuestro repositorio en Github. Por ejemplo, subiendo este código en Arduino y ejecutando este código en Java se puede apreciar el resultado del uso de la clase PanamaHitek_Multimessage, tal como se muestra en el video.

Esperamos que la información presentada sea útil para ustedes. Cualquier duda o comentario, no duden en escribirnos a través de la caja de comentarios.

4 Comentarios

  1. Hola cuando llaamo al método arduinoRX(“COM8”, 9600, listener); me saale el siguiente error com.panamahitek.ArduinoException: Nomrbe del puerto – COM8; Nombre del método – arduinoRX(); Tipo de excepción – Puerto no abierto.
    Como habro el puerto; pense que el método ya habría el puerto
    estoy usando la dependencia

    com.github.PanamaHitek
    PanamaHitek_Arduino
    3.0.0

    los felicito por tan buen material

  2. Buenas,

    En mi caso arduino envia un mensaje cada vez, pero este puede ser distinto. La placa envia un mensaje dependiendo de que color detecta el sensor.
    Una vez tengo los mensajes en Java, no se como tratarlos de distinto modo cada uno. Es decir, quiero ejecutar una acción concreta dependiendo del color que recibo.
    Pero cuando transformo el byte que me llega desde Arduino a String no parece que el programa lo reconozca.
    Te adjunto mi codigo arduino por si sabes detectar el error.
    Muchas gracias!

    //Compare Colours
    if (isGreen < isBlue){
    if (isRed < isBlue){
    if (isYellow < isBlue){
    // It's blue.
    Serial.println("The color is Blue");
    Serial.print("\t");
    } else{
    //It's yellow.
    Serial.println("The color is Yellow");
    Serial.print("\t");
    }
    } else {
    if (isYellow < isRed){
    //It's red.
    Serial.println("The color is Red");
    Serial.print("\t");
    } else{
    //It's yellow.
    Serial.println("The color is Yellow");
    Serial.print("\t");
    }
    }
    } else{
    if(isRed < isGreen){
    if(isYellow < isGreen){
    //It's green.
    Serial.println("The color is Green");
    Serial.print("\t");
    } else{
    //It's yellow.
    Serial.println("The color is Yellow");
    Serial.print("\t");
    }
    } else{
    if(isYellow < isRed){
    //It's red.
    Serial.println("The color is Red");
    Serial.print("\t");
    } else{
    //It's yellow.
    Serial.println("The color is Yellow");
    Serial.print("\t");
    }
    }
    }

    • Antes de entrar en Java verifica que en el Monitor Serie se está mostrando la información tal cual la necesitas. Luego, pasas a Java. No veo la necesidad de que hagas la transformación a bytes, cuando en el video se muestra claramente que la librería cuenta con las herramientas necesarias para recibir los datos usando printMessage en combinación con isMessageAvailable.

Dejar respuesta

Please enter your comment!
Please enter your name here