ChamberGuard Touch Panel is a lightweight operator console for a small environmental test chamber running on a 7-inch 1024×600 touch display. It provides live temperature and humidity monitoring, recipe control, alarm acknowledgement, and local history logging from a Python service connected to a Modbus RTU chamber controller.
- Touch-first 1024×600 operator interface
- Live chamber state through Server-Sent Events
- Temperature and humidity setpoint changes
- Run, hold, stop, fan, light, and alarm acknowledgement actions
- Modbus RTU register access through a Python hardware adapter
- SQLite logging for readings and operator actions
- Safe offline state when the chamber controller is not reachable
- Chromium kiosk launch script
- systemd service file for boot startup
- Raspberry Pi or equivalent Linux SBC
- 7-inch 1024×600 capacitive touchscreen
- USB-RS485 adapter
- Environmental chamber controller with Modbus RTU support
The register map is isolated in backend/hardware/register_map.py, so it can be adjusted for the exact controller without changing the web interface.
cd chamber-guard-touch-panel
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python backend/app.pyOpen:
http://localhost:8080
Environment variables:
export CHAMBER_SERIAL_PORT=/dev/ttyUSB0
export CHAMBER_BAUDRATE=9600
export CHAMBER_MODBUS_SLAVE_ID=1
export CHAMBER_DB_PATH=./data/chamberguard.sqlite3sudo cp systemd/chamberguard.service /etc/systemd/system/chamberguard.service
sudo systemctl daemon-reload
sudo systemctl enable chamberguard
sudo systemctl start chamberguardStart the touchscreen browser shell:
./scripts/launch-kiosk.shbackend/
app.py Flask application and API routes
config.py Runtime configuration
hardware/
chamber_modbus.py Modbus RTU chamber adapter
register_map.py Controller register definitions
services/
data_store.py SQLite reading/action log
chamber_service.py Polling, state cache, and command handling
frontend/
templates/index.html Touch panel layout
static/app.js UI logic and live stream handling
static/styles.css 1024×600 touchscreen styling
scripts/launch-kiosk.sh Chromium touchscreen launcher
systemd/chamberguard.service Boot service example
docs/CONTROLLER_PROTOCOL.md Register map and integration notes