generic-sensors-lite

0.0.18 • Public • Published

GENERIC-SENSORS-LITE

GitHub forks license NPM Build Status dependencies Status FOSSA Status IRC Channel

NPM

INTRODUCTION:

Lightweight implementation of W3C spec, targeting constrained devices.

Several JavaScript runtimes are supported (node.js, IoT.js using JerryScript)

Presentation

USAGE:

By default simulator are used and generate random values, but following sensors can be plugged on pins of your favorite single board computer:

  • BH1650: for measuring illuminance (i2c=0x23)
  • BMPx80: for measuring temperature, or any compatible sensor (ie: BMP180, i2c=0x77)
  • TCS34725: for measuring colors (i2c=0x29)
  • HTU21D: for measuring humidity (i2c=0x40) Buy

SETUP:

Privileged access to hardware resources is also required too (setup or use sudo).

For instance on Raspbian:

sudo raspi-config # Enable I2C
ls -l /dev/i2c* || sudo reboot
sudo apt-get install i2c-tools
/usr/sbin/i2cdetect -y 1
#|      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
#| 00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
#| 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
#| 20: -- -- -- 23 -- -- -- -- -- 29 -- -- -- -- -- -- 
#| 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
#| 40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
#| 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
#| 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
#| 70: -- -- -- -- -- -- -- 77

USING NODE.JS:

git clone --recursive https://github.com/rzr/generic-sensors-lite
cd generic-sensors-lite

npm install
npm start
#| node example/index.js 
#| (...)
#| {"illuminance": 123.}
#| (...)
#| {"celsius": 42.}
#| (...)
(...)

USING IOT.JS

First install IoT.js as explained at:

For Debian and derived (Ubuntu, Rasbian, Armbian):

curl https://raw.githubusercontent.com/rzr/iotjs-express/master/extra/tools/iotjs/setup.sh \
| bash -x -e

For constrained environments:

make start
#| (...)
#| iotjs example/index.js 
#| (...)
#| {"illuminance": 123.}
#| (...)
#| {"celsius": 42.}
#| (...)

Note: It has been verified on GNU/Linux not TizenRT yet (TODO).

USING NODE.JS

node lib/ambientlight "\"controller\"\"bh1750\"}"

DEMO:

web-of-things-agriculture-20180712rzr.webm

An extra example is provided to show integration in WebThings project. Sensors are powered by webthing-iotjs and monitored on dashboard as progressive web app (PWA).

Usage:

make runtime=iotjs start
make -C example/webthing runtime=iotjs start
#| (...) 
log: Serving: http://localhost:8888/properties
#| (...) 
 
curl  http://localhost:8888/properties
#| { (...) "illuminance":123., "celsius":42., "color":"#c0a175" (...) }  

Respectively node could be supported too, just adapt to webthing-node API instead of webthing-iotjs (TODO):

make -C example/webthing runtime=node start
#| (...) 

RESOURCES:

LICENSE:

FOSSA Status

Dependents (0)

Package Sidebar

Install

npm i generic-sensors-lite

Weekly Downloads

14

Version

0.0.18

License

Apache-2.0

Unpacked Size

173 kB

Total Files

65

Last publish

Collaborators

  • rzr