社内にRaspberry Pi Model B+があったのでちょっと遊んでみました。
OSは入っている状態でしたが、sshできなかったんでネットワーク周りの設定をちょいした感じの状態です。
trackrr.io-sdk-jsを用いて、位置情報をTrackrr.ioに表示できるようにしてみます。
#Node.jsのインストール
注)ndenvではインストールしませんでした。
不要な方はすっ飛ばしてダウンロードしてインストールを参照してください。
##ndenvインストール
pi@raspberrypi:~ $ git clone https://github.com/riywo/ndenv ~/.ndenv
Cloning into '/home/pi/.ndenv'...
remote: Counting objects: 63, done.
remote: Total 63 (delta 0), reused 0 (delta 0), pack-reused 63
Unpacking objects: 100% (63/63), done.
Checking connectivity... done.
pi@raspberrypi:~ $ echo 'export PATH="$HOME/.ndenv/bin:$PATH"' >> ~/.bash_profile
pi@raspberrypi:~ $ echo 'eval "$(ndenv init -)"' >> ~/.bash_profile
pi@raspberrypi:~ $ exec $SHELL -l
pi@raspberrypi:~$ ndenv -v
ndenv 0.4.0-4-ga339097
##node-buildインストール
pi@raspberrypi:~$ git clone https://github.com/riywo/node-build.git ~/.ndenv/plugins/node-build
Cloning into '/home/pi/.ndenv/plugins/node-build'...
remote: Counting objects: 68, done.
remote: Total 68 (delta 0), reused 0 (delta 0), pack-reused 68
Unpacking objects: 100% (68/68), done.
Checking connectivity... done.
pi@raspberrypi:~$
で、Node.jsのv4.4.7を入れましょう。
pi@raspberrypi:~$ ndenv install v4.4.7
Downloading node-v4.4.7-linux-arm-pi.tar.gz...
-> https://nodejs.org/dist/v4.4.7/node-v4.4.7-linux-arm-pi.tar.gz
/home/pi/.ndenv/plugins/node-build/bin/node-build: 144 行: pushd: node-v4.4.7-linux-arm-pi: そのようなファイルやディレクトリはありません
BUILD FAILED
pi@raspberrypi:~$
あれ?BUILD FAILED・・・確かにnode-v4.4.7-linux-arm-pi.tar.gzなんてないですね・・・。
で調べてみると
http://blog.wia.io/installing-node-js-v4-0-0-on-a-raspberry-pi
ソースをダウンロードしてインストールする必要があるようですね。
##ダウンロードしてインストール
pi@raspberrypi:~$ wget https://nodejs.org/dist/v4.4.7/node-v4.4.7-linux-armv6l.tar.gz
pi@raspberrypi:~$ tar -xvf node-v4.4.7-linux-armv6l.tar.gz
pi@raspberrypi:~$ cd node-v4.4.7-linux-armv6l/
pi@raspberrypi:~/node-v4.4.7-linux-armv6l$ sudo cp -R * /usr/local/
pi@raspberrypi:~/node-v4.4.7-linux-armv6l$ node -v
v4.4.7
pi@raspberrypi:~/node-v4.4.7-linux-armv6l$
めでたしめでたし
#trackrr.io-sdk-js使って位置情報を送信してみる
Trackrr.ioへの位置情報送信するためには
アクセスキー、シークレットキーが必要になります。
取得していない場合はTrackrr.ioの利用方法を参照してください。
##trackrr.io-sdk-jsのインストール
適当なディレクトリを掘ってそこにコードを書いていきます。
pi@raspberrypi:~$ mkdir trackrr.io-sdk-js-sample
pi@raspberrypi:~$ cd trackrr.io-sdk-js-sample
###次にpackage.json作成(なくてもいいけど)
pi@raspberrypi:~/trackrr.io-sdk-js-sample$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See `npm help json` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
name: (trackrr.io-sdk-js-sample)
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
About to write to /home/pi/trackrr.io-sdk-js-sample/package.json:
{
"name": "trackrr.io-sdk-js-sample",
"version": "1.0.0",
"description": "",
"main": "index.js",
"dependencies": {
"trackrr.io-sdk-js": "^0.0.1"
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
Is this ok? (yes) yes
###SDKのインストール
pi@raspberrypi:~/trackrr.io-sdk-js-sample$ npm install https://github.com/trackrr-io/trackrr.io-sdk-js.git --save
npm WARN package.json trackrr.io-sdk-js-sample@1.0.0 No description
npm WARN package.json trackrr.io-sdk-js-sample@1.0.0 No repository field.
npm WARN package.json trackrr.io-sdk-js-sample@1.0.0 No README data
trackrr.io-sdk-js@0.0.1 node_modules/trackrr.io-sdk-js
※まだnpmに公開していないのでgitのURLを直接指定してください
###コードを書いていきます。
var trackrr = require('trackrr.io-sdk-js');
var gpsKey = 'Trackrr.ioで取得したGPSのキー';
var secret = 'Trackrr.ioで取得したアクセスキー';
var client = new trackrr.GpsClientManager(gpsKey, secret);
client.on('connect', () => {
setInterval(() => {
var gps = {};
var coords = {};
gps.coords = {};
gps.coords.latitude = 33.79519271850586;
gps.coords.longitude = -118.01104736328125;
client.publish(gps);
console.log(gps);
}, 3 * 1000);
});
GPSモジュールがなかったので固定値を送信する形にしました。
(latitude、longitudeの箇所です。)
pi@raspberrypi:~/trackrr.io-sdk-js-sample$ node index.js
{ coords: { latitude: 33.79519271850586, longitude: -118.01104736328125 },
identity: 'ap-northeast-1:XXXXXXX',
gpsKey: 'XXXXXXX',
createdDate: 1469435658317 }
{ coords: { latitude: 33.79519271850586, longitude: -118.01104736328125 },
identity: 'ap-northeast-1:XXXXXXX',
gpsKey: 'XXXXXXX',
createdDate: 1469435662403 }
{ coords: { latitude: 33.79519271850586, longitude: -118.01104736328125 },
identity: 'ap-northeast-1:XXXXXXX',
gpsKey: 'XXXXXXX',
createdDate: 1469435665455 }
{ coords: { latitude: 33.79519271850586, longitude: -118.01104736328125 },
identity: 'ap-northeast-1:XXXXXXX',
gpsKey: 'XXXXXXX',
createdDate: 1469435668486 }
{ coords: { latitude: 33.79519271850586, longitude: -118.01104736328125 },
identity: 'ap-northeast-1:XXXXXXX',
gpsKey: 'XXXXXXX',
createdDate: 1469435671517 }
^C
pi@raspberrypi:~/trackrr.io-sdk-js-sample$
こんな感じになれば成功です。
でTrackrr.ioのコンソール画面を見てみると表示されてますね~。
次回はGPSモジュールをつけて位置情報をモジュールから取得してみようと思います。