手順5:Groveのコーディング
続いて、Raspberry Pi 2で光センサーから明るさのデータを取得し、コンソールに表示するプログラムを作成します。
GrovePiのソフトウェアをインストール
まずはGrovePiのソフトウェアをインストールし、再起動します。
$ git clone https://github.com/DexterInd/GrovePi.git $ cd GrovePi/Script/ $ sudo bash ./install.sh : $ sudo reboot
i2cdetectコマンドで04と表示されれば、GrovePiが正しく認識されています。
$ sudo i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- 04 -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
$
Groveデバイスを操作するためのnpmライブラリをインストール
今回は、プログラミング言語としてNode.js(JavaScript)を利用します。Node.jsのパッケージをインストールするため、APTリポジトリ「Adding the Repository | apt.adafruit.com | Adafruit Learning System」を追加します。 その上で、nodeパッケージとNode.jsからGroveデバイスを操作するためのnpmライブラリをインストールします。
$ curl -sLS https://apt.adafruit.com/add | sudo bash $ sudo apt-get install node $ npm install node-grovepi
プログラムを作成
センサーで感知した明るさを1秒間隔でコンソールに表示するプログラムを、テキストエディタで作成します。プログラム名はgrove.jsとしましょう。
var GrovePi = require('node-grovepi').GrovePi
var Board = GrovePi.board
var LightAnalogSensor = GrovePi.sensors.LightAnalog
var board = new Board({
debug: true,
// GrovePiボードの初期化イベント時に実行
onInit: function(res) {
if (res) {
console.log('GrovePi Version :: ' + board.version())
// A0に設置した光センサーを扱うインスタンス生成
var lightSensor = new LightAnalogSensor(0)
// 1秒おきにセンサーデータを取得し整形、コンソールに表示
setInterval(function() {
var val = lightSensor.read()
var ratio = (1023 - val) * 10 / val
console.log("value: " + ratio)
}, 1000);
}
},
// エラーイベント時に実行
onError: function(err) {
console.log('Something wrong just happened')
console.log(err)
}
})
board.init()
それでは、実行してみましょう。
$ node grove.js info GrovePi.board GrovePi is initing GrovePi Version :: 1.2.2 value: 3167.0186335403723 value: 3157.1826625387 value: 3157.1826625387 value: 3157.1826625387 value: 3167.0186335403723 value: 862.8668941979521 value: 243.28051497895518 value: 208.4497117232543 value: 198.22308162019132 value: 205.50452917632188 value: 3167.0186335403723 value: 3167.0186335403723 ^C $
センサーを手で覆うと数値が小さくなり、手を外すと数値が大きくなることが確認できます。
まとめと次回予告
駆け足でしたが、今回は前編として、Raspberry Pi 2とL-02CでSORACOM Air SIMを使ってインターネットに接続し、Grove光センサーで明るさのデータを取得するところまでを行いました。後編では、インターネット経由でセンサーデータをクラウドにアップロードする方法と、SORACOMのもう1つのサービスであるSORACOM Beamの活用方法を紹介します。お楽しみに!
