LoginSignup
15
14

More than 5 years have passed since last update.

ラズパイでTrackrr.ioに位置情報を表示してみた

Last updated at Posted at 2016-07-25

社内にRaspberry Pi Model B+があったのでちょっと遊んでみました。
IMG_2126.JPG
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$

めでたしめでたし:clap:

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を直接指定してください

コードを書いていきます。

index.js
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のコンソール画面を見てみると表示されてますね~。
image

次回はGPSモジュールをつけて位置情報をモジュールから取得してみようと思います。

15
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
14