Accsys develops enterprise Access Control and Time & Attendance solutions.
Part of our offering, is a mobile app (iOS and Android) that uses geo-fencing to allow employees to clock into work areas defined by their GPS coordinates. Although the core of our solution revolves around biometric identification (fingerprint, face-recognition, etc), numerous use-cases (drivers, security guards, sales people) dictate the need to report for duty where the employer are not the custodian of the infrastructure and biometric readers.
Geo-fencing enables these employees to ‘clock-in’ for duty from anywhere in the world.
So we know when a person arrived at his destination with his cargo (Time & Attendance), but what if he/she needs to enter the store-room to deliver his packages (Access Control)? How can we make that same mobile app drive the relay on a magnetic lock or electronic striker?
SQL Anywhere and the Raspberry Pi
Our mobile app already uses JSON web services developed and hosted on the client’s SQL Anywhere database. The next step was to use that same web service call that received the request to ‘clock-in’ at a given GPS location, to activate the necessary relays in order to grant access to one or more secure areas.
After loading Raspbian OS on the Pi, we installed Sybase SQL Anywhere 16 for ARM.
With our web services listening for incoming requests, it was relatively straight forward to extend the logic to initiate a Python script that uses GPIO to turn on/of a GPIO pin. From there, it was a simple matter of driving the necessary relays to activate a number of doors in close proximity.
It is unlikely that this prototype will find its way into a final solution. For one, the SQL Anywhere that typically runs on a dedicated server in order to handle the load of full T&A and payroll calculations, will struggle to handle the load when running off the Pi. But we can easily let the primary database relay the instruction to release a mag-lock to a secondary server running on a Pi next to the door that needs to be opened.
Costs, reliability, scalability, and support considerations are to be evaluated.
We’ll report back to this forum as we progress.