Inspired by the vision of a hassle-less future, we set out to create a security system with the goal of keeping convenience and information safety at an even balance in a confidential corporate setting.

What it does

The idea is for a guest to walk into a building and flash their ID to someone at the front desk. They are then given a wristband with two major components: an infrared LED and a Bluetooth transmitter. The guest taps their wristband to an access panel beside the door before they are let in to the building proper - this records the user's wristband ID and matches it to their user profile. As they are walking the halls, the IR LED blinks out a binary identification code that is meant to be picked up with IR sensors placed at certain points throughout the hallways. The sensors pick up these IDs and send them off to a local server to process the information. The IR sensor's ID's are unique to the room that they are in, allowing a guest to be mapped to the section of the room as they are walking through it. This information is then sent to be visualized by Unity allowing anyone manning a security desk (along side a computerized program) to track guests roaming the halls. Should a guest deviate from their set path, possibly entering a room where classified information is being stored, security will be alerted of their actions and position. Similarly, if the IR blinker is covered for an extended period of time, it is assumed that the guest is intentionally trying to hide their presence - the mismatch between the number of IR codes on display and the number of Bluetooth signals being received will also alert security. Once the guest reaches their proper destination, they can tap their wristband on another access panel to prove that they are where they need to go and that they no longer need to be tracked.

How we built it

We started off by generating a list of binary codes of variable bit-length - we standardized this to 8-bits and mapped all the possibilities into the appropriate 256 ID code pairs. We wrote a script to be run from a raspberry pi that randomly selects a code from this list and sets a red LED to blink out the associated 8-bit binary pattern.

We then utilized a tool called OpenCV to explore the motion tracking and video processing aspect of the project. After a ton of trial, error, and hundreds of lines worth of script adjustments, we managed to achieve tracking of a color-coded object across a video feed.

We created a few test JSON files and sent them over to a Unity program that asks every listed camera if it sees an ID in its field of view. If it does, the ID is placed as a blip on a 3D rendered map. As the data updates and ID's move between cameras, we managed to successfully track motion not just on camera, but between cameras as well.

Lastly we've tried to set up a server to ease communication between the video processing, Bluetooth scanning, and the Unity engine.

Challenges we ran into

Setting up WiFi and Bluetooth properly on the raspberry pis turned out to be a time-consuming issue. Additionally, the video tracking portion of our task dealt with scripting on an under-documented tool. This lead us down a deep, dark, rabbit hole full of errors. And finally, setting up a server that acts as an efficient communication between our testing devices has proven extremely difficult to manage in a short period of time.

Accomplishments that we're proud of

Setting up the WiFi and scripting the ID generation and LED blinkage was one of our teammates first interactions with a raspberry pi, and he was super excited to figure things out. Additionally, the simplistic approach but retro-hacker feel of the Unity visualizer is incredible. And, of course, finally pushing through our struggles and working out the motion/color tracking feature was a huge breakthrough.

What we learned

We learned a lot about computer networking, the OpenCV tool, and interaction with raspberry pis.

What's next for Bionic Security

Bionic Security's next task is to conjoin all of our tools into one cohesive program and work out the logic for actual security concerns, like guests moving off path and wristbands going offline.

Share this project: