Beacons are low-cost, small hardware devices that use ‘Bluetooth low energy’ technology to emit a signal that can be picked up by nearby devices. They can be used for greater accuracy in location-based applications, allowing companies to track user trends and provide a more personalized customer experience. We’ve experimented with different use cases for beacons and how they can be used most effectively to reach target audiences.
When beacons remain stationary, they rely on mobile phones to recognize their environment. However, what if it was actually the beacons that were mobile? Through experimentation, we discovered that you can enjoy many of the benefits of stationary beacons even when the beacons themselves are moving.
We used a Raspberry Pi along with a beacon wristwatch to set up a prototype based on ‘wandering beacons’. With mobile beacons, you can track user movement, create an interactive environment, and highly customize the user experience. For our prototype, we created a simple screen for a theme park attraction that displays profile information when the user walks up to the Raspberry Pi.
Approaching the Problem
We wanted to use wearable beacons to track user’s movements without them needing a smartphone to run an application. We realized beacons have limitations in that they can only emit basic information, so we mapped each beacon’s UUID (Universally Unique Identifier) to a user’s ID. We then used computers to detect when beacons were nearby, and to update the user’s information.
Using mobile beacons, we could make the environment interactive by having webpages react when the user walked up to a Raspberry Pi. Since each beacon is associated with a particular ID, we were able to identify which user was nearby when the beacon entered the Bluetooth scanner’s range. This gave us a chance to make the user’s environment reactive and personalized. Furthermore, mobile beacons can be used to track user trends - where they’re spending the most time and how often they return to those spots.
Creating the Prototype
For our prototype, we wanted to create a webpage that would react when users approached the Raspberry Pi. We also wanted to be able to store information about the user, such as how many times they had entered the Raspberry Pi’s range. In our demonstration, each Pi ended up representing a different theme park attraction. When a user entered the range of the “attraction”, the user’s score was incremented and their information was displayed on a web page representing the attraction. They were also able to earn badges based on the number of times they entered the Raspberry Pi’s range.
Initially, we wrote a program in Python that would scan for nearby beacons and print out their beacon IDs, majors, and minors. Once we were able to accurately track which beacons were in range, we created a database in Firebase to store information on theme park attractions and users. Attraction data included the name of the ride, badges, and whether a user was nearby. User data included the associated beacon’s ID, basic profile information, the badges they earned, the number of times they visited certain rides, and a score that was incremented based on the time they spent at each ride.
Part of this prototype was the idea that the environment would only react to “registered” beacons. To test this, each user in Firebase was assigned a beacon. Then, in our python program, we sent the beacon’s id to Firebase to ensure it was associated with a user.
At this point, we ran into a problem with the bluetooth scanner. It would scan for beacons and return a complete list of every beacon in it’s range. However, it would’ve been inefficient make a call to Firebase every time the scanner returned a new list of beacons. To solve this, we kept a list of all the beacons in range, and appended or removed beacon IDs from the list when they entered or exited the scanner’s range. When we found a new beacon had entered the Raspberry Pi’s range, we made a call to Firebase to check for the user.
Why Use Mobile Beacons?
Mobile beacons are ideal for situations where you want to customize the user experience based on their physical movement and/or collect data on users’ physical movement patterns. They would also be good for use cases where you don’t necessarily need user input. Here’s some companies we think would be great matches for mobile beacons:
- Six Flags Theme Parks
- Whole Foods
- Burton Snowboards
- The North Face
Users can attach beacons to their key chains and locate misplaced keys using an application. Beacons installed in shopping carts could keep track of where users have been in the store, and display personalized promotions on screens. Skiers and Snowboarders could be given beacons when they hit the slopes; in an emergency, rescuers could save lives by using beacons to quickly locate people buried in the snow. Given that mobile beacons are still in their infancy, there are also many other use cases that have yet to be explored. Mobile beacons could allow companies to reach out to clients without mobile phones, such as children or the elderly.
The primary new technologies utilized by this prototype were the bluetooth dongle on Raspberry Pi and Firebase. We were surprised how quickly we were able to create a database in Firebase. While it may not scale particularly well, it worked for our prototype, and for more robust projects there are better alternatives. Regarding the bluetooth dongle on the Raspberry Pi, iPhones are capable of recognizing when a beacon enters the range of the phone, so it was interesting to try to reverse engineer that technology and use it in our Python program.
With the number of beacons rapidly growing, we expect to see beacons applied more and more to solve problems, whether it’s creating hands-free keys or personalized shopping experiences. Mobile beacons offer consumers a new way to experience an interactive and customized environment while providing companies an innovative way to connect with their customers and collect data on customer behavior and trends.
Sarada Symonds is a Yeti Alum. Sarada Symonds is a co-op who is neither funny nor self aware enough to write a good description of herself. When not struggling over writing a bio, she enjoys learning about new technologies, planning revenge coups, and chai tea lattes.