Skip to content

Pi Beacon

  • blog

Rasp Pi

What are Beacons/iBeacon?

Beacons are hardware that use Bluetooth Low Energy to advertise a Universally Unique Identifier (UUID) to devices, like a smartphone. iBeacon is Apple’s protocol for accessing the UUID data advertised by a Beacon. This technology allows for proximity sensing and indoor  positioning. For example, a device can alert a user if they are in range of a beacon and enable information based on that location.

Beacon hardware, such as Estimote or Gimbal, are fairly inexpensive. However, it is also really simple to build your own with a Raspberry Pi.

Resource: How to make a Pi Beacon from Radius Networks

Raspberry Pi Beacon transmitter

Using a Bluetooth LE Dongle connected to a Raspberry Pi and a script to transmit a UUID, the Raspberry Pi can act as a Beacon.

Bluetooth Dongle

Resource: Installing Bluetooth on a Raspberry Pi from

To advertise the UUID on startup, I ran the script from /etc/rc.local

edit /etc/rc.local command

~$ sudo nano /etc/rc.local

While inside the editor, modify /etc/rc.local so that the raspberry pi can navigate to the directory of the beacon script and run it.

cd /home/pi/PiBeacon
sudo bash startBeacon

startBeacon script

stopBeacon script


iOS Beacon Receiver app
After reading the iBeacon documentation and researching the Estimote SDK, I developed a sample application that displays a different clickable icon based on the level of proximity to my Raspberry Pi Beacon. Depending on which icon is clicked, different content is displayed.



Levels of proximity: