Skip to content

Latest commit

 

History

History
176 lines (130 loc) · 5.97 KB

README.md

File metadata and controls

176 lines (130 loc) · 5.97 KB

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