SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

こんなに手軽にIoT開発! SORACOM Air / Beamを触ってみよう

こんなに手軽にIoT開発! SORACOM Air / Beamを触ってみよう【前編】 ~ ラズパイと光センサーでアプリをつくる

アカウント登録からデバイスのセットアップ、インターネット接続、簡単なサンプル作成まで


  • X ポスト
  • このエントリーをはてなブックマークに追加

手順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としましょう。

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

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
こんなに手軽にIoT開発! SORACOM Air / Beamを触ってみよう連載記事一覧
この記事の著者

大瀧 隆太(オオタキ リュウタ)

クラスメソッド株式会社 AWSソリューションアーキテクト。SORACOMをクラウド屋とデバイス屋をつなぐ夢の架け橋と捉え、SORACOMによるクラウド活用ネタの技術ブログを日夜執筆中(会社ブログ:http://dev.classmethod.jp)。近日立ち上げと噂のSORACOMユーザーグループ(SORA...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9014 2015/12/22 14:36

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング