{"_id":"@dbruno74/sensortag","_rev":"3-ad9898e01747d6fba10c9f39cc81b48a","name":"@dbruno74/sensortag","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@dbruno74/sensortag","version":"1.0.0","description":"Node.js lib for the TI SensorTag","main":"index.js","scripts":{"test":"jshint lib/*.js"},"repository":{"type":"git","url":"git+https://github.com/dbruno74/node-sensortag.git"},"keywords":["TI","SensorTag"],"author":{"name":"Diego Bruno"},"license":"MIT","dependencies":{"@ppatierno/noble-device":"^1.4.1"},"devDependencies":{"async":"~0.2.7","jshint":"~1.1.0"},"gitHead":"d520b5c4fcb7b5e47e331add0d0e1fafbf5120ad","bugs":{"url":"https://github.com/dbruno74/node-sensortag/issues"},"homepage":"https://github.com/dbruno74/node-sensortag#readme","_id":"@dbruno74/sensortag@1.0.0","_nodeVersion":"12.22.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-BfMnWlaBuRrxdtPrlsVlrPu7dc4zaoYNeB9SQDhfnF8U3R6aJAL6F7S4mZiHJWOm4vm8x59jWag1GKC7mlEJHg==","shasum":"54fc9446afd3e6e03d476c7b15cc9c8b741b81b7","tarball":"https://registry.npmjs.org/@dbruno74/sensortag/-/sensortag-1.0.0.tgz","fileCount":15,"unpackedSize":85105,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAI+ibEMw1hikzL+NThc3iNSg09syD8nwUqqgGo7mjYwAiEA8uG1Td8Rd8i0aXS9cVBc4povEi0ZCjMv0ivOYD8GSzQ="}]},"_npmUser":{"name":"dbruno","email":"diego.bruno0101@gmail.com"},"directories":{},"maintainers":[{"name":"dbruno","email":"diego.bruno0101@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sensortag_1.0.0_1632219939020_0.7381566679568419"},"_hasShrinkwrap":false},"1.0.1":{"name":"@dbruno74/sensortag","version":"1.0.1","description":"Node.js lib for the TI SensorTag","main":"index.js","scripts":{"test":"jshint lib/*.js"},"repository":{"type":"git","url":"git+https://github.com/dbruno74/node-sensortag.git"},"keywords":["TI","SensorTag"],"author":{"name":"Diego Bruno"},"license":"MIT","dependencies":{"@ppatierno/noble-device":"^1.4.1-10"},"devDependencies":{"async":"~0.2.7","jshint":"~1.1.0"},"gitHead":"70e0f3df59a1f673970c4ec987223952c57768fb","bugs":{"url":"https://github.com/dbruno74/node-sensortag/issues"},"homepage":"https://github.com/dbruno74/node-sensortag#readme","_id":"@dbruno74/sensortag@1.0.1","_nodeVersion":"12.22.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-RyICjHEYT1gkNrDe3FfnPN7e4feXUoVqDOA+NM7kcoxF0mt+E7OantBbWW6HPZ9ttKxQ0lWrTmzMgCFAKeqO7g==","shasum":"6c99ff4d0bb5ac9f333ac4935e2ad1eeca082f27","tarball":"https://registry.npmjs.org/@dbruno74/sensortag/-/sensortag-1.0.1.tgz","fileCount":15,"unpackedSize":86478,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhzslYCRA9TVsSAnZWagAAqLoP/1vnBPH55uSZB97CxoGd\nB6ICEiKe9xZMYckoY3hjdtVTZ5xnVgN/zyXQTtNRCHExv1xShvJuIyPReMpb\n1A5ufeqMe1SczwEhYCP8PrpEVSmEWXFg0a6zF9iGhy84a6O04HBB2Mm5TcXo\noWvwAYlGAktbh1RUQYQzDa8o60QZnRMgd791QWwymT4G/51GirKmQVGrHVik\nmvEmjLopFLIdn0ZzaHzcEq2Z6DxPYU46aQpFuwVJ0/qHUjk/cSL1dLMEGaki\nYMHgHzmODiejQn3CCvumC0BPMbpnIQQaXnzgSiT8wZb/5KT+To3NEnTGL/S/\n4vg33/9scImjJCn8a1iScZO9O0tp4Pa4gYRcTg8nFJiOn9Ad9CQ8dnwztvw/\nZm9a8u52pwMVsDwJ5sttn7FxG43xm6nwwBx+QZUEvTDTTLYFR75zwwHFDNQm\nAUf7EcnUnE6cG5KadBuLCvcruFRyRHpD5mdi3GnMm6zt6tr4K7zppS14WjzJ\nj6/LW5NdVl1ORfnLWj2BPQBVfLsx1aw78OkvzjBfjB0XuJZct20dDZM55XBh\nxy4TInSkXnQH0OwqVQLMnjITVvs0RyA4CqsPaDn8ks4b77E8KoXgMOmfiP4c\nb2H8xbrxWQyKSldfLyVlOSdow44ZqhwMGbmKXtZk1fHBzt9tC7U2DiJngQy/\nPgT2\r\n=RYDi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjJu4dvLpQvs44MWIPB/3PFRbcWIVQZccO6TlJH56VcgIhANSF+GlVSLzJvcnoFmOcYQaLPXhqQ5EjK7CPgsCYUrZa"}]},"_npmUser":{"name":"dbruno","email":"diego.bruno0101@gmail.com"},"directories":{},"maintainers":[{"name":"dbruno","email":"diego.bruno0101@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sensortag_1.0.1_1632244188841_0.28171154233937123"},"_hasShrinkwrap":false}},"time":{"created":"2021-09-21T10:25:38.938Z","1.0.0":"2021-09-21T10:25:39.200Z","modified":"2022-04-05T03:18:24.765Z","1.0.1":"2021-09-21T17:09:49.015Z"},"maintainers":[{"name":"dbruno","email":"diego.bruno0101@gmail.com"}],"description":"Node.js lib for the TI SensorTag","homepage":"https://github.com/dbruno74/node-sensortag#readme","keywords":["TI","SensorTag"],"repository":{"type":"git","url":"git+https://github.com/dbruno74/node-sensortag.git"},"author":{"name":"Diego Bruno"},"bugs":{"url":"https://github.com/dbruno74/node-sensortag/issues"},"license":"MIT","readme":"# node-sensortag\n\n[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/sandeepmistry/node-sensortag?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n\nNode.js lib for the [TI SensorTag](http://www.ti.com/tool/cc2541dk-sensor), [TI CC2650 SensorTag](http://www.ti.com/tool/cc2650stk) and [TI CC1352 SensorTag](https://www.ti.com/tool/LPSTK-CC1352R)\n\n## Prerequisites\n\n * [node-gyp install guide](https://github.com/nodejs/node-gyp#installation)\n * [noble prerequisites](https://github.com/sandeepmistry/noble#prerequisites)\n\n**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.\n\n## Install\n\n```sh\nnpm install sensortag\n```\n\n## Examples\n\nSee [test.js](test.js) or [sensorTag folder in Tom Igoe's BluetoothLE-Examples repo ](https://github.com/tigoe/BluetoothLE-Examples/tree/master/sensorTag)\n\n## Usage\n\n```javascript\nvar SensorTag = require('sensortag');\n```\n\n### Discover\n\n#### One\n\n```javascript\nSensorTag.discover(callback(sensorTag));\n```\n\n#### All\n\n```javascript\nfunction onDiscover(sensorTag) {\n  // ...\n}\n\nSensorTag.discoverAll(onDiscover);\n\nSensorTag.stopDiscoverAll(onDiscover);\n```\n\n#### By id\n\n```javascript\nSensorTag.discoverById(id, callback(sensorTag));\n```\n\n#### By address\n\n```javascript\nSensorTag.discoverByAddress(address, callback(sensorTag));\n```\n\n#### Properties:\n\n```javascript\nsensorTag = {\n  id: \"<peripheral id>\",\n  type: \"cc2540\" | \"cc2650\"\n}\n```\n\n### Connect and Set Up\n\n```javascript\nsensorTag.connectAndSetUp(callback(error));\n```\n\n### Disconnect\n\n```javascript\nsensorTag.disconnect(callback);\n```\n\n### Disconnect event\n\nAdd listener for when SensorTag is disconnected:\n\n```javascript\nsensorTag.once('disconnect', callback);\n```\n\n### Device Info\n\n```javascript\nsensorTag.readDeviceName(callback(error, deviceName));\n\nsensorTag.readSystemId(callback(error, systemId));\n\nsensorTag.readSerialNumber(callback(error, serialNumber));\n\nsensorTag.readFirmwareRevision(callback(error, firmwareRevision));\n\nsensorTag.readHardwareRevision(callback(error, hardwareRevision));\n\nsensorTag.readSoftwareRevision(callback(error, softwareRevision));\n\nsensorTag.readManufacturerName(callback(error, manufacturerName));\n```\n\n### IR Temperature Sensor\n\n#### Enable/disable\n\n```javascript\nsensorTag.enableIrTemperature(callback(error));\n\nsensorTag.disableIrTemperature(callback(error));\n\nsensorTag.setIrTemperaturePeriod(period, callback(error)); // period min 300ms, default period is 1000 ms\n```\n\n#### Read\n\n```javascript\nsensorTag.readIrTemperature(callback(error, objectTemperature, ambientTemperature));\n```\n\n#### Notify/Unnotify\n\n```javascript\nsensorTag.notifyIrTemperature(callback(error));\n\nsensorTag.unnotifyIrTemperature(callback(error));\n\nsensorTag.on('irTemperatureChange', callback(objectTemperature, ambientTemperature));\n```\n\n### Accelerometer\n\n#### Enable/disable/configure\n\n```javascript\nsensorTag.enableAccelerometer(callback(error));\n\nsensorTag.disableAccelerometer(callback(error));\n\n// CC2540: period 1 - 2550 ms, default period is 2000 ms\n// CC2650 and CC1352: period 100 - 2550 ms, default period is 1000 ms\nsensorTag.setAccelerometerPeriod(period, callback(error));\n```\n\n#### Read\nCC2540 and CC2650:\n```javascript\nsensorTag.readAccelerometer(callback(error, x, y, z));\n```\n\n#### Notify/Unnotify\nCC2540 and CC2650:\n```javascript\nsensorTag.notifyAccelerometer(callback(error));\n\nsensorTag.unnotifyAccelerometer(callback(error));\n\nsensorTag.on('accelerometerChange', callback(x, y, z));\n```\n\nCC1352:\n```javascript\nsensorTag.notifyAccelerometer(callback(error));\n\nsensorTag.unnotifyAccelerometer(callback(error));\n\nsensorTag.on('accelerometer_xChange', callback(x));\nsensorTag.on('accelerometer_yChange', callback(x));\nsensorTag.on('accelerometer_zChange', callback(x));\n```\n\n### Humidity Sensor\n\n#### Enable/disable\n\n```javascript\nsensorTag.enableHumidity(callback(error));\n\nsensorTag.disableHumidity(callback(error));\n\nsensorTag.setHumidityPeriod(period, callback(error));\n```\n\n#### Read\n\n```javascript\nsensorTag.readHumidity(callback(error, temperature, humidity));\n```\n\n#### Notify/Unnotify\n\n```javascript\nsensorTag.notifyHumidity(callback(error));\n\nsensorTag.unnotifyHumidity(callback(error));\n\nsensorTag.on('humidityChange', callback(temperature, humidity));\n```\n\n### Magnetometer (TI SensorTag and TI CC2650 SensorTag only)\n\n#### Enable/disable\n\n```javascript\nsensorTag.enableMagnetometer(callback(error));\n\nsensorTag.disableMagnetometer(callback(error));\n\n// CC2540: period 1 - 2550 ms, default period is 2000 ms\n// CC2650: period 100 - 2550 ms, default period is 1000 ms\nsensorTag.setMagnetometerPeriod(period, callback(error));\n```\n\n#### Read\n\n```javascript\nsensorTag.readMagnetometer(callback(error, x, y, z));\n```\n\n#### Notify/Unnotify\n\n```javascript\nsensorTag.notifyMagnetometer(callback(error));\n\nsensorTag.unnotifyMagnetometer(callback(error));\n\nsensorTag.on('magnetometerChange', callback(x, y, z));\n```\n\n### Barometric Pressure Sensor (TI SensorTag and TI CC2650 SensorTag only)\n\n#### Enable/disable\n\n```javascript\nsensorTag.enableBarometricPressure(callback(error));\n\nsensorTag.disableBarometricPressure(callback(error));\n\nsensorTag.setBarometricPressurePeriod(period, callback(error)); // period 100 - 2550 ms\n```\n\n#### Read\n\n```javascript\nsensorTag.readBarometricPressure(callback(error, pressure));\n```\n\n#### Notify/Unnotify\n\n```javascript\nsensorTag.notifyBarometricPressure(callback(error));\n\nsensorTag.unnotifyBarometricPressure(callback(error));\n\nsensorTag.on('barometricPressureChange', callback(pressure));\n```\n\n### Gyroscope (TI SensorTag and TI CC2650 SensorTag only)\n\n#### Enable/disable/configure\n\n```javascript\nsensorTag.enableGyroscope(callback(error));\n\nsensorTag.disableGyroscope(callback(error));\n\n// period 100 - 2550 ms, default period is 1000 ms\nsensorTag.setGyroscopePeriod(period, callback(error));\n```\n\n#### Read\n\n```javascript\nsensorTag.readGyroscope(callback(error, x, y, z));\n```\n\n#### Notify/Unnotify\n\n```javascript\nsensorTag.notifyGyroscope(callback(error));\n\nsensorTag.unnotifyGyroscope(callback(error));\n\nsensorTag.on('gyroscopeChange', callback(x, y, z));\n```\n\n### IO (CC2650 only)\n\n#### Data read/write\n\n```javascript\nsensorTag.readIoData(callback(error, value));\nsensorTag.writeIoData(value, callback(error));\n```\n\n#### Config read/write\n\n```javascript\nsensorTag.readIoConfig(callback(error, value));\nsensorTag.writeIoConfig(value, callback(error));\n```\n\n### Luxometer (CC2650 and CC1352 only)\n\n#### Enable/disable/configure\n\n```javascript\nsensorTag.enableLuxometer(callback(error));\n\nsensorTag.disableLuxometer(callback(error));\n\nsensorTag.setLuxometerPeriod(period, callback(error));\n```\n\n#### Read\n\n```javascript\nsensorTag.readLuxometer(callback(error, lux));\n```\n\n#### Notify/Unnotify\n\n```javascript\nsensorTag.notifyLuxometer(callback(error));\n\nsensorTag.unnotifyLuxometer(callback(error));\n\nsensorTag.on('luxometerChange', callback(lux));\n```\n\n### Battery Level (CC2650 and CC1352 only)\n\n#### Read\n\n```javascript\nsensorTag.readBatteryLevel(callback(error, batteryLevel));\n```\n\n### Simple Key\n\n#### Notify/Unnotify\n\nCC2540:\n\n```javascript\nsensorTag.notifySimpleKey(callback(error));\n\nsensorTag.unnotifySimpleKey(callback(error));\n```\n\n```javascript\nsensorTag.on('simpleKeyChange', callback(left, right));\n```\n\nCC2650:\n\n```javascript\nsensorTag.notifySimpleKey(callback(error));\n\nsensorTag.unnotifySimpleKey(callback(error));\n```\n\n```javascript\nsensorTag.on('simpleKeyChange', callback(left, right, reedRelay));\n```\n\nCC1352:\nkey:\n- 0 (left button)\n- 1 (right button)\n\nevent:\n- 0x00 (released)\n- 0x01 (pressed)\n- 0xB1 (hold)\n\n```javascript\nsensorTag.notifyButton(callback(error));\n\nsensorTag.unnotifyButton(callback(error));\n```\n\n```javascript\nsensorTag.on('button_0Change', callback(key, event));\n```\n\n```javascript\nsensorTag.on('button_1Change', callback(key, event));\n```\n\n```javascript\nsensorTag.on('button_2Change', callback(key, event));\n```\n\n\n### LEDs (C1352 only)\nledNum:\n- 0 (red)\n- 1 (green)\n- 2 (blue)\n\n#### Switch on\n```javascript\nsensorTag.writeLed(ledNum, 1);\n```\n\n#### Switch off\n```javascript\nsensorTag.writeLed(ledNum, 0);\n```\n","readmeFilename":"README.md"}