LoginSignup
17
19

More than 5 years have passed since last update.

MESHのソフトウェアタグを使ってmyThingsとつないでみる

Last updated at Posted at 2015-12-06

 ソニーから発売されているMESHは、さまざまな機能を持ったMESHタグをMESHアプリ上でつなげて、自由に組み合わせを作ることができるキットです。WebサービスやIoTデバイスを組み合わせるmyThingsとさらに組み合わせると、もっと便利な使い方ができそうです。今回はMESH SDKソフトウェアタグを使いmyThingsで自作デバイスと連携することができる「IDCF」チャンネルとつないでみようと思います。

MESHアプリ

 MESHアプリはiPhoneやiPadなどにインストールして使います。画面に表示されるキャンバス上でアイコンをビジュアル的につなげるだけでIoTのプロトタイプを簡単に作成できます。

MESHタグ

 MESHタグはブロック形状をした電子タグです。執筆時では次の種類が発売されています。

 GPIOタグは特殊ですがそれぞれ特定の機能を持っています。MESHタグで何ができるのかわかりやすいです。MESHアプリのチュートリアルを開始すればMESHタグをBluetoothでペアリングして、簡単なサンプルの作成と実行までできます。プログラミングや電子工作の知識は必要ありません。

 MESHを使うと次のようなことができるようになります。

  • 新聞紙が勇者の剣に!
  • 部屋に近づく人を検知!
  • ぬいぐるみが走り出す
  • カメラリモコンを簡単作成!
  • プレゼントにさらなる驚きを
  • メール受信をこっそり確認
  • 乾燥アラームで風邪予防!

MESH SDK

 プログラミングが苦手な方でもIoTのプロトタイピングをすぐに始められるのがMESHの良いところです。さらにMESH SDKを使って作成するソフトウェアタグは自分で書いたJavaScriptのコードをMESHのタグとして追加することができます。

 MESH SDKのトップページからStart using the MESH SDKボタンをクリックしてDeveloperアカウントの作成してSDKを開きます。詳しい使い方はMESH SDK Reference Manualの日本語マニュアルをご確認ください。

Webサービスと連携するサンプル

 MESH SDKは外部WebサービスのAPIにAjaxでアクセスできるソフトウェアタグをJavaScriptで実装することができます。このソフトウェアタグを使うとMESHのタグの組み合わせの中に外部のWebサービスを組み込むことができます。

 サンプルとして天気予報タグの作り方が掲載されています。これを読むとMESHが提供しているjQuery風のAjaxライブラリの使い方の参考になります。天気予報タグは、OpenWeatherMap serviceが提供するWeather APIを利用しています。インプットがあった時に、特定の場所の天気を判別して晴れ、雨、曇りごとにアウトプットを出力しわける例です。

ソフトウェアタグのinputとexport

 MESH SDKで作成したソフトウェアタグはDeveloperアカウントに紐付いています。MESHアプリのメニューからSDKにサインインすると作成したソフトウェアタグが使えるようになります。

 現状では他の開発者が作成したソフトウェアタグのコードはimportして利用する必要があります。

  1. 開発者は、ブラウザからMESH SDKにサインインしてソフトウェアタグのコードをJSON形式でexportする。
  2. 開発者は、他の人がアクセス可能な場所に公開する(gistなど)
  3. 利用者は、ブラウザからMESH SDKにサインインしてJSON形式のコードをimportする。
  4. 利用者は、iPadのMESHアプリからSDKにサインインしてソフトウェアタグをダウンロードする。

MESH SDKでmyThingsタグをimportする

 前置きが長くなりましたがこちらにmyThingsのソフトウェアタグを公開しているのでMESH SDKにサインインした後にimportしてからお使いください。

MESH SDKにサインインする

MESH SDKにサインインすると作成したソフトウェアタグの一覧画面が開きます。下の画面はまだ1つも作成していない状態です。「Create New Tag」ボタンを押してタグの作成画面に移動します。

mesh-01-create-new-tag.png

タグ作成画面

 タグの作成するメイン画面に移動します。今回は作成済みのコードを使うので「Import」ボタンを押します。

mesh-015-new-tag.png

myThingsのコードをimportする

 「Imported JSON Data」のフィールドにこちらにあるJSONをコピーしてペーストします。「Load JSON」ボタンを押すとimportが終了します。

mesh-02-import.png

タグを保存する

 importするとタグは「myThings」の名前になっています。好きなように変更できます。別名でタグを保存すれば複数のバージョンを使い分けることができます。左上の「Save」ボタンを押してタグの作成を完了します。

mesh-03-save.png

myThingsタグのコードについて

 JSON形式でペーストしたコードは読みづらいですが、タグの画面からimportしたJavaScriptのコードを確認できます。

  • 「Trigger」-> 「Code」-> 「Execute」

 MESH SDKのAjaxライブラリを使い、タグに入力コネクタからインプットが来ると「IDCF」チャンネルのトリガーを発火するためPOSTする簡単なサンプルになっています。

mesh-code.png

MESHアプリでmyThingsタグをダウンロードする

 iPadなどでMESHアプリを起動してMESH SDKで作成したタグをMESHアプリで使えるようにしていきます。

SDKにサインインする

 MESHアプリを起動したら右上メニューボタンからSDKの項目をタップします。

IMG_0385.PNG

 MESH SDKにサインインするため先ほどブラウザで登録したDeveloperアカウント情報を入力します。

 IMG_0386.PNG

新しいレシピを作成する

 次に左上のプラスボタンを押します。作成された「New Recipe」のタイルをタップしてレシピ作成画面に移動します。

IMG_0400.PNG

myThingsタグをダウンロードする

レシピ作成画面が開きます。右側メニューの一番下の「Custom」セクションのプラスボタンを押します。

IMG_0391.PNG

 先ほどimportしたmyThingsタグの情報が表示されます。更新日時やタイトルなどを確認して「Add」ボタンを押します。

IMG_0392.PNG

 myThingsタグが右下のCustomフィールドに表示されて使えるようになりました。

IMG_0393.PNG

myThingsアプリで組み合わせを作る

 ここでMESHアプリから一度離れ、myThingsアプリから「IDCF」チャンネルを使いMESHと連携する組み合わせを作ります。「IDCF」チャンネルとのトリガーの詳しい使い方はこちらの記事を参考にしてください。またアクションのチャンネルはEvernoteを使います。予めEvernoteのアカウントをご用意ください。

「IDCF」と 「Evernote」チャンネル

 
 スマホからmyThingsアプリを起動して
トリガーに「IDCF」、アクションに「Evernote」を使った組み合わせを作ります。他のチャンネルを使う場合はアクションの作成を読み替えて以下のような組み合わせを作ってください。

IMG_0003.PNG

 この組み合わせが実行されると、トリガーの「IDCF」チャンネルの「trigger-4」の条件を満たしたら、アクションの「Evernote」チャンネルを実行します。Evernoteの「MESHの記録」ノートに「MESHが押されたよ」という文字を追記していきます。

MESHでmyThingsタグを使って見る

 それではいよいよMESHに作成したmyThingsタグを使ってみましょう。

タグをキャンバスにドラッグ&ドロップする

CustomフィールドのmyThingsタグを中央のキャンバスにドラッグ&ドロップします。現在のmyThingsタグは「トリガー」しか作成していないので、「Trigger」ファンクションが表示されます。「uuid」などが表示されているプロパティをタップして設定画面に移動します。

IMG_0394.PNG

「IDCF」チャンネルのトリガーを設定する

 プロパティ設定画面では「IDCF」チャンネルのトリガー情報を設定します。前のステップでmyThingsアプリの組み合わせで使った「trigger-4」のuuidとtokenを指定します。メールなどでuuidなどの情報をiPadに転送してそれぞれのフィールドに入力します。

IMG_0395.PNG

 iPadだとuuidなどの入力が不便なので、ブラウザからMESH SDKの画面を開きプロパティのフィールドに初期値として予め入れておくこともできます。

  • Trigger -> Property

mesh-props.png

 MESH SDKでコードを編集して保存したら、MESHアプリ側でも右メニューのCustomフィールドからmyThingsタグをタップして「Tag Info」画面を開きます。「Check for Updates」ボタンを押して更新したコードをダウンロードします。

IMG_0402.PNG

レシピ(組み合わせ)を作る

 トリガーの情報を設定するとキャンバスに戻ります。

IMG_0397.png

 今回のMESHタグはButton(ボタン)タグを使います。タグのボタンを押す動作で次のタグへ処理が移動するので、レシピの起点としてわかりやすいです。

 Buttonタグをキャンバスにドラッグ&ドロップします。Buttonタグの右側の出力コネクタのつまみをタップして動かすと線が伸びます。そのままmyThingsの入力コネクタへ凸凹の形を合わせるとシャキーン!と音が鳴り気持ち良くダグ同士がつながります。

 myThingsタグからの出力コネクタはPlayタグを使います。「IDCF」チャンネルサーバーと正常に通信ができたらiPadから音が鳴るようにします。Playタグをつなげると以下のようになります。

IMG_0398.PNG

Buttonタグを押す

 その前に右側のメニューの「Tag」セクションに表示されているButtonタグに警告が表示されずに正常にiPadと通信ができていることを確認してください。MESHアプリを一度閉じてしまうとタグとの接続が切れてしまうので、「Tag」セクションの左ボタンで表示されるようにタグを再認識させてください。

 それでは実物のButtonタグについているボタンを押してみましょう。正常にレシピが実行されるとiPadから音がなります。myThingsタグのログは「Custom」セクションにある「Log」ボタンをタップすると確認することができます。

IMG_0399.PNG

myThingsアプリで確認する

 Buttonタグを押した後しばらくするとmyThingsに作成しておいた組み合わせが実行されます。すぐに実行したい場合は組み合わせの「手動実行」ボタンを押してください。成功するとタイムライン画面にログが表示されます。

IMG_0004.PNG

 Evernoteアプリを開くと「MESHの記録」というノートにmyThingsからのメッセージが記録されました。

IMG_0002.PNG

他のMESHタグでも

 myThingsのトリガーにすることができるMESHタグは他にもたくさんあります。何かイベントが発生したら何かの処理を実行するという仕組みはとてもシンプルで、専門のプログラム知識がない方にもわかりやすいと思います。MESHタグとmyThingsチャンネルの「Webサービス」や「IoTガジェット」をつなげて自分だけの組み合わせを考えてみると楽しいと思います。

タグをひっくり返したら

人や動物の動きを検知したら

明るさが指定した範囲内に変化したら

温度が指定した範囲内に変化したら

17
19
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
17
19