Testing IoT systems for years leads naturally to building one. A good first problem is attendance at in-person training: tedious to record by hand, easy to get wrong, and a clean fit for IoT and AI together.
The idea is simple. A proximity sensor notices someone near the camera. A Raspberry Pi with a webcam captures their face. A face-recognition model identifies them. Attendance is marked, a report is compiled and sent, and unauthorised access raises an alert.
The architecture
- Proximity sensor: detects a person close to the camera, so capture happens only when it should.
- Raspberry Pi and webcam: capture, and recognition at the edge.
- Server: image processing, model operations (training and updating), attendance management, reporting and admin tasks.
- Attendance service: marks attendance, compiles reports and emails them.
- API service: lets other systems, and a mobile app, use attendance without knowing how it works.
Why it is shaped this way
- The sensor gates the camera. Capturing only when someone is present saves power, storage and false matches.
- Recognition sits close to the camera, so the system stays fast even when the network is not.
- Model operations live on the server, so training and updating never interrupt capture.
- The API keeps it standalone. It can serve one training room or plug into a larger system without changing.
What comes next
- Deploy it as a standalone system for training programmes.
- 3D face recognition, harder to fool than a photo.
- A mobile app.
- Custom attendance rules, because every organisation counts differently.
- Analytics and insights on top of the records.
- Privacy designed in from the start: what is stored, for how long, and who can see it.
It is a small system, and a complete one: sense, decide, act, report. The same shape scales to much bigger worlds.
Drafted in 2018
Updated for site in 2026