Skip to content

SamsungInternet/color-sensor-js

Repository files navigation

COLOR-SENSOR-JS

GitHub forks license NPM IRC Channel

NPM

INTRODUCTION

This module is supporting TCS34725 I2C sensor and also provide a simulator that return random colors.

Presentation

USAGE:

Node.js and IoT.js runtimes are supported.

Usage is straightforward.

By default simulator is used, and output are in web hex format (#RrGgBb), but lower level use is also possible.

For using I2C TCS34725 sensor, check i2c chapter first.

USING IOT.JS:

Using IoT.js:

git clone --recursive --depth 1 https://github.com/samsunginternet/color-sensor-js
cd color-sensor-js

make test
#| iotjs lib/simulator.js
#| log: value=[7779,36778,11173,42766]
#| log: test: test/iotjs

make run
#| {"color": "#badc0d"}
#| {"color": "#c0ffee"}
#| (...)

# Or to use actual sensor:
iotjs example tcs34725
#| {"color": "#ff514a"}
#| (...)

# Raw driver values:
iotjs lib/tcs34725.js 
log: value=[65535,20885,19074,65535]

USING NODE.JS:

# git clone or use install released package:

npm install color-sensor-js
cd node_modules/color-sensor-js

npm install --only=prod
npm test
#| > node lib/simulator
#| log: value=[11409,49339,1907,5849]

npm start
#| node example
#| {"color": "#c0ffee"}
#| (...)

node example tcs34725
#| {"color": "#ff514a"}
#| (...)

node lib/tcs34725.js 
#| log: value=[65535,20908,19103,65535]

NOTES:

On issues make sure that your system have I2C, device should be visible by user before using it:

sudo apt-get install i2c-tools make git
i2cdetect -y 1
#|      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
#| (...)
#| 20: -- -- -- -- -- -- -- -- -- 29 -- -- -- -- -- --
#| (...)

On Raspbian, pi "user" is in "i2c" group of file "/dev/i2c-1" (matching RaspberryPi's header).

WEBTHING EXAMPLE:

An extra example is provided for use from the Web (WebOfThings).

It's using Mozilla's IoT Schema and can be used as standalone or connected to things Gateway:

cd example/color-sensor-webthing 
npm install
npm start

curl http://localhost:8888/properties/color
{"color":"#6ab302"}

TCS34725 sensor can be selected from command line, and port eventually changed:

cd example/color-sensor-webthing/
npm install
npm start 8888 tcs34725

May I recommend to give a try with IoT.js runtime, it is faster and consuming much less resources:

make -C example/color-sensor-webthing iotjs/run

schemas

DEMO:

demo

In "webthing-iotjs-opendata-20190202rzr" video, sensor is observing the lamp color, but it can work with any regular material.

RESOURCES:

About

Driver for color sensor tcs34725 -- https://github.com/rzr/webthing-iotjs/wiki/Sensor

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 52.1%
  • HTML 21.5%
  • Makefile 18.1%
  • Dockerfile 8.3%