51
MyThings (IDCFチャンネル) 調べてみた Dropsystem Co., Ltd.

MythingsとIDCFチャンネル調査 20150824

Embed Size (px)

Citation preview

Page 1: MythingsとIDCFチャンネル調査 20150824

MyThings (IDCFチャンネル)

調べてみた

Dropsystem Co., Ltd.

Page 2: MythingsとIDCFチャンネル調査 20150824

‣ 自己紹介

•所属:株式会社ドロップシステム •仕事:アプリとかサーバサイドの開発してます •電子工作は素人

Page 3: MythingsとIDCFチャンネル調査 20150824

1)myThingsって何? • ざっくり 2)ラズパイやってみる • 電子工作 3)IDCFチャンネルってなんやねん • 調べてみる 4)最後に • 感想

Page 4: MythingsとIDCFチャンネル調査 20150824

(1)myThingsって何?

myThings?

My Things?

Page 5: MythingsとIDCFチャンネル調査 20150824

(1)myThingsって何?2015年07月27日にヤフー株式会社がリリース「モノ、WEBをつなぐプラットフォーム」

Page 6: MythingsとIDCFチャンネル調査 20150824

IFTTTの日本版・if this then that

・my things

日本語対応で安心のYahoo製。期待。

http://nextdeveloper.hatenablog.com/entry/2015/08/04/182952競合勢力図(1)myThingsって何?

Page 7: MythingsとIDCFチャンネル調査 20150824

(1)myThingsって何?

• iOSとAndroidアプリが提供されている•他社のアプリやガジェットの機能を組合せる事が可能•各アプリはトリガーにもなるしアクションにもなる

アクションは複数可能

・明日渋谷が雨だったら・push通知でお知らせ・ついでにツイートもみたいな感じ

Page 8: MythingsとIDCFチャンネル調査 20150824

(1)myThingsって何?

•サービス間の連携をmyThingsが仲介してくれる•アプリのユーザー認証•アプリの組み合わせ•イベント(トリガー)の受付•アクション通知

•アプリ提供側に対しても新たな可能性を提供•提携アプリが増えて来ると更に面白い事になりそう

Page 9: MythingsとIDCFチャンネル調査 20150824

(1)myThingsって何?

アプリのUIは

so good!!

綺麗に出来てます

Page 10: MythingsとIDCFチャンネル調査 20150824

架空の幼なじみが毎朝メッセージで起こしてくれる。

非常に興味深い。

Jawbone UPのリストバンドを購入決定。

Apple Watchも対応したら嬉しいんですけど。

(1)myThingsって何?

Page 11: MythingsとIDCFチャンネル調査 20150824

(2)ラズパイやってみる

Raspberry pi

Raspberry pi2 Model B

みんな大好きラズパイ ちょっとやってみたかった。

Page 12: MythingsとIDCFチャンネル調査 20150824

超音波測距

Page 13: MythingsとIDCFチャンネル調査 20150824
Page 14: MythingsとIDCFチャンネル調査 20150824

ADコンバータ

アナログなセンサー類をデジタルに変換

Page 15: MythingsとIDCFチャンネル調査 20150824

LCD

普通にかぶせるとラズパイのGPIOピンがほとんど塞がれる

文字を出せるのは単純に面白い

Page 16: MythingsとIDCFチャンネル調査 20150824

Hover

ホバーでジェスチャ操作可能まだ動かしてない。。

Page 17: MythingsとIDCFチャンネル調査 20150824

PWM

WiringPiでパルス幅変調「何がLチカだよ」と、馬鹿にしてたら面白い。ごめんなさい。

照度を変えたり無駄に遊べる

Page 18: MythingsとIDCFチャンネル調査 20150824

温湿度気圧計

IDCFさんにもらった。電子工作キットに入っていた温度センサは精度が低かった。これは精度高くて素敵。レンタルらしいけど返さないと思う

Page 19: MythingsとIDCFチャンネル調査 20150824

においセンサ

TGS2450

頑張って屁を集めた回路が複雑でラズパイだけだとちょっと厳しい別のセンサで再挑戦

Page 20: MythingsとIDCFチャンネル調査 20150824

(3)IDCFチャンネルって何?

IDCFチャンネルってなんやねん

我らがIDCFチャンネル唯一の開発者向けで目立ってます!

一番下だけど。

Page 21: MythingsとIDCFチャンネル調査 20150824

(3)IDCFチャンネルって何?

IDCFチャンネルってなんやねん

1)trigger-1の条件を満たしたら2)Slackのtestルームに投稿

トリガーを自分で作れるのはIDCFチャンネルだけ!可能性は無限大!

Page 22: MythingsとIDCFチャンネル調査 20150824

(3)IDCFチャンネルって何?

IDCFチャンネルってなんやねん

1)天気予報次第で2)action-5を発動

アクションも自分で作れるのはIDCFチャンネルだけ!可能性は無限大!

Page 23: MythingsとIDCFチャンネル調査 20150824

(3)IDCFチャンネルって何?

IDCFチャンネルってなんやねんラズパイで遊んだし、そろそろ調べるか。ドキュメントはどこかな?http://www.idcf.jp/cloud/iot/detail01.html

Page 24: MythingsとIDCFチャンネル調査 20150824

(3)IDCFチャンネルって何?

IDCFチャンネルってなんやねん

あれ?

Page 25: MythingsとIDCFチャンネル調査 20150824

(3)IDCFチャンネルって何?

IDCFチャンネルってなんやねんあれ?その変詳しく。myThingsとの絡み具合。でもまあ、他にドキュメントあるでしょ。

Page 26: MythingsとIDCFチャンネル調査 20150824

(3)IDCFチャンネルって何?

IDCFチャンネルってなんやねん

ここからかな?

ふむふむ

Page 27: MythingsとIDCFチャンネル調査 20150824

(3)IDCFチャンネルって何?

IDCFチャンネルってなんやねん

お?ここからですね?

http://www.idcf.jp/cloud/iot/

Page 28: MythingsとIDCFチャンネル調査 20150824

(3)IDCFチャンネルって何?

IDCFチャンネルってなんやねん

同じとこやんけ!!!http://www.idcf.jp/cloud/iot/detail01.html

Page 29: MythingsとIDCFチャンネル調査 20150824

センサー

(ラズパイ.etc)

MQTT

IDCFクラウド

Ubuntu VM

Publisher SubscriberBroker

IDCFチャンネルのシステム構成(予想)

myThings

IDCFチャンネルがトリガーのとき

myThings

MyThings対応アプリmyThings対応アプリ

IDCFチャンネルがアクションのとき

HTTPS

Meshbluコンテナ

HTTPS

MyThings対応アプリ

myThingsに設定されたアクションのアクション(action-1~5)宛に通知。データの内容は様々で通常は15分間隔

myThingsに設定したアクション(MyThings対応アプリ)のアクションを実行IDCFチャンネル側から動的なメッセージ(変数)を送信出来るのか不明。。

MyThings対応アプリ

トリガー発火!

センサーデータ送信

アクションデータ通知 アクション

発行 購読

message topic状況に応じてトリガーを登録

data topic

トリガー発火

Page 30: MythingsとIDCFチャンネル調査 20150824

Docker-Host(IDCFクラウドVM)

openresty meshblu

API

nginx Node.js

Lua

MQTT

1883443

mongo

一部コマンド以外はmeshbluのAPIにリバースプロキシ

Mosca

27017

data

redis

6379

device

cache

iotutil

Dockerコンテナ群

443 1883

iotutil コマンド

Node.js

REST

deviceの登録やリスト表示コマンド

を提供redisへのdevice

データ読み書き device

IDCFチャンネルのサーバ構成(予想)

Page 31: MythingsとIDCFチャンネル調査 20150824

IDCFチャンネルサーバの作り方とりあえずIDCFクラウドで「light.S1」「Ubuntu 14.04」を追加ディスク無しで作成

Page 32: MythingsとIDCFチャンネル調査 20150824

IDCFチャンネルサーバの作り方

IPアドレスを追加して(もしくはデフォルトのソースIPでも可)

FWで8088,1883,443,22を解放(22と8088はアドレス制限した方が良し)

Page 33: MythingsとIDCFチャンネル調査 20150824

IDCFチャンネルサーバの作り方

なんだかんだでサーバにSSHして、公式サイトのhttp://www.idcf.jp/cloud/iot/detail01.html

の通りに設定

mkdir ~/iot_apps && cd ~/iot_appsgit clone --recursive https://github.com/IDCFChannel/meshblu-composecd meshblu-compose./bootstrap.sh

クライアントとmyThingsをうまい事仲介してくれる、IoTなDockerコンテナ群が出来上がります。meshbluというプラットフォームを利用しているようですが、読み方が分かりません。。

Page 34: MythingsとIDCFチャンネル調査 20150824

IDCFチャンネル

Dockerの構成

freeboard:sub出来るグラフィカルなウェブサーバmeshbulu:MQTTプラットフォームmongo:センサデータ等の格納openresty:REST-APIのリバースプロキシredis:iotutilコマンド専用?

Page 35: MythingsとIDCFチャンネル調査 20150824

IDCFチャンネル

https://github.com/IDCFChannel

Page 36: MythingsとIDCFチャンネル調査 20150824

IDCFチャンネルセンサー(ラズパイ)=>IDCFチャンネル MQTT送信テスト

Page 37: MythingsとIDCFチャンネル調査 20150824

IDCFチャンネル

もらった温湿度計測器bme280

sampleソースでaction-3へpublish

温度、湿度、気圧をIDCFチャンネルサーバにMQTT送信してる

Page 38: MythingsとIDCFチャンネル調査 20150824

IDCFチャンネルもらった温湿度計測器bme280

sampleソースの一部TRIGGER_3への送信とsleepを調整

Page 39: MythingsとIDCFチャンネル調査 20150824

IDCFチャンネル

もらった温湿度計測器bme280

action-3をsubscribe

温度、湿度、気圧をIDCFチャンネルサーバでMQTT受信毎秒計測結果を受信する

Page 40: MythingsとIDCFチャンネル調査 20150824

IDCFチャンネルもらった温湿度計測器bme280

action-3をsubscribeするfreeboardを表示してみるちゃんと毎秒更新される。

Page 41: MythingsとIDCFチャンネル調査 20150824

IDCFチャンネル

ただ、ここままではmyThingsは関係無し

Page 42: MythingsとIDCFチャンネル調査 20150824

IDCFチャンネル

myThingsでトリガーとして利用するにはdataトピックに登録する必要がある

IDCFチャンネルのサイトを見てもわからず。というか、ドキュメントは見当たらず。ソースを追わないと分からなそう。

とりあえずmyThingsとIDCFチャンネルのテストとして「trigger-3が発火したらslackにメッセージを投稿する」をやってみる。

Page 43: MythingsとIDCFチャンネル調査 20150824

IDCFチャンネル

myThingsでトリガーとして利用するにはdataトピックに登録する必要がある

1)myThingsアプリ左の写真のように設定する2)trigger-3にpublish

trigger-3のUUID,TOKENをusername,pwとして、dataトピックにデータをpublishします。データは何でもOK。{{placeholder}}を使えると思ったけどやり方が不明。

Page 44: MythingsとIDCFチャンネル調査 20150824

IDCFチャンネル

slackに無事届きました。myThingsの実行タイミングは15分毎らしいのでスマフォアプリの

「手動実行」を押した方が早いです。triggerに入れたメッセージを表示させたかったのですが

仕様が分かりませんでした。

Page 45: MythingsとIDCFチャンネル調査 20150824

IDCFチャンネル

triggerに発火させてtcpdumpを見るmyThingsには443で接続している模様

03:50:15.347977 IP 10.6.0.2.443 > 183.79.179.16.43581: Flags [S.], seq 1457483178, ack 3549494285, win 28960, options [mss 1460,sackOK,TS val 173324349 ecr 2800741818,nop,wscale 7], length 003:50:15.365881 IP 183.79.179.16.43581 > 10.6.0.2.443: Flags [.], ack 1, win 115, options [nop,nop,TS val 2800741836 ecr 173324349], length 0

dig -x 183.79.179.16 NXDOMAINだけど79.183.in-addr.arpa. 633 IN SOA yahoo.co.jp. postmaster.yahoo.co.jp. 2015082101 1800 900 1209600 900yahooっぽい

Page 46: MythingsとIDCFチャンネル調査 20150824

IDCFチャンネルidcfchannel/iotutilって何?いつもは毎回捨てるコマンド専用コンテナ中をみてみるsudo docker-compose up -d iotutilsudo docker exec -it meshblucompose_iotutil_1 bash

root 11 0.2 3.8 612884 39052 ? S 21:53 0:01 node app.jsここもnode.jsが動いている$ cd /app/commands$ lsdeviceCommand.js statusCommand.js

deviceCommand.jsのvar master = 'owner', defaultTimes = 5;

defaultTimesを10に変えたら怒られるだろうか。ここでtrriger-*,action-*,owner等のdevice登録をしている。自由に名前変えてもいいのかしら?もう少し追ってみる必要がある

Page 47: MythingsとIDCFチャンネル調査 20150824

IDCFチャンネル

天気とか、はてぶをトリガーに指定した場合、下記のようにMQTTでJSONメッセージが届きます。こいつをsubscribeするスクリプト作って、閾値を超えたら直接何かする、もしくは、ラズパイで検知して物理的に何かさせる、というプログラムを組むのが正しい使い方なのかな。IDCFチャンネルをトリガーにした場合の使い方はもう少し研究が必要な印象でした。myThingsとの連携仕様の詳細を知りたいです。

Page 48: MythingsとIDCFチャンネル調査 20150824

(3)IDCFチャンネルって何?

IDCFチャンネルってなんやねんmyThingsの組み合わせで唯一、デベロッパーに解放された領域。

ドキュメントちゃんとせえや!!!!!!!!!!! 通報しておきました。

Page 49: MythingsとIDCFチャンネル調査 20150824

(4)最後に

ラズパイは色々動かして遊んでみて電子工作に興味が湧きました。 すごく難しいですけど。

myThings連携部分は簡単だろうと舐めていたら時間が足りませんでした。 なにか実演したかったんですが、次回あれば頑張ります。

Page 50: MythingsとIDCFチャンネル調査 20150824

(4)最後にインターネッツもいいけどやっぱり実物はいいですね。 IoTって頑張って言うとちょっと気恥ずかしいですが、 世の中は確実にものがネットに繋がるのが当たり前になるので、 まだやってない人は IDCFチャンネルとmyThings使って「物」作りやって行きましょう。

おわり。

今ならIDCFクラウドのクーポンが使えるのでラズパイがあればほとんど無料で遊べます。

Page 51: MythingsとIDCFチャンネル調査 20150824

有り難うございました