Transcript
Page 1: 一人でできる!M baasでスマートホーム化

一人でできる!mBaaSでスマートホーム化

(株)MOONGIFT 中津川篤司

Page 2: 一人でできる!M baasでスマートホーム化

自己紹介

@a_nakatsugawa

fb.me/moongift

株式会社MOONGIFT 代表取締役

2004年1月よりオープンソース・ソフトウェアを毎日紹介するブログ MOONGIFT を運営。

http://www.moongift.jp/

中津川 篤司

@moongift fb.me/moongift.fan

Page 3: 一人でできる!M baasでスマートホーム化

ニフティクラウド mobile backend

• アプリ、Webアプリのバックエンド(サーバサイド)をまるっと提供するサービス。いわゆるmBaaS。

• データベースとかファイルストレージ、プッシュ通知とか。

http://mb.cloud.nifty.com/

Page 4: 一人でできる!M baasでスマートホーム化

一人でできる!mBaaSでスマートホーム化

Page 5: 一人でできる!M baasでスマートホーム化

スマートホーム?

• 家電や設備機器などを情報化&静的制御(ホームオートメーション)

• 地域や家庭内のエネルギーを最適制御する住宅

by Wikipedia@スマートホーム

Page 6: 一人でできる!M baasでスマートホーム化

ホームオートメーション• 室内環境(温度、照明)

• 開口部(扉や窓)

• セキュリティ(防犯、防火)

• 風呂の遠隔自動給湯、ホームシアター

• 生物(自動散水、自動給餌)

Page 7: 一人でできる!M baasでスマートホーム化

芝生ェ…

15.5万ドル/7.5万ドル!

7.6万ドル/3万ドル!

10.2万ドル/3万ドル!

Page 8: 一人でできる!M baasでスマートホーム化

イメージ

Page 9: 一人でできる!M baasでスマートホーム化

自動給餌

諸事情により削除されています

Page 10: 一人でできる!M baasでスマートホーム化

ホームオートメーション

諸事情により削除されています

Page 11: 一人でできる!M baasでスマートホーム化

ホームオートメーション

諸事情により削除されています

Page 12: 一人でできる!M baasでスマートホーム化

ホームオートメーション

諸事情により削除されています

Page 13: 一人でできる!M baasでスマートホーム化

ホームオートメーション

諸事情により削除されています

Page 14: 一人でできる!M baasでスマートホーム化

H.AにおけるmBaaSとは?

• ドアを開けると照明がつく

• 明るくなるとカーテンが開く

• 温度が高くなるとエアコンがつく

Page 15: 一人でできる!M baasでスマートホーム化

H.AにおけるmBaaSとは?

トリガーが家庭内→実行も家庭内

• ドアを開けると照明がつく

• 明るくなるとカーテンが開く

• 温度が高くなるとエアコンがつく

Page 16: 一人でできる!M baasでスマートホーム化

トリガーが家庭内→リモート監視

Page 17: 一人でできる!M baasでスマートホーム化

H.Aにおけるクラウドとは?

• ステータスの記録

• 指定時間の実行

• リモートでの確認、監視

• 閾値を超えた時の処理通知

Page 18: 一人でできる!M baasでスマートホーム化

ニフティクラウド mobile backendについて

• 月200万回のWeb APIコールまで無料

• 月200万回のプッシュ通知が無料

• 無料で5GBまでのストレージ

• node.js(JavaScript)、Objective-C/Java/Unityフレームワーク

Page 19: 一人でできる!M baasでスマートホーム化

ニフティクラウドについて• MQTT(同時接続数100!)

• βにつき無料! WebSocket(Secure)もあり!

• タイマー

• 最小1分間隔/タイムアウト20秒

• HTTP(GET/POST) MQTT/MQTTS fluentd

Page 20: 一人でできる!M baasでスマートホーム化

H.AにおけるmBaaSとは?

• ステータスの記録 → mBaaS

• 指定時間の実行 → タイマー

• リモートでの確認、監視 → mBaaS

• 閾値を超えた時の処理通知 → MQTT/mBaaS

Page 21: 一人でできる!M baasでスマートホーム化

MQTTについて

Page 22: 一人でできる!M baasでスマートホーム化

MQTTとは?

• Pub/Sub型のメッセージングシステム

• HTTPに比べてヘッダデータ量が少ない

• N対Mでデータの送受信ができる

Page 23: 一人でできる!M baasでスマートホーム化

HTTPの場合

リクエスト

レスポンス

リクエストが来るまでは常に待ち

Page 24: 一人でできる!M baasでスマートホーム化

MQTTの場合

ブローカー

パブリッシャー サブスクライバー

パブリッシャー&サブスクライバー

Page 25: 一人でできる!M baasでスマートホーム化

ニフティクラウドのMQTT

• MQTT(同時接続数100!)

• βにつき無料! WebSocket(Secure)もあり!

Page 26: 一人でできる!M baasでスマートホーム化

今回のハードウェア/ソフトウェアの組み合わせ

Page 27: 一人でできる!M baasでスマートホーム化

Raspberry Pi 2 Model BARM 900 MHz!

お値段 4,800円!(アールエスコンポーネンツさん価格)

USBポート×4!

そもそもIoT用じゃない!

Windows 10 IoT Coreも動く!

Page 28: 一人でできる!M baasでスマートホーム化

ロジクール HD Webcam C270m

お値段 1,620円!(Amazonさん価格)

Raspberry PI対応(サポートとは言ってない)

Page 29: 一人でできる!M baasでスマートホーム化

WLI-UC-GNMやっすい無線LANアダプタ

お値段 841円!(Amazonさん価格)

発熱するっぽい(気にしない)

Raspberry PI対応(サポートとは言ってない)

Page 30: 一人でできる!M baasでスマートホーム化

IRKit

• Arduinoベース、オープンソースな赤外線リモコンデバイス

• HTTP経由で赤外線通信ができます。

• 7,700円(Amazonさん価格)

Page 31: 一人でできる!M baasでスマートホーム化

HDMIPi9インチ、1280×800 LCD

FirefoxOS(Open Web Board)でも使えます!

FullHDサポート

Raspberry PI用に作られた小型ディスプレイ

マイクロUSBからの給電でも動きます!

75ポンド!(約1.4万円) 仮注文受付中

Page 32: 一人でできる!M baasでスマートホーム化

マイク

• USB接続の適当なものでOK

Page 33: 一人でできる!M baasでスマートホーム化

プログラミング言語

• みんな大好きnode.js/JavaScript

• apt-get install nodejsで入るのは古いので、https://github.com/nathanjohnson320/node_armで公開されている版(v0.12系)を推奨

Page 34: 一人でできる!M baasでスマートホーム化

音声による制御

• Raspberry PI にJulius(音声認識エンジン)をインストール普通にDLしてコンパイル

Page 35: 一人でできる!M baasでスマートホーム化

音声認識動画.mov

デモ

Page 36: 一人でできる!M baasでスマートホーム化

アーキテクチャ

Page 37: 一人でできる!M baasでスマートホーム化

デモ

音声認識 - 電気点灯.mov

Page 38: 一人でできる!M baasでスマートホーム化

クラウド…?

• ネットワーク(LAN)は使っているけどインターネット(Internet)使ってなくね?

Page 39: 一人でできる!M baasでスマートホーム化

ニフティクラウド mobile backend

• アプリ、Webアプリのバックエンド(サーバサイド)をまるっと提供するサービス。いわゆるmBaaS。

• データベースとかファイルストレージ、プッシュ通知とか。

http://mb.cloud.nifty.com/

Page 40: 一人でできる!M baasでスマートホーム化

ニフティクラウド mobile backendの主な機能

データストア ファイルストア

認証

!プッシュ通知

Page 41: 一人でできる!M baasでスマートホーム化

IoTを絡めてみる• 何か問題があったら助けを呼ぶ→ プッシュ通知が飛ぶ!

!

Page 42: 一人でできる!M baasでスマートホーム化

アーキテクチャ

Page 43: 一人でできる!M baasでスマートホーム化

デモ

音声からのプッシュ通知.mov

Page 44: 一人でできる!M baasでスマートホーム化

NCMB.initialize(APP_KEY, CLI_KEY);NCMB.Push.send({ “immediateDeliveryFlag”: true, “message”: message}).then(function (obj) { // プッシュ登録完了});

Page 45: 一人でできる!M baasでスマートホーム化

監視システムを作る• Webカム×motionで動きがあった時に写真撮影&mBaaSにアップロード

• motionはapt-get install motionでOK

ファイルストア

Page 46: 一人でできる!M baasでスマートホーム化

アーキテクチャ

Page 47: 一人でできる!M baasでスマートホーム化

デモ

防犯カメラ.mov

Page 48: 一人でできる!M baasでスマートホーム化

var net = require('net'); var fs = require('fs'); var http = require('http'); var NCMB = require(‘./ncmb-latest.min').NCMB;

NCMB.initialize(“APP_KEY”, “CLI_KEY”); setInterval(function() { fs.readdir('/tmp/motion', function(err, files){ files.filter(function(file) { var path = '/tmp/motion/'+file; }).forEach(function (file) { var path = '/tmp/motion/'+file; fs.readFile(path, function(err, data) { var f = new NCMB.File(file, data, "image/jpeg"); f.save().then(function() { }, function(err) { console.log(err); }); }); }); }); }, 10000);

Page 49: 一人でできる!M baasでスマートホーム化

NCMB.initialize(“APP_KEY”, “CLI_KEY”);

var query = new NCMB.Query("file"); query.descending("createDate"); var filelist = {}; setInterval(function () { query.find().then(function(files) { files.forEach(function(file) { if (filelist[file.get('fileName')]) { return true; } filelist[file.get('fileName')] = true; var img = $("<img />"); var objFile = new NCMB.File(file.get('fileName'), null, "image/jpeg", null); objFile.fetchImgSource(img.get(0)); $(".images").prepend(img); }); }); }, 5000);

Page 50: 一人でできる!M baasでスマートホーム化

発展性

• 写真のアップロードと同時にプッシュ通知

• 写真から人物の認識ができれば、そこから特定の部屋のエアコンや照明をつけたり、合成音声で受け答えできる

Page 51: 一人でできる!M baasでスマートホーム化

照明とエアコンを連携する

• 照明を消したタイミングを関知して、エアコンを止める

データストア

Page 52: 一人でできる!M baasでスマートホーム化

アーキテクチャ

Intel Edison Light Sensor

++

IRKit

NCMB

Page 53: 一人でできる!M baasでスマートホーム化

var NCMB = require(‘./ncmb-latest.min').NCMB; NCMB.initialize(“APP_KEY”, “CLI_KEY”);

var IRKit = NCMB.Object.extend("IRKit"); var message = ""; setInterval(function () { if (value > 250) { if (on == null || on == false) message = "エアコンをオン"; } else { if (on == null || on == true) message = "エアコンをオフ"; } var obj = new IRKit(); obj.set("action", message); obj.save(); });

Page 54: 一人でできる!M baasでスマートホーム化

デモ

Page 55: 一人でできる!M baasでスマートホーム化

タイマー

• 指定した時間(または毎分など)に指定したURL、MQTT、Fluentdなどを実行

• Cronのサーバがない版

Page 56: 一人でできる!M baasでスマートホーム化

使用例

• 毎朝2時にデバイスのステータスを確認デバイス側にCronを設定しなくて良い(後々自由に変更できる)

• 毎朝6時にメッセージを送る

Page 57: 一人でできる!M baasでスマートホーム化

MQTT

• node.js/Rubyライブラリを使ってみる

Page 58: 一人でできる!M baasでスマートホーム化

デモ

MQTTデモ1

MQTT2.mov

MQTT3.mov

Page 59: 一人でできる!M baasでスマートホーム化

まとめ• mBaaS/ニフティクラウドを使うとサーバレスでIoTが実現できます

• 身近なところからホームオートメーションで遊んでみましょう

• Raspberry PI 2 Bモデルなら周辺機器も多いので手軽に使えますよ!

Page 60: 一人でできる!M baasでスマートホーム化

ご静聴ありがとう ございました

http://www.moongift.jp/


Top Related