Problema al transmitir datos de arduino y leerlos en java

Inicio Foros Arduino + Java Problema al transmitir datos de arduino y leerlos en java

Mostrando 5 respuestas a los debates
  • Autor
    Publicaciones
    • #11509
      leviathandavid
      Participante

      Pues eso, estoy tratando de enviar datos de arduino a java para mostrarlos en una aplicacion web usando javaEE y payara como servidor de aplicaciones, basicamente debo leer 5 sensores y mostrar los valores en una pagina web, los sensores todavia no se han conseguido asi que hice una simulacion de envio de valores. el problema ocurre cuando java recibe los datos, cuando uso el serial monitor de IDE me muestra los datos ordenados, pero cuando java los lee no se muestran correctamente. asi que hice unas pruebas con la funcion delay de arduino y digamos que mitigo el error pero se que asi no se debe hacer una aplicacion de la complejidad que estoy desarrollando, aqui unas imagenes…

       

      sin la funcion delay

      sin delay

      con la fincion delay a 21

       

      usando la funcion delay a 35 puede haber errores…

       

       

       

       

      el codigo lo voy a cargar en un archivo plano con algunos comentarios.

      Muchas gracias.

       

       

      Adjuntos:
      Debes acceder para ver los archivos adjuntos.
    • #11512
      Antony García González
      Superadministrador

      Hola amigo. Gracias por participar de este foro.

       

      La librería PanamaHitek_Arduino cuenta con una herramienta especial para la gestión de múltiples mensajes simultáneos. Se trata de la clase MultiMessage, la cual puedes ver en acción si compilas los códigos de ejemplo de la librería. Estos los puedes encontrar en nuestro repositorio de Github.

      Te invito a que subas este código en Arduino y luego corras este código en Java y verás los resultados. Arduino envía los valores de 4 variables y Java los recibe en orden para luego imprimirlos en la consola.

      Espero que esta información te sea útil y nos cuentes como te va. Saludos.

    • #11565
      leviathandavid
      Participante

      Muchar gracias por responder, he adaptado el codigo que esta en git al proyecto y sigo teniendo el mismo problema.

      la salida por consola es la siguiente:

      Info: _______________________________
      Info: Sensor 1: 10a1650.00
      Info: Sensor 2: a1651.00
      Info: Sensor 3: f66
      Info: Sensor 4: a1652.00
      Info: Sensor 5: a1653.00
      Info: Sensor 6: a1654.00
      Info: _______________________________
      Info: Sensor 1: 00
      Info: Sensor 2: a1656.00
      Info: Sensor 3: b67.00
      Info: Sensor 4: a1657.00
      Info: Sensor 5: a1658.00
      Info: Sensor 6: a1659.00
      Info: _______________________________
      Info: Sensor 1: 10a1661.00
      Info: Sensor 2: c67.00
      Info: Sensor 3: a1662.00
      Info: Sensor 4: a1663.00
      Info: Sensor 5: a1664.00
      Info: Sensor 6: a1665.00
      Info: _______________________________
      Info: Sensor 1: 66.00
      Info: Sensor 2: d67
      Info: Sensor 3: a1667.00
      Info: Sensor 4: a1668.00
      Info: Sensor 5: a1669.00
      Info: Sensor 6: a1670.00
      Info: _______________________________
      Info: Sensor 1: 10e67
      Info: Sensor 2: a1672.00
      Info: Sensor 3: a1673.00
      Info: Sensor 4: a1674.00
      Info: Sensor 5: a1675.00
      Info: Sensor 6: a1676.00
      Info: _______________________________

       

      como se puede ver, aun se mezclan las lecturas.

      La funcion serial quedo asi:

      muchas gracias.

      *por si acaso les comparto el controlador que estoy usando… ignoren el metodo send()

      Adjuntos:
      Debes acceder para ver los archivos adjuntos.
    • #11570
      Antony García González
      Superadministrador

      Podría ver tu código en Arduino?

    • #11572
      leviathandavid
      Participante

      claro no hay problema con eso…

       

      *ignorar la funcion Serial.print(«») despues de la funcion loop, eran pruebas que estaba haciendo a ver si pasaba el mismo error

      Adjuntos:
      Debes acceder para ver los archivos adjuntos.
    • #11576
      Antony García González
      Superadministrador

      Después de ver tu código te recomiendo:

      • Eliminar el Serial.print
      • Establecer un delay en cada ciclo para el envío de los datos. Tal parece ser que el Puerto Serie se está saturando con el envío de tanta información en muy poco tiempo. Básicamente estás enviando datos a la velocidad del loop(), lo cual es mucho para Java. Otra opción podría ser aumentar la velocidad a 115200 baudios (tanto en Arduino como en Java), lo cual permitiría manejar más información en menos tiempo. Aún así, un delay pequeño es recomendable para darle tiempo a Java de recibir los datos y procesarlos.

      Me dices como te va. Saludos.

Mostrando 5 respuestas a los debates
  • Debes estar registrado para responder a este debate.