手順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の活用方法を紹介します。お楽しみに!