SlideShare a Scribd company logo
1 of 42
トイレ使用中APIへ の道
2017-08-19 Kanazawa.rb #60
ふぁらお加藤
Profile
Name
ふぁらお加藤 / @PharaohKJ
Hobby
Camera / subculture / BBQ
Job & Works
PhalanXware (Freelancer)
OCR system com / .NET
ISDB-T MFC / Linux C++
Social Game PHP / Java
ERP+CRM AngularJS / Cordova
Information App AngularJS / CakePHP
Factory Automation .NET
トイレの使用状況が気になる
なぜ気になるのか?
祖母が使用中はどうしても長くなる
& 祖母が気を使って足音が響いただけで謝る
来客があるとお客さんにも
「祖母が使用中は近づくのも控えて欲しい」
という気持ち
トイレ使用中、わからねばならぬ
ジャスト1年前の資料
https://speakerdeck.com/izawa/iotdetoiresensa
ちょうどうちもトイレは昼でも真っ暗
ありがたく使わせていただきます
センサー部
CdSセル + TWELITE で電圧変化を見る
送られてくるデータのパースは Ruby で
未使用中=真っ暗は測定不能値(-1)
朝日が差し込むとトイレが少し明るくなってる
使用中
測定値は Ruby でパース
MQTTプロトコルでAWS IoT へ
AWS IoT
今回は MQTT と REST API と
Device Shadow の機能を使った
Message Queue Telemetry Transport
IoTでたくさんデータを集めるといえばこれ。
Facebookのメッセンジャとかにも採用されてる
プロトコル。
いわゆるパブサブモデルで
トピックにメッセージをパブリッシュすると
そのトピックをサブスクライブしている受信者に
メッセージを届けることができる
MQTTブローカ(MQサーバ)をAWSが
マネージドで提供してくれる
MQTTブローカを自前で用意するのは結構大変
単一故障点になりやすい、運用ノウハウがいるし
$8/100万メッセージ のコストで使える
AWS IoT の機能 Device Shadow
特定のトピックにパブリッシュすると
「Thingsの内部情報が更新された」
として情報を保持、その版管理をしてくれる
これはMQTTだけじゃなくREST APIも対応して
いるため、その方法で値を読み書きできる
$aws/things/<thing-name>/shadow/update
このトピックに定義されたJSONをpubる
$aws/things/<thing-
name>/shadow/update/document
このトピックに更新情報がpubられてくる
更新情報JSON
• previous(前)とcurrent(今)が送
られてきている
• 前回更新時間、今回更新時間
がわかる
• 版管理されている、MQTTはメ
ッセージ到達順序などは無保証
などで必須か
これで「ステータス読み書き」「その保持」「タ
イミング取得」はそろった
Amazon
API Gateway
Amazon API Gatewayを用いてREST API を作る
REST API サーバを簡単に構築できる
とあるURLが叩かれたら AWS Lambda を実行し
て返すようにする
AWS Lambda
AWS上のいろんなことをトリガーに実行できる
いわゆる FaaS、今回は API Gateway にアクセ
スがあったら実行する関数をつくる
データ取り出すだけ
API Gateway
上の設定
CORS 設定がデプロイいるのハマった
ブラウザで叩いてみた
CORS を適当に設定して GitHub Pages
でホスティングした静的ページから ajax でOK
こんな感じ センスが・・・
料金感
• マイコン2,000円、センサー、抵抗、電池など、全部で
3,000円ぐらい
• モノスティック3,000円、ラズパイ、USB電源、LEDなどで
、専用にさせておくと高めな10,000円ぐらい?
• GitHubは無料、AWS IoTが100円、API Gatewayが1円ほど
Lambdaは無料枠に収まってる。単純なpub/subは1日24回
想定だと750回/月程度で1円以下なはず。加えてpingなどが
メッセージ料金に入っているようだ。
https://aws.amazon.com/jp/iot-platform/pricing/
まとめ
• トイレ使用中APIができた
• 通知LED、使用中状況ウェブサイトも作れた
• トイレ使用時間分析などはログをパースすればいける
• ラズパイ以外はミドルウェア以下を面倒みなくて済む
の選べた、サーバレス?
使ってみて
• 次は俺が入る!っていう予約システムがいるね
• 使用者、目的(大・小・掃除など)によって記録を分けた
いね
• 弊社と祖母の死活管理に使えるね、電気つけっぱも防げる
• まーやっぱちょっと高いかな・・・
• トイレまでの距離が遠いので排他制御処理がまだ足りぬ、
トイレ行く時間を学習して予想か?それだとやっぱり使用
者別にデータとれないと・・・。
ふぁらお加藤
ご清聴ありがとうございました

More Related Content

Similar to トイレ使用中APIへの道

ご注文は監視自動化ですか?
ご注文は監視自動化ですか?ご注文は監視自動化ですか?
ご注文は監視自動化ですか?Masahito Zembutsu
 
俺とPrivate Forkと炭の選び方とC++からRubyへのブレイクスルーとポモドーロテクニックとコミュニティ貢献と浪人アカウントと糖尿病
俺とPrivate Forkと炭の選び方とC++からRubyへのブレイクスルーとポモドーロテクニックとコミュニティ貢献と浪人アカウントと糖尿病俺とPrivate Forkと炭の選び方とC++からRubyへのブレイクスルーとポモドーロテクニックとコミュニティ貢献と浪人アカウントと糖尿病
俺とPrivate Forkと炭の選び方とC++からRubyへのブレイクスルーとポモドーロテクニックとコミュニティ貢献と浪人アカウントと糖尿病Masayuki KaToH
 
JAWS DAYS 2018 行ってきた & スタッフした
JAWS DAYS 2018 行ってきた & スタッフしたJAWS DAYS 2018 行ってきた & スタッフした
JAWS DAYS 2018 行ってきた & スタッフしたMasayuki KaToH
 
俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編
俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編
俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編Masayuki KaToH
 
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編Masayuki KaToH
 
俺とCiとinfrastructure as code(未完)
俺とCiとinfrastructure as code(未完)俺とCiとinfrastructure as code(未完)
俺とCiとinfrastructure as code(未完)Masayuki KaToH
 
俺と今年請けた仕事のテック分布
俺と今年請けた仕事のテック分布俺と今年請けた仕事のテック分布
俺と今年請けた仕事のテック分布Masayuki KaToH
 
RustでWebSocketな自社APIを使う
RustでWebSocketな自社APIを使うRustでWebSocketな自社APIを使う
RustでWebSocketな自社APIを使うSatoshi Yoshikawa
 
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい! request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい! Masato Noguchi
 
俺と LightSail 概要と使ってみた
俺と LightSail  概要と使ってみた俺と LightSail  概要と使ってみた
俺と LightSail 概要と使ってみたMasayuki KaToH
 
SwiftのWebフレームワークVaporを触ってみる
SwiftのWebフレームワークVaporを触ってみるSwiftのWebフレームワークVaporを触ってみる
SwiftのWebフレームワークVaporを触ってみるYuya Oka
 
事例紹介「なうまぴおん」
事例紹介「なうまぴおん」事例紹介「なうまぴおん」
事例紹介「なうまぴおん」Eiji Iwazawa
 
俺と AWS Summit 2019 振り返り
俺と AWS Summit 2019 振り返り俺と AWS Summit 2019 振り返り
俺と AWS Summit 2019 振り返りMasayuki KaToH
 
俺 と 今年度 Civic Hack Night 運営
俺 と 今年度 Civic Hack Night 運営俺 と 今年度 Civic Hack Night 運営
俺 と 今年度 Civic Hack Night 運営Masayuki KaToH
 
俺とGitHubとcodeシリーズ
俺とGitHubとcodeシリーズ俺とGitHubとcodeシリーズ
俺とGitHubとcodeシリーズMasayuki KaToH
 
2012_07_06_gxeb_05
2012_07_06_gxeb_052012_07_06_gxeb_05
2012_07_06_gxeb_05ryo katsuma
 
クラウドを用いるIoT開発における実費レポート
クラウドを用いるIoT開発における実費レポートクラウドを用いるIoT開発における実費レポート
クラウドを用いるIoT開発における実費レポートMasayuki KaToH
 
コワーキングカンファレンスTokyo 2012を支えたインフラ技術
コワーキングカンファレンスTokyo 2012を支えたインフラ技術コワーキングカンファレンスTokyo 2012を支えたインフラ技術
コワーキングカンファレンスTokyo 2012を支えたインフラ技術Kei Mikage
 

Similar to トイレ使用中APIへの道 (20)

ご注文は監視自動化ですか?
ご注文は監視自動化ですか?ご注文は監視自動化ですか?
ご注文は監視自動化ですか?
 
俺とPrivate Forkと炭の選び方とC++からRubyへのブレイクスルーとポモドーロテクニックとコミュニティ貢献と浪人アカウントと糖尿病
俺とPrivate Forkと炭の選び方とC++からRubyへのブレイクスルーとポモドーロテクニックとコミュニティ貢献と浪人アカウントと糖尿病俺とPrivate Forkと炭の選び方とC++からRubyへのブレイクスルーとポモドーロテクニックとコミュニティ貢献と浪人アカウントと糖尿病
俺とPrivate Forkと炭の選び方とC++からRubyへのブレイクスルーとポモドーロテクニックとコミュニティ貢献と浪人アカウントと糖尿病
 
JAWS DAYS 2018 行ってきた & スタッフした
JAWS DAYS 2018 行ってきた & スタッフしたJAWS DAYS 2018 行ってきた & スタッフした
JAWS DAYS 2018 行ってきた & スタッフした
 
俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編
俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編
俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編
 
ゆるかわPhp
ゆるかわPhpゆるかわPhp
ゆるかわPhp
 
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
 
俺とCiとinfrastructure as code(未完)
俺とCiとinfrastructure as code(未完)俺とCiとinfrastructure as code(未完)
俺とCiとinfrastructure as code(未完)
 
俺と今年請けた仕事のテック分布
俺と今年請けた仕事のテック分布俺と今年請けた仕事のテック分布
俺と今年請けた仕事のテック分布
 
RustでWebSocketな自社APIを使う
RustでWebSocketな自社APIを使うRustでWebSocketな自社APIを使う
RustでWebSocketな自社APIを使う
 
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい! request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
 
俺と LightSail 概要と使ってみた
俺と LightSail  概要と使ってみた俺と LightSail  概要と使ってみた
俺と LightSail 概要と使ってみた
 
SwiftのWebフレームワークVaporを触ってみる
SwiftのWebフレームワークVaporを触ってみるSwiftのWebフレームワークVaporを触ってみる
SwiftのWebフレームワークVaporを触ってみる
 
俺とキーボード
俺とキーボード俺とキーボード
俺とキーボード
 
事例紹介「なうまぴおん」
事例紹介「なうまぴおん」事例紹介「なうまぴおん」
事例紹介「なうまぴおん」
 
俺と AWS Summit 2019 振り返り
俺と AWS Summit 2019 振り返り俺と AWS Summit 2019 振り返り
俺と AWS Summit 2019 振り返り
 
俺 と 今年度 Civic Hack Night 運営
俺 と 今年度 Civic Hack Night 運営俺 と 今年度 Civic Hack Night 運営
俺 と 今年度 Civic Hack Night 運営
 
俺とGitHubとcodeシリーズ
俺とGitHubとcodeシリーズ俺とGitHubとcodeシリーズ
俺とGitHubとcodeシリーズ
 
2012_07_06_gxeb_05
2012_07_06_gxeb_052012_07_06_gxeb_05
2012_07_06_gxeb_05
 
クラウドを用いるIoT開発における実費レポート
クラウドを用いるIoT開発における実費レポートクラウドを用いるIoT開発における実費レポート
クラウドを用いるIoT開発における実費レポート
 
コワーキングカンファレンスTokyo 2012を支えたインフラ技術
コワーキングカンファレンスTokyo 2012を支えたインフラ技術コワーキングカンファレンスTokyo 2012を支えたインフラ技術
コワーキングカンファレンスTokyo 2012を支えたインフラ技術
 

More from Masayuki KaToH

APAC Community Summit DevOps Breakout 部屋.pptx
APAC Community Summit DevOps Breakout 部屋.pptxAPAC Community Summit DevOps Breakout 部屋.pptx
APAC Community Summit DevOps Breakout 部屋.pptxMasayuki KaToH
 
LINE × AWSの可能性や事例について語り合う夕べ
LINE × AWSの可能性や事例について語り合う夕べLINE × AWSの可能性や事例について語り合う夕べ
LINE × AWSの可能性や事例について語り合う夕べMasayuki KaToH
 
俺と Active Storage + CloudFront
俺と Active Storage + CloudFront俺と Active Storage + CloudFront
俺と Active Storage + CloudFrontMasayuki KaToH
 
俺とオープンデータ
俺とオープンデータ俺とオープンデータ
俺とオープンデータMasayuki KaToH
 
俺と最近のクラウドAI系サービス
俺と最近のクラウドAI系サービス俺と最近のクラウドAI系サービス
俺と最近のクラウドAI系サービスMasayuki KaToH
 
俺と超高速リアルタイム検索APIをたぶん支えているAWS
俺と超高速リアルタイム検索APIをたぶん支えているAWS俺と超高速リアルタイム検索APIをたぶん支えているAWS
俺と超高速リアルタイム検索APIをたぶん支えているAWSMasayuki KaToH
 
俺と ha4go と Civic Tech Application & Open Data Catalog
俺と ha4go と Civic Tech Application & Open Data Catalog俺と ha4go と Civic Tech Application & Open Data Catalog
俺と ha4go と Civic Tech Application & Open Data CatalogMasayuki KaToH
 
俺 と JAWS DAYS 2019
俺 と JAWS DAYS 2019俺 と JAWS DAYS 2019
俺 と JAWS DAYS 2019Masayuki KaToH
 
俺と 2017 Code for Kanazawa Civic Hack Night運営
俺と 2017 Code for Kanazawa  Civic Hack Night運営俺と 2017 Code for Kanazawa  Civic Hack Night運営
俺と 2017 Code for Kanazawa Civic Hack Night運営Masayuki KaToH
 
俺とディスプレイ
俺とディスプレイ俺とディスプレイ
俺とディスプレイMasayuki KaToH
 
JAWS DAYS 2018 行ってきた & スタッフした
JAWS DAYS 2018  行ってきた & スタッフしたJAWS DAYS 2018  行ってきた & スタッフした
JAWS DAYS 2018 行ってきた & スタッフしたMasayuki KaToH
 
ラズパイでネット対応 学習リモコンをつくろう!
ラズパイでネット対応 学習リモコンをつくろう!ラズパイでネット対応 学習リモコンをつくろう!
ラズパイでネット対応 学習リモコンをつくろう!Masayuki KaToH
 
俺 と AWS Summit Tokyo 2017 DAY 1
俺 と AWS Summit Tokyo 2017 DAY 1俺 と AWS Summit Tokyo 2017 DAY 1
俺 と AWS Summit Tokyo 2017 DAY 1Masayuki KaToH
 
俺と Ha4go と さくらクラウド
俺と Ha4go と さくらクラウド俺と Ha4go と さくらクラウド
俺と Ha4go と さくらクラウドMasayuki KaToH
 
俺とモデリング
俺とモデリング俺とモデリング
俺とモデリングMasayuki KaToH
 
俺と2016コミュニティ活動振り返り
俺と2016コミュニティ活動振り返り俺と2016コミュニティ活動振り返り
俺と2016コミュニティ活動振り返りMasayuki KaToH
 

More from Masayuki KaToH (19)

APAC Community Summit DevOps Breakout 部屋.pptx
APAC Community Summit DevOps Breakout 部屋.pptxAPAC Community Summit DevOps Breakout 部屋.pptx
APAC Community Summit DevOps Breakout 部屋.pptx
 
LINE × AWSの可能性や事例について語り合う夕べ
LINE × AWSの可能性や事例について語り合う夕べLINE × AWSの可能性や事例について語り合う夕べ
LINE × AWSの可能性や事例について語り合う夕べ
 
俺と Active Storage + CloudFront
俺と Active Storage + CloudFront俺と Active Storage + CloudFront
俺と Active Storage + CloudFront
 
俺とオープンデータ
俺とオープンデータ俺とオープンデータ
俺とオープンデータ
 
Capacitor
CapacitorCapacitor
Capacitor
 
俺と最近のクラウドAI系サービス
俺と最近のクラウドAI系サービス俺と最近のクラウドAI系サービス
俺と最近のクラウドAI系サービス
 
俺と超高速リアルタイム検索APIをたぶん支えているAWS
俺と超高速リアルタイム検索APIをたぶん支えているAWS俺と超高速リアルタイム検索APIをたぶん支えているAWS
俺と超高速リアルタイム検索APIをたぶん支えているAWS
 
俺と ha4go と Civic Tech Application & Open Data Catalog
俺と ha4go と Civic Tech Application & Open Data Catalog俺と ha4go と Civic Tech Application & Open Data Catalog
俺と ha4go と Civic Tech Application & Open Data Catalog
 
俺 と JAWS DAYS 2019
俺 と JAWS DAYS 2019俺 と JAWS DAYS 2019
俺 と JAWS DAYS 2019
 
俺と 2017 Code for Kanazawa Civic Hack Night運営
俺と 2017 Code for Kanazawa  Civic Hack Night運営俺と 2017 Code for Kanazawa  Civic Hack Night運営
俺と 2017 Code for Kanazawa Civic Hack Night運営
 
俺とディスプレイ
俺とディスプレイ俺とディスプレイ
俺とディスプレイ
 
俺と通知
俺と通知俺と通知
俺と通知
 
JAWS DAYS 2018 行ってきた & スタッフした
JAWS DAYS 2018  行ってきた & スタッフしたJAWS DAYS 2018  行ってきた & スタッフした
JAWS DAYS 2018 行ってきた & スタッフした
 
ラズパイでネット対応 学習リモコンをつくろう!
ラズパイでネット対応 学習リモコンをつくろう!ラズパイでネット対応 学習リモコンをつくろう!
ラズパイでネット対応 学習リモコンをつくろう!
 
俺 と AWS Summit Tokyo 2017 DAY 1
俺 と AWS Summit Tokyo 2017 DAY 1俺 と AWS Summit Tokyo 2017 DAY 1
俺 と AWS Summit Tokyo 2017 DAY 1
 
俺と Ha4go と さくらクラウド
俺と Ha4go と さくらクラウド俺と Ha4go と さくらクラウド
俺と Ha4go と さくらクラウド
 
俺とモデリング
俺とモデリング俺とモデリング
俺とモデリング
 
俺とホットキー
俺とホットキー俺とホットキー
俺とホットキー
 
俺と2016コミュニティ活動振り返り
俺と2016コミュニティ活動振り返り俺と2016コミュニティ活動振り返り
俺と2016コミュニティ活動振り返り
 

トイレ使用中APIへの道