9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

myThingsAdvent Calendar 2015

Day 23

mrubyボードenziとmyThingsでIoT

Posted at

#はじめに
mrubyを使ってプロトタイピングが出来るボードenzimyThingsを使って簡単にIoTサービスを作ります。
enziはArduino互換のピン配置でmrubyを使ってコーディング出来るプラットフォームです。Web開発のほかPCに接続するだけですぐに始められるmirbを使ったインタプリタ開発(仮想COMポート経由)ができます。Amazonで販売中です。

enziboard.png

#センサー
温度・湿度・気圧が測定可能なBosche社のBME280を使ったセンサボードを使いました。スイッチサイエンスさんのデバイスと同様の品です。I2C経由で通信するために以下のように配線します。

BME280 enzi
3.3V 3.3V
GND GND
SDI(SDA) D10
SCK(SCL) D5
SDO GND

※なお、I2C用のプルアップ抵抗が必要ですのでご注意下さい。

より詳しい情報はenziのピンアサインスイッチサイエンスさんのBME280搭載 温湿度・気圧センサモジュールの使い方
で確認できます。

#myThingsの設定
##IDCFクラウドの設定
masatoさんのmyThingsをはじめよう - Part2: IDCFクラウドに「IDCF」チャンネルをセットアップするを参考にIDCFクラウドの設定をします。
##IDCFチャンネルの認証
masatoさんのmyThingsをはじめよう - Part4: 「IDCF」チャンネルを認証するを参考にしてIDCFチャンネルを認証します。

##トリガーの設定
masatoさんのmyThingsをはじめよう - Part6: 「IDCF」のトリガーからHTTPで「Gmail」のアクションを実行するを参考にしてトリガーの設定を行います。RaspberryPiがenziに変わるイメージです。トリガーは簡単な例として温度が10度を下回ったら実行されるようにしました。

#enziの設定

  1. myThings用のアプリケーションを準備しましたので開いて下さい。
  2. エディタを一番下までスクロールしてIPアドレスをお使いのIDCFクラウドの仮想インスタンスのIPアドレスに書き換えて下さい。
  3. ユーザー登録とenziボードの登録済みでしたらエディタ下に"compile"ボタンが表示されていますので、クリックしてenziバイナリをダウンロードします。
    enzi_compile.png
  4. ダウンロード済みのバイナリをenzi.ezbという名前でmicroSDカードに保存します。
  5. enzi.cfgの設定を行います。
  6. microSDカードをenziボードに挿入して起動します。

#結果
無事通知が届きました。

#enziとIoTについて
本サンプルではすでに作成済みのプログラムを使いましたが試作はインタプリタによる対話型のインターフェースで高速開発を行いました。インタプリタを使うことで例えばピン番号を間違うなどのミスが有っても、コンパイルしてロードするという手間を省いて、その場で実行し直すだけで修正ができます。
また、このプログラムはわずか200行程度でセンシングとHTTP通信が実行されている上にオブジェクト指向言語ならではのクラスで定義されてますので再利用が容易です。

9
9
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
9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?