Access control system for door locks and traffic barriers. Supports cameras that read license plates, card readers, push buttons and has a web interface to operate gates, view logs and manage users and permissions.


Gatekeeper is an access control system that consists of custom-designed controllers, IP cameras, and an on-premises control server. Each controller controls a magnetic lock or electric vehicle barrier and is connected to a card reader (or keypad) and multiple external buttons.

The controllers communi­cate with the control server over a local network. When a controller receives input from the card reader, a request is sent to the control server to determine if the code is valid or not. The controller then toggles a relay to open the gate if the code is valid.

Examples of vehicle barriers

Gates can also be opened through a web interface or when a camera detects a license plate. For license plate recognition, a third party solution called OpenALPR is used.


The control server (cloud) exposes a web interface where user permissions can be set. Each user can have associated access methods. The method type can be a card number, a PIN, or a license plate. The web interface also shows live streams from the gates, and controls to operate the gates. Users can have a non-admin status so that they can not modify access methods or settings.

Screenshots of the web interface

In addition, the following features are worth mentioning

  • Attempts to open gates are logged along with images from the cameras. If the attempt fails, a reason will be displayed (not found, expired or disabled).

  • Users can configure email alerts that can be limited to certain users, gates, or hours. An image from the event is attached to the emails.

  • Statistics are collected from cameras and controllers every 5 minutes. Old snapshots can be deleted to prevent the disk from filling up.

  • External services can modify users and access methods through a REST API.

Screenshots of the web interface on mobile


The controller was designed and assembled from scratch. It has an ATmega328P microcontroller and a WIZnet W5500 Ethernet controller, a Wiegand interface for card readers (or keypads), 3 inputs for external buttons (or any other trigger) to open the gate, and 4 relays for opening or closing the gate and controlling a red and green traffic light.

Two of the external inputs open the gate unconditionally (even if the network is down) while the third one will ask the cloud. The third button can be configured in the cloud interface (possible modes are enabled, disabled, and timer controlled). The fourth input is used for vehicle detection for license plate access, so that the gate is only opened when a car is in front of the gate (and not further away).

To connect a controller to the cloud, it needs to be connected to the local network. Its web interface can then be opened where a cloud IP and token can be configured.

First revision of the Gatekeeper hardware controller

This page will be updated in the future (maybe along with a blog post). The system is currently being tested at a large campsite in Iceland.