SlideShare a Scribd company logo
1 of 60
Download to read offline
一人でできる!mBaaS
でスマートホーム化
(株)MOONGIFT 中津川篤司
自己紹介
@a_nakatsugawa
fb.me/moongift
株式会社MOONGIFT 代表取締役
2004年1月よりオープンソース・ソフトウェアを毎
日紹介するブログ MOONGIFT を運営。
http://www.moongift.jp/
中津川 篤司
@moongift fb.me/moongift.fan
ニフティクラウド
mobile backend
• アプリ、Webアプリのバックエンド(サーバサイ
ド)をまるっと提供するサービス。いわゆる
mBaaS。
• データベースとかファイルストレージ、プッシュ通
知とか。
http://mb.cloud.nifty.com/
一人でできる!mBaaS
でスマートホーム化
スマートホーム?
• 家電や設備機器などを情報化&静的制御

(ホームオートメーション)
• 地域や家庭内のエネルギーを最適制御する住宅
by Wikipedia@スマートホーム
ホームオートメーション
• 室内環境(温度、照明)
• 開口部(扉や窓)
• セキュリティ(防犯、防火)
• 風呂の遠隔自動給湯、ホームシアター
• 生物(自動散水、自動給餌)
芝生ェ…
15.5万ドル/7.5万ドル!
7.6万ドル/3万ドル!
10.2万ドル/3万ドル!
イメージ
自動給餌
諸事情により削除されています
ホームオートメーション
諸事情により削除されています
ホームオートメーション
諸事情により削除されています
ホームオートメーション
諸事情により削除されています
ホームオートメーション
諸事情により削除されています
H.AにおけるmBaaSとは?
• ドアを開けると照明がつく
• 明るくなるとカーテンが開く
• 温度が高くなるとエアコンがつく
H.AにおけるmBaaSとは?
トリガーが家庭内→実行も家庭内
• ドアを開けると照明がつく
• 明るくなるとカーテンが開く
• 温度が高くなるとエアコンがつく
トリガーが家庭内→リモート監視
H.Aにおけるクラウドとは?
• ステータスの記録
• 指定時間の実行
• リモートでの確認、監視
• 閾値を超えた時の処理通知
ニフティクラウド mobile
backendについて
• 月200万回のWeb APIコールまで無料
• 月200万回のプッシュ通知が無料
• 無料で5GBまでのストレージ
• node.js(JavaScript)、Objective-C/
Java/Unityフレームワーク
ニフティクラウドについて
• MQTT(同時接続数100!)
• βにつき無料! WebSocket(Secure)
もあり!
• タイマー
• 最小1分間隔/タイムアウト20秒
• HTTP(GET/POST) MQTT/MQTTS 
fluentd
H.AにおけるmBaaSとは?
• ステータスの記録 → mBaaS
• 指定時間の実行 → タイマー
• リモートでの確認、監視 → mBaaS
• 閾値を超えた時の処理通知 → MQTT/mBaaS
MQTTについて
MQTTとは?
• Pub/Sub型のメッセージングシステム
• HTTPに比べてヘッダデータ量が少ない
• N対Mでデータの送受信ができる
HTTPの場合
リクエスト
レスポンス
リクエストが来るまでは常に待ち
MQTTの場合
ブローカー
パブリッシャー サブスクライバー
パブリッシャー&サブスクライバー
ニフティクラウドのMQTT
• MQTT(同時接続数100!)
• βにつき無料! WebSocket(Secure)
もあり!
今回のハードウェア/

ソフトウェアの組み合わせ
Raspberry Pi 2 Model B
ARM 900 MHz!
お値段 4,800円!(アールエスコンポーネンツさん価格)
USBポート 4!
そもそもIoT用じゃない!
Windows 10 IoT Coreも動く!
ロジクール HD Webcam C270m
お値段 1,620円!(Amazonさん価格)
Raspberry PI対応(サポートとは言ってない)
WLI-UC-GNM
やっすい無線LANアダプタ
お値段 841円!(Amazonさん価格)
発熱するっぽい(気にしない)
Raspberry PI対応(サポートとは言ってない)
IRKit
• Arduinoベース、オープンソースな赤外線リモコン
デバイス
• HTTP経由で赤外線通信ができます。
• 7,700円(Amazonさん価格)
HDMIPi
9インチ、1280 800 LCD
FirefoxOS(Open Web Board)でも使えます!
FullHDサポート
Raspberry PI用に作られた小型ディスプレイ
マイクロUSBからの給電でも動きます!
75ポンド!(約1.4万円) 仮注文受付中
マイク
• USB接続の適当なものでOK
プログラミング言語
• みんな大好きnode.js/JavaScript
• apt-get install nodejsで入るのは古いので、

https://github.com/nathanjohnson320/
node_arm

で公開されている版(v0.12系)を推奨
音声による制御
• Raspberry PI にJulius(音声認識エンジン)をイ
ンストール

普通にDLしてコンパイル
音声認識動画.mov
デモ
アーキテクチャ
デモ
音声認識 - 電気点灯.mov
クラウド…?
• ネットワーク(LAN)は使っているけどインターネッ
ト(Internet)使ってなくね?
ニフティクラウド
mobile backend
• アプリ、Webアプリのバックエンド(サーバサイ
ド)をまるっと提供するサービス。いわゆる
mBaaS。
• データベースとかファイルストレージ、プッシュ通
知とか。
http://mb.cloud.nifty.com/
ニフティクラウド
mobile backendの主な機能
データストア ファイルストア
認証
!
プッシュ通知
IoTを絡めてみる
• 何か問題があったら助けを呼ぶ

→ プッシュ通知が飛ぶ!
!
アーキテクチャ
!
デモ
音声からのプッシュ通知.mov
NCMB.initialize(APP_KEY, CLI_KEY);

NCMB.Push.send({
immediateDeliveryFlag : true,

message : message

}).then(function (obj) {

// プッシュ登録完了

});
監視システムを作る
• Webカム motionで動きがあった時に写真撮影
&mBaaSにアップロード
• motionはapt-get install motionでOK
ファイルストア
アーキテクチャ
デモ
防犯カメラ.mov
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);
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);
発展性
• 写真のアップロードと同時にプッシュ通知
• 写真から人物の認識ができれば、そこから特定の部
屋のエアコンや照明をつけたり、合成音声で受け答
えできる
照明とエアコンを連携する
• 照明を消したタイミングを関知して、エアコンを止
める
データストア
アーキテクチャ
Intel Edison Light Sensor
++
IRKit
NCMB
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();
});
デモ
タイマー
• 指定した時間(または毎分など)に指定したURL、
MQTT、Fluentdなどを実行
• Cronのサーバがない版
使用例
• 毎朝2時にデバイスのステータスを確認

デバイス側にCronを設定しなくて良い(後々自由
に変更できる)
• 毎朝6時にメッセージを送る
MQTT
• node.js/Rubyライブラリを使ってみる
デモ
MQTTデモ1
MQTT2.mov
MQTT3.mov
まとめ
• mBaaS/ニフティクラウドを使うとサーバレスで
IoTが実現できます
• 身近なところからホームオートメーションで遊んで
みましょう
• Raspberry PI 2 Bモデルなら周辺機器も多いので
手軽に使えますよ!
ご静聴ありがとう
ございました
http://www.moongift.jp/

More Related Content

Viewers also liked

Martin karlssons vykortssamling rådhuset
Martin karlssons vykortssamling   rådhusetMartin karlssons vykortssamling   rådhuset
Martin karlssons vykortssamling rådhuset
hembygdsigtuna
 
Austria PowerPoint Content
Austria PowerPoint Content Austria PowerPoint Content
Austria PowerPoint Content
Andrew Schwartz
 
Maker Art: How to Create a Wonderbox
Maker Art: How to Create a WonderboxMaker Art: How to Create a Wonderbox
Maker Art: How to Create a Wonderbox
Green Change
 
Constr spb2015
Constr spb2015Constr spb2015
Constr spb2015
Lidia Pivovarova
 
Presentation of Software Study at IDI/NTNU
Presentation of Software Study at IDI/NTNUPresentation of Software Study at IDI/NTNU
Presentation of Software Study at IDI/NTNU
letiziajaccheri
 

Viewers also liked (15)

Martin karlssons vykortssamling rådhuset
Martin karlssons vykortssamling   rådhusetMartin karlssons vykortssamling   rådhuset
Martin karlssons vykortssamling rådhuset
 
Assertiveness
AssertivenessAssertiveness
Assertiveness
 
Acquireren Mkb Deventer Slimmer Reeks 30 Maart 2010
Acquireren Mkb Deventer Slimmer Reeks 30 Maart 2010Acquireren Mkb Deventer Slimmer Reeks 30 Maart 2010
Acquireren Mkb Deventer Slimmer Reeks 30 Maart 2010
 
Topics In Critical Pedagogy
Topics In Critical PedagogyTopics In Critical Pedagogy
Topics In Critical Pedagogy
 
Austria PowerPoint Content
Austria PowerPoint Content Austria PowerPoint Content
Austria PowerPoint Content
 
6. open innov conclusions
6. open innov conclusions6. open innov conclusions
6. open innov conclusions
 
Spring 3 - An Introduction
Spring 3 - An IntroductionSpring 3 - An Introduction
Spring 3 - An Introduction
 
Maker Art: How to Create a Wonderbox
Maker Art: How to Create a WonderboxMaker Art: How to Create a Wonderbox
Maker Art: How to Create a Wonderbox
 
Constr spb2015
Constr spb2015Constr spb2015
Constr spb2015
 
Presentation of Software Study at IDI/NTNU
Presentation of Software Study at IDI/NTNUPresentation of Software Study at IDI/NTNU
Presentation of Software Study at IDI/NTNU
 
Рубен Гиридов
Рубен ГиридовРубен Гиридов
Рубен Гиридов
 
Contributing to the WordPress Codex
Contributing to the WordPress CodexContributing to the WordPress Codex
Contributing to the WordPress Codex
 
Personal Inquiry
Personal  InquiryPersonal  Inquiry
Personal Inquiry
 
Over the air 2.5 - Adobe AIR for Android
Over the air 2.5 - Adobe AIR for AndroidOver the air 2.5 - Adobe AIR for Android
Over the air 2.5 - Adobe AIR for Android
 
WiPromo Overview
WiPromo OverviewWiPromo Overview
WiPromo Overview
 

More from Atsushi Nakatsugawa

More from Atsushi Nakatsugawa (17)

採択されるプロポーザルの 書き方
採択されるプロポーザルの 書き方採択されるプロポーザルの 書き方
採択されるプロポーザルの 書き方
 
Q&A
Q&AQ&A
Q&A
 
Cordova × NCMB
Cordova × NCMBCordova × NCMB
Cordova × NCMB
 
プッシュからデータ保存まで。アプリ開発でニフティクラウド mobile backendを使う上での良くある質問、疑問にお答えします
プッシュからデータ保存まで。アプリ開発でニフティクラウド mobile backendを使う上での良くある質問、疑問にお答えしますプッシュからデータ保存まで。アプリ開発でニフティクラウド mobile backendを使う上での良くある質問、疑問にお答えします
プッシュからデータ保存まで。アプリ開発でニフティクラウド mobile backendを使う上での良くある質問、疑問にお答えします
 
Arduino yun × apiで遊んでみる
Arduino yun × apiで遊んでみるArduino yun × apiで遊んでみる
Arduino yun × apiで遊んでみる
 
ニフティクラウド mobile backendを使う上での良くある質問、疑問にお答えします
ニフティクラウド mobile backendを使う上での良くある質問、疑問にお答えしますニフティクラウド mobile backendを使う上での良くある質問、疑問にお答えします
ニフティクラウド mobile backendを使う上での良くある質問、疑問にお答えします
 
メッセージ&コンセプト
メッセージ&コンセプトメッセージ&コンセプト
メッセージ&コンセプト
 
書く技術
書く技術書く技術
書く技術
 
DevRelConに行ってきました
DevRelConに行ってきましたDevRelConに行ってきました
DevRelConに行ってきました
 
MRAAでIntel Edisonを遊ぼう
MRAAでIntel Edisonを遊ぼうMRAAでIntel Edisonを遊ぼう
MRAAでIntel Edisonを遊ぼう
 
フリーミアムモデルをやって分かったこと
フリーミアムモデルをやって分かったことフリーミアムモデルをやって分かったこと
フリーミアムモデルをやって分かったこと
 
Ncmb勉強会 #8 cocos2d x 資料「Cocos2d-xとNCMBを組み合わせるには」
Ncmb勉強会 #8 cocos2d x 資料「Cocos2d-xとNCMBを組み合わせるには」Ncmb勉強会 #8 cocos2d x 資料「Cocos2d-xとNCMBを組み合わせるには」
Ncmb勉強会 #8 cocos2d x 資料「Cocos2d-xとNCMBを組み合わせるには」
 
Edison色々試してみた
Edison色々試してみたEdison色々試してみた
Edison色々試してみた
 
HTML5/JavaScript ではじめるIoT
HTML5/JavaScript ではじめるIoTHTML5/JavaScript ではじめるIoT
HTML5/JavaScript ではじめるIoT
 
Webエンジニアなら抑えておきたい最近のOSS事情
Webエンジニアなら抑えておきたい最近のOSS事情Webエンジニアなら抑えておきたい最近のOSS事情
Webエンジニアなら抑えておきたい最近のOSS事情
 
LOCAL DEVELOPER DAY ’09/Winter
LOCAL DEVELOPER DAY ’09/WinterLOCAL DEVELOPER DAY ’09/Winter
LOCAL DEVELOPER DAY ’09/Winter
 
リーンソフトウェア
リーンソフトウェアリーンソフトウェア
リーンソフトウェア
 

Recently uploaded

Recently uploaded (10)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

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