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.
See bleno prerequisites.
OS X 10.10 or above, with Bluetooth 4.0 Hardware.
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.
See bleno Windows prerequisites.
npm install eddystone-beacon
var eddystoneBeacon = require('eddystone-beacon');
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.
var url = "http://goo.gl/ujNAaj"; // OWL annotation of Karlskirche (Wien)
eddystoneBeacon.advertisePswUrl(url, [options]);
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]);
Use with interleaved TLM mode, see options above.
var batteryVoltage = 500; // between 500 and 10,000 mV
eddystoneBeacon.setBatteryVoltage(batteryVoltage);
var temperature = 22.0; // between -128.0 and 128.0
eddystoneBeacon.setTemperature(temperature);
- Eddystone-PSW
- url_psw_beacons - create a Eddystone-URL-PSW Beacon
- uid_psw_beacons - create a Eddystone-UID-PSW Beacon
- Eddystone-URL
- simple - easiest way to create a Eddystone-URL Beacon
- power-level - create a Eddystone-URL Beacon specifying txPowerLevel
- name - create a Eddystone-URL Beacon specifying device name
- Eddystone-UID
- Eddystone-TLM
- simple - example with random data in TLM
- Connectable
- connectable - beacon using eddystone with bleno
npm install
npm test