Python Developer for Raspberry Pi-Based Door Access Logger (RFID + Relay Control) - Contract to Hire
Hello, we're a large Singaporean pharmaceutical company based in Indonesia.
Currently were developing an internal access control prototype for our company using a Raspberry Pi 4 as the edge controller. This system will manage physical access to restricted areas (e.g., lab rooms, server closets, tool storage) and must reliably log all events for audit and compliance purposes.
We need someone who can build a Python-based application that interfaces with RFID hardware (RC522) to validate access cards, trigger a relay (electronic door strike), and log all access attempts locally with precise timestamps. Future versions may include encrypted credential sync or networked logging, but the current focus is a self-contained local MVP.
Hardware Setup (current design, open for suggestions/alternatives):
Raspberry Pi 4 (8GB RAM, PoE hat, industrial enclosure)
MFRC522 RFID reader (SPI) + optional upgrade path to USB smart card reader (ACS ACR122U or similar)
12V powered electronic strike lock via opto-isolated relay
Encrypted microSD or USB SSD for log storage
Industrial-grade buzzer, RGB status LED, and optional 16x2 I2C LCD
Magnetic reed switch or Hall effect sensor for door state feedback
TMP117 or similar digital temp sensor for cabinet diagnostics
Optional battery + UPS HAT for power loss protection
Functional Requirements:
Read RFID UID or smartcard token (HMAC/SHA-based UID optional)
Auth flow:
- UID lookup in encrypted local whitelist (JSON/SQLite w/ passphrase)
- Validate access window (e.g., time-based restrictions)
- If granted:
- Unlock strike (relay ON) for 3s
- Show green LED, short buzzer, optional LCD message
- Log: UID, timestamp, zone ID, result = "granted", door state = opened
- If denied:
- Red LED, long buzzer, deny message
- Log: UID, timestamp, result = "denied"
Log format: digitally signed entries or SHA256 hash chain
Log retention: circular buffer or sync-to-cloud script
Autostart via systemd, watchdog/restart service if crash
Remote SSH + optional HTTPS API for status/query
Anti-tamper hooks (log on reader disconnect, enclosure open via GPIO)
Config-driven system (zones, access windows, device ID)
Expected Requirements:
- Python 3.x, with hardware abstraction
- Strong experience in Raspberry Pi GPIO, SPI, I2C
- SQLite (w/ encryption if possible) or other secure storage
- Digital signature or hash-based tamper-evident logs
- Familiarity with systemd, Bash scripting, SSH config
Optional: Flask/FastAPI for local REST endpoint
Bonus: Experience with MQTT or OTA update design
Deliverables:
- Clean, modular Python codebase
- Hardware wiring diagram + deployment steps
- Secure setup guide (OS hardening, SSH best practices)
- 1 working MVP with at least 2 user access roles (admin, staff)
To Apply, please send examples of relevant projects, especially physical security, industrial IoT, or Raspberry Pi deployment at scale. GitHub links preferred.
Apply Job!
Apply to this Job