紹介する内容
- Node.js のインストール方法
- node-sensortag (CC2650STKの Javascriptライブラリ) のインストール方法
- node-sensortag を使った簡単なアプリ開発
環境
- Armadillo-IoT ゲートウェイ G3
- Kernel: v5.00
- Debian: v20160920
- CC2650STK
作業
1. Node.js のインストール
ここでは node
(インタープリター) と npm
(パッケージマネージャー) をインストールする方法を紹介します。
node
と npm
はご存知の方も多いかと思いますが、インストール方法がいくつもあります。
ここでは筆者が一番手軽だと感じた apt
で Node.js をインストールする方法を紹介します。
ただし、apt でインストールできる node
, npm
のバージョンは新しくありませんので、
より新しいバージョンをインストールしたい方は別の方法を検索してみてください。
apt で Node.js をインストールする
以下のコマンドを実行し、インタープリターとパッケージマネージャーをインストールしてください。
armadillo:~# apt-get update armadillo:~# apt-get install nodejs npm
一般に Node.js のスクリプトを実行する際には node
というコマンドを使いますが、
Debian パッケージでは node
が nodejs
になっています。
以下のコマンドで alias を作り node
で Node.js のインタープリターを実行できるようにしておきましょう。
armadillo:~# ln -s `which nodejs` /usr/local/bin/node
動作確認
atmarkユーザーでログインし、sudo を付けて node が動けば問題ありません。
armadillo:~$ sudo node -v v0.10.29
もし、atmark ユーザーが sudoers に入っていない場合は、一度 root でログインし、visudo を使って追加してください。
2. node-sensortag のインストール
CC2650STKのJavascriptライブラリnode-sensortag
をインストール方法を紹介します。
> - node-sensortag: https://github.com/sandeepmistry/node-sensortag
node-sensortag をインストールするためには node-gyp と noble を先にインストールしておく必要があります
> - node-gyp: https://github.com/nodejs/node-gyp > - noble: https://github.com/sandeepmistry/noble
作業ディレクトリを作成
はじめに、作業用ディレクトリを作成します。
armadillo:~$ mkdir sensor-test armadillo:~$ cd sensor-test
以降の手順はすべてこの作業ディレクトの中で行います。
node-gyp のインストール
以下のコマンドで node-gyp をインストールしてください。
armadillo:~/sensor-test$ npm install node-gyp
なぜ npm install -g node-gyp
のように -g
オプションを付けなかったかは、
以下のNode.jsのドキュメントを参照してください。
> Global vs Local installation | Node.js > > https://nodejs.org/en/blog/npm/npm-1-0-global-vs-local-installation/
noble のインストール
noble をインストールするためにはいくつかのパッケージが必要です。 npm install を行う前に必要なパッケージをインストールしましょう。
armadillo:~/sensor-test$ sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev python
以下のコマンドで noble をインストールしてください。
armadillo:~/sensor-test$ npm install noble
node-sensortag のインストール
以下のコマンドで node-sensortag をインストールしてください。
armadillo:~/sensor-test$ npm install sensortag
これで node-sensortag のインストールは完了です。
動作確認
正しく node-sensortag がインストールできたかを確認するためにデモアプリを実行しましょう。
デモアプリを実行するために node_modules/sensortag/ 以下で npm install
を行ってください。
armadillo:~/sensor-test$ cd node_modules/sensortag/ armadillo:~/sensor-test/node_modules/sensortag$ npm install
ここではtest-cc2650-io.js
というデモアプリを実行してみます。
CC2650STKに電池を入れ、緑LEDが点滅している状態にしてください
test-cc2650-io.js
を実行すると以下のようなログが表示されます。
armadillo:~/sensor-test/node_modules/sensortag$ sudo node test-cc2650-io.js discovered: {"id":"b0b448d75e01","type":"cc2650"} connectAndSetUp IO off writeIoConfig LED red LED green buzzer IO off disconnect disconnected!
ログ表示と同時にLED点灯やブザー鳴動が行われます。
簡単なアプリを開発
インストール時に作成した作業ディレクトリ内で簡単なアプリを開発します。
- アプリ仕様
- 右スイッチが押されるとコンソールに right: down と表示され、離すと right: up と表示される
- 左スイッチが押されるとアプリを終了する
テキストエディタなどで下記の get-switch.js
を作成します。
armadillo:~/sensor-test$ ls node_modules/ armadillo:~/sensor-test$ vim get-switch.js
- get-switch.js
var async = require('async'); var CC2650SensorTag = require('sensortag').CC2650; CC2650SensorTag.discover(function(sensorTag) { console.log('discovered: ' + sensorTag); sensorTag.on('simpleKeyChange', function(left, right, reedRelay) { if (right) { console.log('right: down'); } else { console.log('right: up'); } if (left) { console.log('disconnected!'); process.exit(0); } }); async.series([ function(callback) { console.log('connectAndSetUp'); sensorTag.connectAndSetUp(callback); }, function(callback) { sensorTag.notifySimpleKey(callback); console.log('key change waiting...'); } ] ); });
アプリでは async というライブラリを使用しているので、 実行前に npm で async をインストールしておきましょう。
armadillo:~/sensor-test$ npm install async
実行はサンプルアプリ同様に sudo を付けて実行してください。
armadillo:~/sensor-test$ sudo node get-switch.js discovered: {"id":"b0b448d75e01","type":"cc2650"} connectAndSetUp key change waiting... right: down right: up right: down right: up right: down right: up right: down right: up right: up disconnected!