Have ideas to improve npm?Join in the discussion! ¬Ľ

    sensortag

    1.3.0¬†‚Äʬ†Public¬†‚Äʬ†Published

    node-sensortag

    Gitter

    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));

    Keywords

    Install

    npm i sensortag

    DownloadsWeekly Downloads

    38

    Version

    1.3.0

    License

    MIT

    Last publish

    Collaborators

    • avatar