Para poder utilizar Java y Arduino necesitamos utilizar una librería especial en Java llamada RXTX. Esta librería es requerida por Java para enviar y recibir información a través del puerto serie.
Podemos encontrarla en este enlace:
Librerías RXTX para Windows 32 bits y 64 bits
Descargamos el archivo que nos corresponda según la arquitectura que estemos utilizando.
Ahora tenemos que instalar las librerías.
Nos dirigimos al disco C, o donde sea que tengamos nuestro sistema operativo instalado. Buscamos archivos de programas, Java. Cuando entremos a la carpeta Java encontramos otra carpeta llamada jre. En mi caso me aparece jre7.
Ahora hacemos lo siguiente:
El archivo RXTXcomm.jar lo copiamos en la carpeta lib/ext que está dentro de la carpeta jre.
También es necesario copiarlo en la siguiente ruta:
C:Program Files/Java/jdk1.7.0_15/bin
Haciendo esto hemos preparado nuestra computadora para que sea capaz de comunicar a Arduino con una aplicación Java.
Si se les presenta algún error con el funcionamiento de esta librería pueden consultar el siguiente post:
Librería Arduino para Java: Troubleshoot
Si tienen algún comentario no duden en hacérmelo llegar.
Saludos.
Es necesario acer esto incluso disponiendo de la libreria ARDUINO que personalisaste??
Si. La librería RXTX es indispensable para comunicación Serial. La misma librería Arduino utiliza RXTX por lo que si no se importa al proyecto no va a funcionar.
y para gnu/linux ?? sirven o no son necesarias las librerias ??
Ya solucione me tocaba copiar librxtxSerial.so y librxtxSerial64.so y cambiar COM por /dev/ttyACM0, todo lo demás que tienes en el blog me ha servido un resto gracias !!!
Me alegra que se halla resuelto el problema
Lucas, donde copiaste librxtxSerial.so y librxtxSerial64.so? tengo el mismo problema, gracias.
entonces si quiero que mi aplicacion sea portable, como lo hago? tengo que instalar las librerias en cada maquina que quiera que ejecute el programa?
En cualquier computadora que vayas a utilizar para comunicarte con Arduino a través del puerto Serie necesitas tener instalado los drivers del puerto Serie. En cuanto a las librerías, cuando compilas el proyecto en Netbeans hay una carpeta donde se coloca el ejecutable. En ese directorio se colocan los archivos necesarios para que tu programa corra y ahí se incluirán las librerías que este usando el programa. SI te fijas, en tu PC hay una carpeta llamada Archivos de programas o Program Files. Ahí están los ejecutables y la mayoría de los archivos que tus programas usan para correr. Se podría hacer un instalador que coloque los drivers rxtx en las librerías correspondientes para las computadoras en las cuales vayas a usar tu programa
todo esto tambien es necesario para hacerlo en mac?
No tengo experiencia en Macintosh, no podría decirte qué es lo que necesitas para trabajar con Arduino
Me aparece este error
javac: invalid target release: 1.7
Usage: javac
use -help for a list of possible options
C:UsersHp LaptopDocumentsNetBeansProjectsGraphicsnbprojectbuild-impl.xml:915: The following error occurred while executing this line:
C:UsersHp LaptopDocumentsNetBeansProjectsGraphicsnbprojectbuild-impl.xml:268: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 2 seconds)
Creo que es en la parte de graficos
Me aparece este error
javac: invalid target release: 1.7
Usage: javac
use -help for a list of possible options
C:UsersHp LaptopDocumentsNetBeansProjectsGraphicsnbprojectbuild-impl.xml:915: The following error occurred while executing this line:
C:UsersHp LaptopDocumentsNetBeansProjectsGraphicsnbprojectbuild-impl.xml:268: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 2 seconds)
Esta misma libreria sirve en Ubuntu 12.04?
Negativo. En la página oficial de RXTX hay versiones para Linux
me sale esto:
Exception in thread «AWT-EventQueue-0» java.lang.UnsupportedClassVersionError: com/panamahitek/PanamaHitek_Arduino : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at lm35.excel.Window.(Window.java:10)
at lm35.excel.Window$3.run(Window.java:117)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:745)
at java.awt.EventQueue.access$300(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:706)
at java.awt.EventQueue$3.run(EventQueue.java:704)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:715)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Alguien sabe como solucionarlo ya copie el RXTX al JDK y al jre pero me lo sigue marcand
Si funciona
Hola, amigo no puedo enviar los datos recopilados al excel
Cuál es el problema?
buenas ingeniero, como haría para agregar o eliminar las distintas Tags RFID desde java, con el fin de dar acceso de ingreso o por el contrario restringirlo
Necesitas una base de datos en la cual puedas almacenar la información
gracias por su respuesta… he si bueno yo estoy haciendo el enlace arduino RFID-java-Mysql, pero actualmente el código que estoy utilizando de el arduino, yo autorizo el acceso agregando el codigo interno de las Tags desde el sofware arduino. pero mi pregunta es como seria para que el arduino simplemente lea el codigo y compare con los que estan en la base de datos y me permita el «acceso concedido» o por el contrario me deniege el acceso si esta (Tag) no esta registrada?..
Tienes que construir un puente entre tu base de datos y Arduino a través de Java