Skip to content

sisinflab-swot/psw-node-eddystone-beacon

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

psw-node-eddystone-beacon

Create an Eddystone Beacon using Node.js

Eddystone-URL beacons can be used with the Physical Web.

Eddystone-URL-PSW and Eddystone-UID-PSW beacons proposed with the Physical Semantic Web project.

Prerequisites

See bleno prerequisites.

OS X

OS X 10.10 or above, with Bluetooth 4.0 Hardware.

Linux

You need to run with sudo or as root. See bleno - Running on Linux for more info.

Have an older machine or Raspberry Pi? Add a Bluetooth 4.0 USB Adapter.

Windows

See bleno Windows prerequisites.

Install

npm install eddystone-beacon

Usage

var eddystoneBeacon = require('eddystone-beacon');

Options

var options = {
  name: 'Beacon',    // set device name when advertising (Linux only)
  txPowerLevel: -22, // override TX Power Level, default value is -21,
  tlmCount: 2,       // 2 TLM frames
  tlmPeriod: 10      // every 10 advertisements
};

Note: an advertising interval of 100ms is used.

Eddystone-URL-PSW

var url = "http://goo.gl/ujNAaj"; // OWL annotation of Karlskirche (Wien)

eddystoneBeacon.advertisePswUrl(url, [options]);

Eddystone-UID-PSW

var namespaceId = '00000001000000000000'; // ONTO_ID (4B) + Resource_ID (6B) 
var instanceId = '001122334455'; // MAC address of a Bluetooth Device (6B) [00:11:22:33:44:55]

eddystoneBeacon.advertisePswUid(namespaceId, instanceId, [options]);
var url = 'http://example.com';

eddystoneBeacon.advertiseUrl(url, [options]);

If your encoded URL is too long, try a URL shortener like goo.gl or bit.ly.

var namespaceId = '00010203040506070809';
var instanceId = 'aabbccddeeff';

eddystoneBeacon.advertiseUid(namespaceId, instanceId, [options]);

TLM data

Use with interleaved TLM mode, see options above.

Battery Voltage

var batteryVoltage = 500; // between 500 and 10,000 mV

eddystoneBeacon.setBatteryVoltage(batteryVoltage);

Temperature

var temperature = 22.0; // between -128.0 and 128.0

eddystoneBeacon.setTemperature(temperature);

Examples

Development

Install the dependencies

npm install

Run tests

npm test