Skip to content

flyinactor91/Networked-iBeacons

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 

Networked-iBeacons

iBeacons whose values can be updated remotely by a controller

The beacon.py code has been tested simultaneously on a Pi and Edison being updated by controller.py, but it should work on any system that implements BlueZ.

Video Demonstration

Setup

To install BlueZ on the Pi and most Linux distros, follow this guide at Adafruit. You'll also need a generic BLE USB dongle.

The Intel Edison comes with BlueZ installed and an onboard BLE antena, so the only setup is turning BLE on. However, you will need to remove 'sudo' from the commands in beacon.py.

Usage

On the beacon side, run beacon.py on a network-enabled machine. You'll want to know its IP. It starts with default beacon values. When the beacon recieves new values from the controller, it saves those values to a storage csv which will be loaded next time instead of the defaults. You can also change 'listenIP' so that it will only accept updates from a single IP address for security reasons. By default, it will accept connections from any IP.

On the controller side, it sends updates to beacons based on the contents of a csv file. Each row contains the following fields (in order, comma-seperated, no header):

  • IP address
  • Company ID (hex)
  • Area ID (int or hex)
  • Unit ID (int or hex)
  • Power (int or hex)

An example csv file is included. After going through the list, it displays an update report including the IP address of any beacons that failed in some way.

About

iBeacons whose values can be updated remotely by a controller

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages