• Stars
    star
    215
  • Rank 178,698 (Top 4 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created about 11 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Node.js lib for the TI SensorTag

node-sensortag

Gitter

Node.js lib for the TI SensorTag and TI CC2650 SensorTag

Prerequisites

NOTE: Certain API's may not be funcational if your SensorTag is running an older firmware version. You can use TI's iOS or Android apps to update the firmare.

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

More Repositories

1

arduino-LoRa

An Arduino library for sending and receiving data using LoRa radios.
C++
1,591
star
2

arduino-nRF5

Arduino Core for Nordic Semiconductor nRF5 based boards
C
845
star
3

arduino-CAN

An Arduino library for sending and receiving data using CAN bus.
C++
636
star
4

node-bleacon

A Node.js library for creating, discovering, and configuring iBeacons
JavaScript
499
star
5

arduino-BLEPeripheral

An Arduino library for creating custom BLE peripherals with Nordic Semiconductor's nRF8001 or nR51822.
C
454
star
6

arduino-OBD2

An Arduino library for reading OBD-II data from your car over CAN bus
C++
426
star
7

pico-rmii-ethernet

C
190
star
8

node-eddystone-beacon-scanner

Scan for Eddystone beacons using Node.js
JavaScript
102
star
9

node-chip-io

Johnny-Five IO Plugin for the Next Thing Co. C.H.I.P.
JavaScript
95
star
10

osx-ble-peripheral

Example of using CoreBluetooth in peripheral mode
Objective-C
84
star
11

node-bbc-microbit

Control a BBC micro:bit from Node.js using BLE
JavaScript
83
star
12

node-ancs

A node.js lib to access the Apple Notification Center Service (ANCS)
JavaScript
67
star
13

arduino-nRF24L01-BLE

Example of using an Arduino and a nRF24L01+ to fake BLE advertisement
Arduino
63
star
14

node-sx127x

Node.js driver for Semtech SX1276/77/78/79 based LoRa radios
JavaScript
60
star
15

rtlsdrjs

📡 Turn your Realtek RTL2832U based device into an SDR receiver using JavaScript
JavaScript
55
star
16

node-blink1

A Node.js library for the blink(1)
JavaScript
51
star
17

aimldevfest-workshop-2019

TinyML on Arduino @ AI/ML DevFest Workshop - September 28, 2019
Jupyter Notebook
45
star
18

node-flower-power

node.js lib for the Parrot Flower Power
JavaScript
45
star
19

node-powermate

A Node.js library for the Griffin PowerMate
JavaScript
40
star
20

node-raspberry-pi-camera-native

Use your Raspberry Pi Camera Module with Node.js
C++
35
star
21

node-xpc-connection

C++
34
star
22

AnyiBeacon-iOS

Use CoreLocation to start/stop ranging for any iBeacon
Objective-C
31
star
23

ANCSExample-iOS

Example app to expose the Apple Notification Center Service (ANCS) on an iOS device
Objective-C
29
star
24

node-yeelight-blue

A Node.js lib for the yeelight blue and yeelight blue lightstrips.
JavaScript
26
star
25

node-chipolo

node.js lib for the Chipolo
JavaScript
18
star
26

node-bbc-microbit-io

Johnny-Five IO Plugin for the BBC micro:bit
JavaScript
17
star
27

node-bbc-microbit-firmware

Source code for the firmware bundled with node-bbc-microbit
C
12
star
28

node-core-bluetooth

JavaScript
11
star
29

node-lumen

Node.js lib for the Tabu Lumen
JavaScript
11
star
30

node-tethercell

Node.js lib for the Tethercell
JavaScript
9
star
31

openocd-code-nrf5

C
8
star
32

rtl8710-openocd

Unofficial mirror of https://bitbucket.org/rebane/rtl8710_openocd
C
6
star
33

Arduino-Nano-33-BLE-Sense-Examples

JavaScript
6
star
34

node-objective-c-runtime

Use the Objective-C Runtime from Node.js
Objective-C++
5
star
35

cordova-ble-ir-remote

JavaScript
4
star
36

node-sensordrone

Node.js lib for the Sensordrone
JavaScript
4
star
37

node-sticknfind

node.js lib for the StickNFind
JavaScript
3
star
38

node-wimoto

Node.js lib for Wimoto devices
JavaScript
2
star
39

node-6lowpan-ble

JavaScript
2
star
40

node-robosmart

A node.js library for the RoboSmart
JavaScript
2
star
41

node-node-sensor

node.js lib for Variable Inc.'s NODE sensor
JavaScript
2
star
42

node-bluetooth-bulb

A node.js library for the BluetoothBulb
JavaScript
1
star
43

colab-notebook-test

Jupyter Notebook
1
star
44

sandeepmistry

1
star
45

df1-browser

Experimental df1 (Device Factory 1) in the browser
JavaScript
1
star
46

ArduinoTimeAPI

C++
1
star