This repository contains a prototype for modernizing room access and attendance tracking at the CESI Caen campus. The project uses a hybrid Edge+Cloud IoT approach to replace physical keys and paper attendance with NFC-based identification, local access validation, and centralized attendance logging.
Guidelines:
-
All code and comments (including TODOs) MUST be written in ENGLISH.
-
Put test code and experimental examples under
04_Developpement_Code/(for example04_Developpement_Code/tests/). -
Keep TODOs short, actionable, and include an owner and a target date when possible. Example TODO usage:
// TODO(owner): Improve NFC debounce handling — investigate interrupt-based approach.
The system uses a hybrid (Edge + Cloud) approach to balance responsiveness and centralized management:
- Edge Processing (Local): Local access validation and unlocking with sub-2s response. The edge can operate in degraded mode when the cloud is unavailable.
- Cloud Centralization: Synchronizes user profiles, stores timestamped attendance records, and provides analytics dashboards.
The prototype is split into two primary subsystems (Grove-compatible components for rapid prototyping):
-
Central Badge Reader (Badgeuse) — a mains-powered kiosk that handles high-volume interactions.
- Wio Terminal
- XBee Module + Support Bee
- Grove NFC Module
-
Smart Lock (Serrure Connectée) — a battery-powered lock mounted on doors.
- Arduino Uno R4
- Grove Base Shield
- XBee Module + Support Bee
- Grove NFC Module
- Grove LED Modules (red/green status)
- Local links: XBee network between locks and the central badge reader.
- Identification: NFC (physical badges or smartphone emulation).
- Server sync: MQTT or CoAP (lightweight protocols with QoS options) between the central badge reader and the cloud server.
- Ultra-Low Latency: Identification → validation → unlock in under 2 seconds.
- Automated Attendance: Timestamped, centralized logs that remove paper attendance sheets.
- High Availability: Target >95% uptime; local caching when the cloud is unreachable.
- Security: Role-based access control (RBAC), unique IDs, and encrypted transport.
This README is a living document. When the codebase stabilizes, add:
- Compilation and dependency instructions for edge devices and gateway software.
- MQTT broker configuration and topics schema.
- How to provision users and roles (ERP integration notes).