Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fdelporte/vaadin-examples
Examples of Vaadin interacting with the GPIOs of the Raspberry Pi
https://github.com/fdelporte/vaadin-examples
Last synced: about 1 month ago
JSON representation
Examples of Vaadin interacting with the GPIOs of the Raspberry Pi
- Host: GitHub
- URL: https://github.com/fdelporte/vaadin-examples
- Owner: FDelporte
- License: unlicense
- Created: 2022-03-05T10:45:36.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-09-26T12:35:11.000Z (about 1 year ago)
- Last Synced: 2024-05-01T17:29:00.474Z (7 months ago)
- Language: Java
- Size: 1.77 MB
- Stars: 3
- Watchers: 4
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Pi4J Demo
This is a Spring-based demo project to show how a Vaadin User Interface (website) can interact with the GPIOs of a
Raspberry Pi by using the [Pi4J library](https://www.pi4j.com).Following versions of this code are available in branches:
* [vaadin-23-spring-2.6](https://github.com/FDelporte/Vaadin-examples/tree/vaadin-23-spring-2.6): Initial example with
LED output and button input, based on Vaadin 23 and Spring Boot 2.6. It is described in detail
in [this Foojay.io blog post](https://foojay.io/today/blink-a-led-on-raspberry-pi-with-vaadin/).
* [main](https://github.com/FDelporte/Vaadin-examples/tree/main): Extended example with Vaadin 24.0.4, Spring Boot
3.0.6, and Pi4J 2.3.0. Configuration of the component is specific for the CrowPi 1, based on example
code [described here](https://pi4j.com/getting-started/crowpi/).## Vaadin UI
The base code with different Vaadin layouts, was generated on [start.vaadin.com/app](https://start.vaadin.com/app).
![Vaadin UI](doc/screenshot-running-on-rpi.png)
## Components
The application can interact with various components in the CrowPi1.
![Demo content on CrowPi](doc/demo-content-on-crowpi.jpg)
## Upload to Raspberry Pi
If you are developing on a PC, you can build the application with the following command
* Windows: `mvnw clean package -Pproduction`
* Mac & Linux: `./mvnw clean package -Pproduction`and upload to your Raspberry Pi with (replace login `pi` and the IP address with the one of your board)
```shell
$ scp target/pi4jdemo-1.0-SNAPSHOT.jar [email protected]://home/pi/
```## Run on Raspberry Pi
We can now start the application on our Raspberry Pi, but need to run with `sudo` as Pi4J (still) needs this to be able
to interact with the GPIOs using PiGpio as the native library.```shell
$ sudo java -jar /home/pi/pi4jdemo-1.0-SNAPSHOT.jar
```If you installed Java with SDKMAN as a normal user, you will probably get this error
```
sudo: java: command not found
```One way to fix this, is let the command itself lookup where Java is installed by using `which java`:
```shell
$ sudo `which java` -jar /home/pi/pi4jdemo-1.0-SNAPSHOT.jar
```Or specify the Java-runtime to be used:
```shell
$ sudo ~/.sdkman/candidates/java/19.0.2-zulu/bin/java -jar /home/pi/pi4jdemo-1.0-SNAPSHOT.jar
```# Documentation generated by Vaadin start website
This project can be used as a starting point to create your own Vaadin application with Spring Boot. It contains all the
necessary configuration and some placeholder files to get you started.## Running the application
The project is a standard Maven project. To run it from the command line, type `mvnw` (Windows), or `./mvnw` (Mac &
Linux), then open
http://localhost:8080 in your browser.You can also import the project to your IDE of choice as you would with any Maven project. Read more
on [how to import Vaadin projects to different IDEs](https://vaadin.com/docs/latest/flow/guide/step-by-step/importing) (
Eclipse, IntelliJ IDEA, NetBeans, and VS Code).## Deploying to Production
To create a production build, call `mvnw clean package -Pproduction` (Windows), or `./mvnw clean package -Pproduction` (
Mac & Linux). This will build a JAR file with all the dependencies and front-end resources, ready to be deployed. The
file can be found in the `target` folder after the build completes.Once the JAR file is built, you can run it using
`java -jar target/pi4jdemo-1.0-SNAPSHOT.jar`## Project structure
- `MainLayout.java` in `src/main/java` contains the navigation setup (i.e., the side/top bar and the main menu). This
setup uses [App Layout](https://vaadin.com/components/vaadin-app-layout).
- `views` package in `src/main/java` contains the server-side Java views of your application.
- `views` folder in `frontend/` contains the client-side JavaScript views of your application.
- `themes` folder in `frontend/` contains the custom CSS styles.## Useful links
- Read the documentation at [vaadin.com/docs](https://vaadin.com/docs).
- Follow the tutorials at [vaadin.com/tutorials](https://vaadin.com/tutorials).
- Watch training videos and get certified at [vaadin.com/learn/training](https://vaadin.com/learn/training).
- Create new projects at [start.vaadin.com](https://start.vaadin.com/).
- Search UI components and their usage examples at [vaadin.com/components](https://vaadin.com/components).
- View use case applications that demonstrate Vaadin capabilities
at [vaadin.com/examples-and-demos](https://vaadin.com/examples-and-demos).
- Discover Vaadin's set of CSS utility classes that enable building any UI without custom CSS in
the [docs](https://vaadin.com/docs/latest/ds/foundation/utility-classes).
- Find a collection of solutions to common use cases in [Vaadin Cookbook](https://cookbook.vaadin.com/).
- Find Add-ons at [vaadin.com/directory](https://vaadin.com/directory).
- Ask questions on [Stack Overflow](https://stackoverflow.com/questions/tagged/vaadin) or join
our [Discord channel](https://discord.gg/MYFq5RTbBn).
- Report issues, create pull requests in [GitHub](https://github.com/vaadin/platform).