Raspberry Pi QR Barcode HTTP Uploader
Budget: £20 – £250 GBP
Hardware
• Raspberry Pi V5
• OS Debain Bookworm – No Desktop
• Qty 4 X USB - QR Barcode Scanners
Language
• Python 3
Requirements
• Detect a USB Barcode Scanner connected to a Raspberry Pi port
• Maintain a “Port Reference Number” for each connected scanner, ie P1 would be the scanner connected to USB Port 1, P2, USB Port 2 etc.
• If a scanner is removed and reconnected the reference number and port must be maintained.
• Listen for a barcode scan, capture the raw string, add the “Port Reference Number” to the string
• Post the string to a PHP endpoint (eg, http://192.168.1.100/scan.php)
• No GUI required, the Python script should run head-less, start automatically on boot, and gracefully handle the scanner being unplugged or reconnected.
• Script should rely on well-supported libraries such as evdev, pyusb, or similar, keep external packages minimal, and use the requests module (or equivalent) for the outbound HTTP call.
Deliverables
• Python source code + requirements.txt
• systemd service file (or another boot-time solution)
• Brief README covering installation, changing the endpoint URL, and basic troubleshooting
Acceptance is simple: when I scan a code, my server log must show a JSON payload containing the Port Reference Number, Barcode string and a Timestamp within a second, without Pi-side errors.
• Raspberry Pi V5
• OS Debain Bookworm – No Desktop
• Qty 4 X USB - QR Barcode Scanners
Language
• Python 3
Requirements
• Detect a USB Barcode Scanner connected to a Raspberry Pi port
• Maintain a “Port Reference Number” for each connected scanner, ie P1 would be the scanner connected to USB Port 1, P2, USB Port 2 etc.
• If a scanner is removed and reconnected the reference number and port must be maintained.
• Listen for a barcode scan, capture the raw string, add the “Port Reference Number” to the string
• Post the string to a PHP endpoint (eg, http://192.168.1.100/scan.php)
• No GUI required, the Python script should run head-less, start automatically on boot, and gracefully handle the scanner being unplugged or reconnected.
• Script should rely on well-supported libraries such as evdev, pyusb, or similar, keep external packages minimal, and use the requests module (or equivalent) for the outbound HTTP call.
Deliverables
• Python source code + requirements.txt
• systemd service file (or another boot-time solution)
• Brief README covering installation, changing the endpoint URL, and basic troubleshooting
Acceptance is simple: when I scan a code, my server log must show a JSON payload containing the Port Reference Number, Barcode string and a Timestamp within a second, without Pi-side errors.