sensortag
v1.3.0
Published
Node.js lib for the TI SensorTag
Downloads
340
Readme
node-sensortag
Node.js lib for the TI SensorTag and TI CC2650 SensorTag
Prerequisites
Install
npm install sensortag
Examples
See test.js or sensorTag folder in Tom Igoe's BluetoothLE-Examples repo
Usage
var SensorTag = require('sensortag');
Discover
One
SensorTag.discover(callback(sensorTag));
All
function onDiscover(sensorTag) {
// ...
}
SensorTag.discoverAll(onDiscover);
SensorTag.stopDiscoverAll(onDiscover);
By id
SensorTag.discoverById(id, callback(sensorTag));
By address
SensorTag.discoverByAddress(address, callback(sensorTag));
Properties:
sensorTag = {
id: "<peripheral id>",
type: "cc2540" | "cc2650"
}
Connect and Set Up
sensorTag.connectAndSetUp(callback(error));
Disconnect
sensorTag.disconnect(callback);
Disconnect event
Add listener for when SensorTag is disconnected:
sensorTag.once('disconnect', callback);
Device Info
sensorTag.readDeviceName(callback(error, deviceName));
sensorTag.readSystemId(callback(error, systemId));
sensorTag.readSerialNumber(callback(error, serialNumber));
sensorTag.readFirmwareRevision(callback(error, firmwareRevision));
sensorTag.readHardwareRevision(callback(error, hardwareRevision));
sensorTag.readSoftwareRevision(callback(error, softwareRevision));
sensorTag.readManufacturerName(callback(error, manufacturerName));
IR Temperature Sensor
Enable/disable
sensorTag.enableIrTemperature(callback(error));
sensorTag.disableIrTemperature(callback(error));
sensorTag.setIrTemperaturePeriod(period, callback(error)); // period min 300ms, default period is 1000 ms
Read
sensorTag.readIrTemperature(callback(error, objectTemperature, ambientTemperature));
Notify/Unnotify
sensorTag.notifyIrTemperature(callback(error));
sensorTag.unnotifyIrTemperature(callback(error));
sensorTag.on('irTemperatureChange', callback(objectTemperature, ambientTemperature));
Accelerometer
Enable/disable/configure
sensorTag.enableAccelerometer(callback(error));
sensorTag.disableAccelerometer(callback(error));
// CC2540: period 1 - 2550 ms, default period is 2000 ms
// CC2650: period 100 - 2550 ms, default period is 1000 ms
sensorTag.setAccelerometerPeriod(period, callback(error));
Read
sensorTag.readAccelerometer(callback(error, x, y, z));
Notify/Unnotify
sensorTag.notifyAccelerometer(callback(error));
sensorTag.unnotifyAccelerometer(callback(error));
sensorTag.on('accelerometerChange', callback(x, y, z));
Humidity Sensor
Enable/disable
sensorTag.enableHumidity(callback(error));
sensorTag.disableHumidity(callback(error));
sensorTag.setHumidityPeriod(period, callback(error));
Read
sensorTag.readHumidity(callback(error, temperature, humidity));
Notify/Unnotify
sensorTag.notifyHumidity(callback(error));
sensorTag.unnotifyHumidity(callback(error));
sensorTag.on('humidityChange', callback(temperature, humidity));
Magnetometer
Enable/disable
sensorTag.enableMagnetometer(callback(error));
sensorTag.disableMagnetometer(callback(error));
// CC2540: period 1 - 2550 ms, default period is 2000 ms
// CC2650: period 100 - 2550 ms, default period is 1000 ms
sensorTag.setMagnetometerPeriod(period, callback(error));
Read
sensorTag.readMagnetometer(callback(error, x, y, z));
Notify/Unnotify
sensorTag.notifyMagnetometer(callback(error));
sensorTag.unnotifyMagnetometer(callback(error));
sensorTag.on('magnetometerChange', callback(x, y, z));
Barometric Pressure Sensor
Enable/disable
sensorTag.enableBarometricPressure(callback(error));
sensorTag.disableBarometricPressure(callback(error));
sensorTag.setBarometricPressurePeriod(period, callback(error)); // period 100 - 2550 ms
Read
sensorTag.readBarometricPressure(callback(error, pressure));
Notify/Unnotify
sensorTag.notifyBarometricPressure(callback(error));
sensorTag.unnotifyBarometricPressure(callback(error));
sensorTag.on('barometricPressureChange', callback(pressure));
Gyroscope
Enable/disable/configure
sensorTag.enableGyroscope(callback(error));
sensorTag.disableGyroscope(callback(error));
// period 100 - 2550 ms, default period is 1000 ms
sensorTag.setGyroscopePeriod(period, callback(error));
Read
sensorTag.readGyroscope(callback(error, x, y, z));
Notify/Unnotify
sensorTag.notifyGyroscope(callback(error));
sensorTag.unnotifyGyroscope(callback(error));
sensorTag.on('gyroscopeChange', callback(x, y, z));
IO (CC2650 only)
Data read/write
sensorTag.readIoData(callback(error, value));
sensorTag.writeIoData(value, callback(error));
Config read/write
sensorTag.readIoConfig(callback(error, value));
sensorTag.writeIoConfig(value, callback(error));
Luxometer (CC2650 only)
Enable/disable/configure
sensorTag.enableLuxometer(callback(error));
sensorTag.disableLuxometer(callback(error));
sensorTag.setLuxometerPeriod(period, callback(error));
Read
sensorTag.readLuxometer(callback(error, lux));
Notify/Unnotify
sensorTag.notifyLuxometer(callback(error));
sensorTag.unnotifyLuxometer(callback(error));
sensorTag.on('luxometerChange', callback(lux));
Battery Level (CC2650 only)
Read
sensorTag.readBatteryLevel(callback(error, batteryLevel));
Simple Key
Notify/Unnotify
sensorTag.notifySimpleKey(callback(error));
sensorTag.unnotifySimpleKey(callback(error));
CC2540:
sensorTag.on('simpleKeyChange', callback(left, right));
CC2650:
sensorTag.on('simpleKeyChange', callback(left, right, reedRelay));