generic-sensors-lite

Lightweight implementation of W3C spec, targeting constrained devices


Keywords
ambient, ambientlight, battery, color, generic, geolocation, i2c, illuminance, iotjs, iotjs-module, iotjs-supported, light, mock, orientation, proximity, sensor, sensors, simulator, temperature, humidity, w3c, webthing, iot, w3c-specs, webthing-iotjs
License
Apache-2.0
Install
npm install generic-sensors-lite@0.0.0

Documentation

GENERIC-SENSORS-LITE

GitHub forks license NPM Build Status dependencies Status FOSSA Status

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)

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: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
#| 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

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 Mozilla's Thing 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