Article header my things header 02  2

Uzuki と myThings で IoT センサを作ってみよう!

はじめに

皆さんの身の回りにはいろんなセンサがあります。 これまで、センサの情報は近くにある機器を動かすため、たとえば人が通ったらそこのライトをつけるために使われてきました。 "IoT" Internet of Thingsの世界では、センサはインターネットにつながって、離れた人やモノに情報を伝え、webサービス上で何かを投稿したり、webにつながったモノを動かしたりすることができるようになります。

このチュートリアルでは、IoTセンサのプロトタイピングを体験します。 チュートリアル自体は簡単ですが、同じ枠組みでいろんなことができるようになっているので、是非好きなことに応用してみてください!

特長

  • Uzukiセンサシールドを使うから色んなセンサが使える、組み合わせられる!
  • センサの読み取りにはkonashi.jsを使うからだれでも簡単に始められて、柔軟にいろんなことができる!
  • Yahoo! myThingsを使うから自分のセンサをあらゆるwebサービス・モノにつなげることができる!

用意するもの

konashi.jsを使ってUzukiの値を確認する

konashiUzukiをJavaScriptで制御できるアプリ「konashi.js」をApp Storeから入手します。

Article header library 118901 pic01  1

konashiとiPhoneはBluetoothで通信するため、iPhoneの設定からBluetoothをオンにします。

Article header library 118901 pic02  1

プログラムの呼び出し

「konashi.js」を起動します。「User」から「おすすめのユーザ」で表示される「mpression」を選択してください。

Article header library 118901 pic03  1

「mpressionのコード」の中から「Uzuki x myThings」を選択し、プログラムを実行します。

Article header library 118901 pic04  1

「Find Konashi」を選択するとiPhoneがBLEデバイスを検索します。

Article header library 118901 pic05  1

「konashi2-f0xxxx」という名前のデバイスを選択します(xxxxにはお持ちのkonashi 2.0に乗ったkoshianのラベルに書かれた4桁のIDが入ります)。

Article header library 118901 pic06  1

デバイスが接続されると、それぞれの値が表示されます。

Article header library 118901 pic07  1

自分用にプログラムをForkする

jsdo.itのサインアップと読み込み

konashi.jsのプログラムはjsdo.itで作成します。画面右上の「Create Account」からjsdo.itのアカウントを作成します。

Article header library 118901 pic08  1

jsdo.itは他のサービスのアカウントを使ってもログインできます。

Article header library 118901 pic09  1

サンプルコードにアクセス、Fork

先ほどのサンプルコードを開きます。サンプルコードを編集するためにForkしましょう。

Article header library 118901 pic10  1

Forkするとソースコードの改変を行えます。今回は「Finish Editing」ボタンを押して終了します。

Article header library 118901 pic11  1

次に「konashi.js」を起動し、「User」から「jsdo.it」で作成した自分のアカウントを検索します。
自分のアカウントを選択すると、先ほどForkした「forked:Uzuki x myThings」が表示されます。

IDCFクラウドの準備

Uzukiの値をmyThingsで使用するには事前にIDCFクラウドサーバの準備が必要です。こちらを参考にしてアカウントを作成してください。

IDCFクラウドのログイン

IDCFを開きログインします。

Article header library 118901 pic12  4

IDCFチャンネルサーバーを準備

「東日本リージョン」、「コンピューティング」を選択します。

Article header library 118901 pic13  3

左メニューの「API」を選択します。

Article header library 118901 pic14  2

表示される「API Key」、「Secret Key」、「エンドポイント」を使用します。

Article header library 118901 pic15  2

次に、Uzukiのデータを受け取るIDCFチャンネルサーバを自動構築します。IDCF Channel Installを開いてください。先ほどのAPI Keyなどを入力し、「次へ」を選択します。

Article header library 118901 pic16  1

仮想サーバの詳細を記入していきます。

  • ZONES
    サーバを構築するエリアの選択です。
    「radian」を選択してください。
    デフォルトのゾーンがradian以外の方はこちらを参考にしてゾーンをradianに限定してください。

  • OFFERING
    サーバの種類です。
    「light.S2」を選択してください。

  • NAME
    サーバの名称を入力してください。

  • EMAIL
    サーバ設定の完了後連絡が来るメールアドレスです。
    自身の確認できるメールアドレスを記入してください。

Article header library 118901 pic17  1

作成を選択するとサーバログが表示されます。閉じずに放置してください。10~20分すると登録したメールアドレスに2通のメールが来ます。

Article header library 118901 pic18  1

2通目のメール「IDCFチャンネルをインストールしました。」は、重要なので破棄しないでください。2通目のメールを受信したらインストール完了です。なお、サーバのインストールは手動でも可能です。

IDCFチャンネルサーバとkonashi.js(iPhone)を接続する

IDCFクラウドの準備で用意したサーバの情報を、konashi.js上の「Uzuki x myThings」に入力します。入力した後、デバイスをオンにします。

  • IP Address
    「IDCFチャンネルをインストールしました」メールに記載されているIPアドレスを入力してください。

  • Port
    「3030」と入力してください。

  • trigger
    処理発動となるトリガのIDです。
    「trigger-1」を選択してください。

  • User
    サーバにログインするID です。
    「idcf」と入力してください。

  • Password
    サーバにログインするパスワードです。
    メールに記載されている「BASIC認証Password」を入力してください。

  • デバイス
    接続のON/OFFです。

Article header library 118901 pic19  1

myThingsに通知する条件を設定する

IDCFチャンネルサーバ経由でmyThingsへ通知する連携条件(トリガ)の設定をします。

  • 複数条件
    OR: 条件がどれか成立した場合にmyThingsへ通知します。
    AND: 条件が全て成立した場合にmyThingsへ通知します。

  • 閾値
    スライダ: 閾値を設定できます。
    〇〇より低い/高い: 条件を設定できます。
    有効: 条件として使うか使わないかを設定できます。

例として、湿度のみを有効にし、図のように設定してみましょう。

Article header library 118901 pic20  1

myThingsを利用して、光センサーの状態を通知する

myThingsの設定

myThingsでトリガーとアクションを設定してみましょう。myThingsアプリを開き右上のプラスボタンを選択します。

Article header library 118901 pic21  1

「チャンネルの選択」で「IDCF」を選び、「認証する」を選択します。

Article header library 118901 pic22  1

IPアドレスなどを入力し、「利用を開始する」を選択します。

  • IPアドレス
    メールに記載されているIPアドレスを入力してください。

  • 認証token
    メールに記載されている「keyword: owner」のtokenを入力してください。

Article header library 118901 pic23  1

トリガーは「trigger-1」を選択します。

Article header library 118901 pic24  1

次に、アクションを設定します。「プッシュ通知」を選択し、図のように「プッシュ文言」を設定します。

Article header library 118901 pic25  1

アクションで設定した「text1」、「text2」はJavaScriptで決められています。connection.dataはmyThingsに送るデータになります。

let title = '閾値の監視';
let message = '条件が成立しました:';

connection.data({
  uuid: trigger_uuid,
  text1: title,
  text2: message
});

アクションの設定が完了したら実行をしてみましょう。 現在は標準で15分おきにトリガーが監視されて、トリガー条件が成立していればアクションが実行されます。 トリガー条件の確認を手動で行うのが手動実行です。手動実行の結果は図の通りになります。

Article header library 118901 pic26  1

条件が成立した場合、konashi.js上では図のように通知が表示されます。

Article header library 118901 pic27  1

また、myThingsでも同様の文章でプッシュ通知が来ます。

Article header library 118901 pic28  1

おわりに

いかがでしたか? myThingsのアクションには、あらゆるwebサービス・webにつながるモノへのアクションが選べるようになっています。 つぎは好きなサービスにつなげてみてください。 面白いものができたら、是非SNSなどで友達やみんなに共有してみてくださいね。


関連商品

関連タグ