System Architecture

Services
-
Arduino Configuration:
Supports remote Arduino programming via Bluetooth (StandartFirmata_Bluetooth) or USB (StandartFirmata) using pyFirmata. Devices are configured by uploading the appropriate firmware through the Arduino IDE.
- System Setup:
The system runs on multiple Raspberry Pi containers managed with Docker Compose. Each container provides specific services:
- Development: All services for live development.
- Pi-1: MQTT broker and analysis.
- Pi-2: Time slot booking.
- Pi-3: MQTT endpoint.
-
MQTT Broker (Mosquitto):
Facilitates communication between system components on port 1883. MQTT-Explorer is recommended for testing.
-
Database (InfluxDB):
Stores time series data collected by the system. Accessible at port 8086 with default credentials (“grafana”/”password”).
- Time Slot Booking Service:
Users book library visits via a web interface (http://localhost:5000/). Bookings require basic personal information and are cached in Redis (http://localhost:6379/).
See the Wiki for full documentation.