Java en Raspberry Pi-Part 2: ¿Control de GPIOS con un código de servicio Spring-Rest Código de inicio de sesión de inicio de sesión?¡Gracias por el registro de su evaluación!¡Gracias por tu reseña!

Java en Raspberry Pi-Part 2: ¿Control de GPIOS con un código de servicio Spring-Rest Código de inicio de sesión de inicio de sesión?¡Gracias por el registro de su evaluación!¡Gracias por tu reseña!

La versión del sistema operativo Raspberry Pi OS Full (32 bits) ya contiene el Java Development Kit (JDK) en la versión 11. Sin embargo, para desarrollar aplicaciones Java, un IDE nos ayuda a escribir aplicaciones que son facil de mantener. Como se describe en el artículo anterior [1], Visual Studio Code se puede usar en Raspberry Pi. Alternativamente, las aplicaciones en Visual Studio Code también se pueden desarrollar en una PC y luego compilar y ejecutar en Raspberry Pi.

Para este artículo, escribiremos el código directamente en la Raspberry Pi. Para hacer esto, necesitamos algunas herramientas adicionales, así que primero las instalaremos.

Maven

Usaremos Maven para compilar la aplicación en nuestra Raspberry Pi. Maven compila el código en un solo archivo JAR junto con las dependencias requeridas. Esto es posible gracias al archivo de configuración pom.xml ubicado en la raíz del proyecto.

Maven se instala con un solo comando. Después de eso, verificamos la instalación consultando la versión de la siguiente manera:

$ sudo apt install maven$ mvn -vApache Maven 3.6.0Inicio de Maven: /usr/share/maven

Pi4J

Para controlar los GPIO y varios componentes electrónicos conectados a ellos, usamos la biblioteca Pi4J, que crea un puente entre nuestro código Java y los pines GPIO de Raspberry Pi (GPIO = entrada/salida de propósito general). Para obtener la biblioteca Pi4J completa compatibilidad con Raspberry Pi, necesitamos instalar algún software adicional. Solo necesitamos un comando para esto:

$ curl -sSL https://pi4j.com/install | sudobash

Actualizar desde WiringPi

Se requiere un paso final de preparación. Si está utilizando una Raspberry Pi◦4, deberá actualizar la biblioteca nativa de WiringPi utilizada por Pi4J para controlar los GPIO. Dado que la arquitectura del sistema en chip (SoC) ha cambiado con la versión 4, se requiere una nueva versión de WiringPi. Desafortunadamente, este proyecto ha quedado "obsoleto" en el último año, pero gracias a la comunidad de código abierto, está disponible una versión no oficial que se puede instalar a través de un script proporcionado por Pi4J. Para hacer esto, ejecute el comando:

sudo pi4j -wiringpi

El comando extrae el proyecto de GitHub, lo compila y lo instala en su Raspberry Pi de una sola vez. Si consulta la versión, verá que se ha actualizado a 2.60 desde la versión predeterminada 2.50:

$ gpio -vgpio versión: 2.50$ sudo pi4j –wiringpi$ pi4j -v------------------------------- ------------- EL PROYECTO Pi4J---------------------------------- - ---------- PI4J.VERSIÓN: 1.3 PI4J.TIMESTAMP: 2021-01-28 04:14:07-------------------- - ------------------- WIRINGPI.PATH : /usr/lib/libwiringPi.so /usr/local/lib/libwiringPi.so WIRINGPI.VERSION : 2.60--- - ------------------------------------------------- -----

La aplicación

El código completo de esta aplicación está disponible en el repositorio de GitHub de este artículo [2] en la carpeta elektor/2106. Este proyecto es una aplicación de prueba de concepto que controla los GPIO a través de un servicio web REST. Utiliza Spring Framework, un software que ofrece muchas herramientas para crear aplicaciones potentes con un código mínimo (Imagen 1).

El proceso para crear los distintos archivos que conforman este proyecto se describe a continuación. Si eso no funciona, el código del repositorio debería funcionar de inmediato.

El proyecto terminado se descargará de GitHub de la siguiente manera:

pi@raspberrypi:~ $ git clone https://github.com/FDelporte/elektorCloning into 'elektor'...remote: Enumeración de objetos: 34, done.remote: Conteo de objetos: 100% (34/34) , done.remote: Comprimir objetos: 100 % (24/24), done.remote: Total 34 (delta 2), reutilizado 34 (delta 2), empaquetar-reutilizar 0Desempaquetar objetos: 100 % (34/34), listo. pi@raspberrypi:~ $ cd elektor/2106pi@raspberrypi:~/elektor/2106 $ ls -ltotal 8-rw-r--r-- 1 pi pi 1720 15 de febrero 14:23 pom.xmldrwxr-xr-x 3 pi pi 4096 15 de febrero 14:23 src

¿Qué son Spring y sus herramientas?

Spring es un marco que simplifica y acelera el desarrollo de aplicaciones Java (comerciales). Spring Boot es una capa que se encuentra sobre Spring y proporciona paquetes "listos para usar" que hacen posible crear aplicaciones independientes basadas en Spring que puede "simplemente ejecutar". Esto se logra a través de un principio de "convención sobre convención", lo que significa que, por defecto, todo funciona de acuerdo con una convención predefinida. Si quieres hacer algo diferente, puedes configurarlo a tu manera.

El sitio web de Spring Boot enumera las capacidades más importantes [3]:

Fácil creación de aplicaciones Spring independientes.

Le permite incrustar un servidor web en su aplicación (Tomcat, Jetty o Undertow).

Proporciona dependencias "iniciales" para simplificar la configuración de compilación.

Configura automáticamente Spring y bibliotecas de terceros siempre que sea posible.

Proporciona funciones listas para producción, como métricas, comprobaciones de estado y configuración externalizada.

No es necesario generar código ni configurar XML.

Por último, está Spring Initializr [4], una herramienta en línea para crear rápidamente una aplicación de inicio que incluye todos los paquetes de arranque de Spring necesarios.

Cómo empezar

Para construir este proyecto desde cero, primero usaremos Spring Initializr, un formulario de configuración basado en web para crear un paquete de nivel de entrada. Siga el enlace en [4] e ingrese la información que se muestra en la imagen 2 en el formulario.

Asegúrese de hacer clic en el botón Dependencias a la derecha también. En la ventana que se abre, debemos agregar la dependencia Spring Web, que se puede encontrar rápidamente usando el cuadro de búsqueda. Al hacer clic en esta entrada, se agrega la dependencia al proyecto. Si se ha agregado accidentalmente una dependencia no deseada, se puede eliminar nuevamente haciendo clic en el botón rojo (extremo derecho).

Agregar la dependencia Spring Web hace posible crear una aplicación REST [5] que nos permite conectarnos a la aplicación desde páginas web en el navegador.

Al hacer clic en el botón Generar, se obtiene un archivo ZIP con un proyecto Maven terminado. Una vez que se ha descomprimido en un directorio adecuado, se puede abrir en Visual Studio Code [6] tanto en Raspberry Pi como en una PC. Simplemente use Archivo -> Abrir carpeta... y seleccione la carpeta extraída. A continuación, busque el archivo JavaSpringRestApplication.java (en src/main/java). En el menú contextual de este nombre de archivo seleccione la opción Ejecutar para que se inicie la aplicación (Imagen 3).

La instalación de Visual Studio Code no tiene el soporte Java requerido, aparecerá una ventana emergente solicitando la instalación.

En la ventana de terminal, obtenemos el resultado en Listado◦1 (aquí sin marcas de tiempo). ¿Qué nos dice esta salida?

La JVM (Java Virtual Machine) se ejecutó durante siete segundos, de los cuales se necesitaron 4,5◦ para iniciar la aplicación.

Tomcat (el servidor web) está integrado en la aplicación y se ejecuta en el puerto 8080.

Entonces, abramos un navegador y vayamos a http://localhost:8080/ (Imagen 4).

¡Gran decepción! Obtenemos una página de error. ¡Pero eso es solo porque aún no hemos creado nada para mostrar en esta página! Al mismo tiempo, esta página de error demuestra que nuestra aplicación funciona y funciona como un servidor web. Ella simplemente no sabe qué decirnos todavía.

Java en Raspberry Pi - Parte 2 : Control de GPIO con un servicio Spring REST Productos Código para insertar Iniciar sesión ¿Olvidó su contraseña? Regístrese ahora ¡Gracias por su calificación! ¡Gracias por su calificación!