This is the client application for Presentium, running on the Raspberry Pi devices.
The app is designed to run on a Raspberry Pi 5. Due to a GPIO chip change for the Pi 5, it might not work on older models.
The display used in the development of this app is a LCD1602 with I2C interface.
| Display pin name | Physical RPi pin | RPi pin name |
|---|---|---|
| VCC | 2, 4 | 5V |
| GND | 6, 9, 20, 25 | Ground |
| SDA | 3 | GPIO2, SDA |
| SCL | 5 | GPIO3, SCL |
Any RC522 RFID reader should work. The one used in the development of this app is the Joy IT RFID-RC522.
Connecting RC522 module to SPI is pretty easy. You can use this neat website for reference.
| Board pin name | Physical RPi pin | RPi pin name |
|---|---|---|
| SDA / NSS | 24 | GPIO8, CE0 |
| SCK | 23 | GPIO11, SCKL |
| MOSI | 19 | GPIO10, MOSI |
| MISO | 21 | GPIO9, MISO |
| IRQ | 18 | GPIO24 |
| GND | 6, 9, 20, 25 | Ground |
| RST | 22 | GPIO25 |
| 3.3V | 1,17 | 3V3 |
Local development can't really be done on a computer, as the application is designed to run on a Raspberry Pi. However, you can run the app and test it on the Raspberry Pi.
For this, the easiest method is to have the Raspberry Pi set up with the Presentium OS.
Once the Raspberry Pi is set up, you can SSH into it and clone this repository. Then, you can run the following commands to start the app:
cd rpi-client-app
python3 -m venv presentium-venv
source presentium-venv/bin/activate
pip install -r requirements.txt
python3 main.pyDon't forget to copy the default config file and edit it to your needs:
cp config/config.ini.default config.iniThis app is automatically packaged on every tag push. A release is created with the tag name and the package is attached to it.
The CI then triggers a workflow on the deb package repository, which will download the package and store it in the repository.
The raspberry pi devices are then configured to automatically update the app when a new release is available using APT Unattended Upgrades.
Please refer to the Contributing Guide before making a pull request.