SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
IoT ChatOps
#iotlt
Intro
諸見里 圭太@リレーションズ
アプリからバックエンドまで
• Android/iOS/js全般/node/PHP/AWS
ただのソフト屋さんです
ChatOps?
✕
@KeitaMoromizato
IoT ChatOps?
✕
Slack - hubot間の接続がWebSocketに変わった
必要な知識はLinux + CoffeeScriptのみ
POINT
書いたものがiPhoneに転送される
お高いホワイトボードの画像



http://www.amazon.com/
SMART-Tech-Kapp42-kapp42/
dp/B00ORGP6WU
What?
書いたものが自動転送される
ホワイトボード欲しい
買えないのでどうしているか?
1. iPhoneを探す
2. iPhoneで写真を撮る
3. Slackにアップロード
そうだ、自動化しよう!
demo
$899
$40
$20
$10
$10
$80
書いたものがiPhoneに転送される
お高いホワイトボードの画像



http://www.amazon.com/
SMART-Tech-Kapp42-kapp42/
dp/B00ORGP6WU
module.exports = (robot) ->
exec = require('child_process').exec
Slack = require 'slack-node'
slack = new Slack process.env.SLACK_API_TOKEN
DIR = '/tmp/'
processing = false
robot.hear /camera/i, (msg) ->
if processing
return msg.send "busy..."
processing = true
channel = msg.message.room
fileName = "#{getNow()}.jpg"
console.log "rcv"
exec "fswebcam -S 50 -r 1920x1080 --no-banner #{DIR}#{fileName}", (err, stdout, stderr) ->
if err
processing = false
return msg.send "Failed " + err
msg.send "Camera finished, Please wait a minute..."
postSlack channel, fileName, (err, res) ->
processing = false
if err
return msg.send "Failed " + err
console.log "OK"
postSlack = (channel, fileName, callback) ->
getChannelFromName channel, (err, id) ->
if err
return callback err
exec "curl -F file=@#{DIR}#{fileName} -F channels=#{id} -F
token=#{process.env.SLACK_API_TOKEN} https://slack.com/api/files.upload", (err, stdout,
stderr) ->
exec "rm -f #{DIR}#{fileName}", (err, stdout, stderr) ->
if err
console.log "failed to delete file"
if err
return callback err
callback null, 'OK'
getChannelFromName = (channelName, callback) ->
slack.api "channels.list", exclude_archived: 1, (err, response) ->
if err
return callback err
if !response.ok
return callback response.error
for val, i in response.channels
if val.name == channelName
return callback null, val.id
return callback err
getNow = () ->
date = new Date
y = date.getFullYear()
m = date.getMonth() + 1
d = date.getDate()
h = date.getHours()
M = date.getMinutes()
s = date.getSeconds()
return "#{y}#{m}#{d}#{h}#{M}#{s}"
64行のCoffeeScript
まとめ
ソフト屋さんでもIoTできるよ!
詳細はこちら
• Slackで現実世界も記録する

http://qiita.com/KeitaMoromizato/items/
1ecbfcd0f9343ce53975
• Slackの投稿内容を読み上げる

http://qiita.com/KeitaMoromizato/items/
2e23d1ecc12e79e18644

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

ラズピコでLチカ
ラズピコでLチカラズピコでLチカ
ラズピコでLチカ
 
部屋と◯◯と私
部屋と◯◯と私部屋と◯◯と私
部屋と◯◯と私
 
Raspberry pi+mono を使ってlegoを制御
Raspberry pi+mono を使ってlegoを制御Raspberry pi+mono を使ってlegoを制御
Raspberry pi+mono を使ってlegoを制御
 
Raspberry piで動かすロボットアーム
Raspberry piで動かすロボットアームRaspberry piで動かすロボットアーム
Raspberry piで動かすロボットアーム
 
THETA S + Raspberry pi 2でライブストリーミングしてみた(続)
THETA S + Raspberry pi 2でライブストリーミングしてみた(続)THETA S + Raspberry pi 2でライブストリーミングしてみた(続)
THETA S + Raspberry pi 2でライブストリーミングしてみた(続)
 
Raspberry pi で スマホリモコンでラジコンカーを動かすさっと動かす編
Raspberry pi で スマホリモコンでラジコンカーを動かすさっと動かす編Raspberry pi で スマホリモコンでラジコンカーを動かすさっと動かす編
Raspberry pi で スマホリモコンでラジコンカーを動かすさっと動かす編
 
ハードウェア初心者のwebエンジニアがIoT製作に取り組んだ話
ハードウェア初心者のwebエンジニアがIoT製作に取り組んだ話ハードウェア初心者のwebエンジニアがIoT製作に取り組んだ話
ハードウェア初心者のwebエンジニアがIoT製作に取り組んだ話
 
LoRAの見通しって?
LoRAの見通しって?LoRAの見通しって?
LoRAの見通しって?
 
PukiWiki と Raspberry Pi と Arduino を連携させてIoT システムを作ってみた話
PukiWiki と Raspberry Pi と Arduino を連携させてIoT システムを作ってみた話PukiWiki と Raspberry Pi と Arduino を連携させてIoT システムを作ってみた話
PukiWiki と Raspberry Pi と Arduino を連携させてIoT システムを作ってみた話
 
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜リリース編 先生:増井雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜リリース編 先生:増井雄一郎増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜リリース編 先生:増井雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜リリース編 先生:増井雄一郎
 
Raspberry Pi勉強会(後編)-京大機械研究会
Raspberry Pi勉強会(後編)-京大機械研究会Raspberry Pi勉強会(後編)-京大機械研究会
Raspberry Pi勉強会(後編)-京大機械研究会
 
サバフェス2016-できる!快眠
サバフェス2016-できる!快眠サバフェス2016-できる!快眠
サバフェス2016-できる!快眠
 
Wiki と Raspberry Pi と Arduino を組み合わせて作成した電気製品の自動運転・遠隔操作システム
Wiki と Raspberry Pi と Arduino を組み合わせて作成した電気製品の自動運転・遠隔操作システムWiki と Raspberry Pi と Arduino を組み合わせて作成した電気製品の自動運転・遠隔操作システム
Wiki と Raspberry Pi と Arduino を組み合わせて作成した電気製品の自動運転・遠隔操作システム
 
AlexaPepperTalk
AlexaPepperTalkAlexaPepperTalk
AlexaPepperTalk
 
Jumpwire.io @ Maker Faire Tokyo 2015
Jumpwire.io @ Maker Faire Tokyo 2015Jumpwire.io @ Maker Faire Tokyo 2015
Jumpwire.io @ Maker Faire Tokyo 2015
 
見える!「IoT」 NefryでJenkinsのXFD作ってみた
見える!「IoT」 NefryでJenkinsのXFD作ってみた 見える!「IoT」 NefryでJenkinsのXFD作ってみた
見える!「IoT」 NefryでJenkinsのXFD作ってみた
 
IRKitで少し未来のスマートハウスに
IRKitで少し未来のスマートハウスにIRKitで少し未来のスマートハウスに
IRKitで少し未来のスマートハウスに
 
見える!「IoT」NefryでJenkinsのXFD作ってみた
見える!「IoT」NefryでJenkinsのXFD作ってみた見える!「IoT」NefryでJenkinsのXFD作ってみた
見える!「IoT」NefryでJenkinsのXFD作ってみた
 
160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBM160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBM
 
Raspberry pi は raspbian だけのものじゃない
Raspberry pi は raspbian だけのものじゃないRaspberry pi は raspbian だけのものじゃない
Raspberry pi は raspbian だけのものじゃない
 

Semelhante a IoT ChatOps #IoTLT

AndroidとHTML5で変わる組込みの世界
AndroidとHTML5で変わる組込みの世界AndroidとHTML5で変わる組込みの世界
AndroidとHTML5で変わる組込みの世界
Tomo Watanabe
 
組込みにおけるHTML5
組込みにおけるHTML5組込みにおけるHTML5
組込みにおけるHTML5
Tomo Watanabe
 
How to MAKE HVC-C Protyping Application
How to MAKE HVC-C Protyping ApplicationHow to MAKE HVC-C Protyping Application
How to MAKE HVC-C Protyping Application
Hirotaka Niisato
 
Interactive Application using Kinect and Android
Interactive Application using Kinect and AndroidInteractive Application using Kinect and Android
Interactive Application using Kinect and Android
Hirotaka Niisato
 
リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみたリモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみた
Masakazu Muraoka
 
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことHTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なこと
Masakazu Muraoka
 

Semelhante a IoT ChatOps #IoTLT (20)

オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
 
AndroidとHTML5で変わる組込みの世界
AndroidとHTML5で変わる組込みの世界AndroidとHTML5で変わる組込みの世界
AndroidとHTML5で変わる組込みの世界
 
はじめてのiOSアプリ開発 Swift対応版
はじめてのiOSアプリ開発 Swift対応版はじめてのiOSアプリ開発 Swift対応版
はじめてのiOSアプリ開発 Swift対応版
 
SORACOM Air+RaspberryPi+littleBits+IFTTTしてみる
SORACOM Air+RaspberryPi+littleBits+IFTTTしてみるSORACOM Air+RaspberryPi+littleBits+IFTTTしてみる
SORACOM Air+RaspberryPi+littleBits+IFTTTしてみる
 
組込みにおけるHTML5
組込みにおけるHTML5組込みにおけるHTML5
組込みにおけるHTML5
 
Stargazer Meetup #1
Stargazer Meetup #1Stargazer Meetup #1
Stargazer Meetup #1
 
How to MAKE HVC-C Protyping Application
How to MAKE HVC-C Protyping ApplicationHow to MAKE HVC-C Protyping Application
How to MAKE HVC-C Protyping Application
 
Interactive Application using Kinect and Android
Interactive Application using Kinect and AndroidInteractive Application using Kinect and Android
Interactive Application using Kinect and Android
 
2011_9_9_AIR_LightningTalk
2011_9_9_AIR_LightningTalk2011_9_9_AIR_LightningTalk
2011_9_9_AIR_LightningTalk
 
2011_9_9_AIR_LightningTalk
2011_9_9_AIR_LightningTalk2011_9_9_AIR_LightningTalk
2011_9_9_AIR_LightningTalk
 
Swift for pose-estimation
Swift for pose-estimationSwift for pose-estimation
Swift for pose-estimation
 
PUSH通知証明書作成ツールを作った
PUSH通知証明書作成ツールを作ったPUSH通知証明書作成ツールを作った
PUSH通知証明書作成ツールを作った
 
The return of Mobile5
The return of Mobile5The return of Mobile5
The return of Mobile5
 
嗚呼、素晴らしき哉 MonoTouch
嗚呼、素晴らしき哉 MonoTouch嗚呼、素晴らしき哉 MonoTouch
嗚呼、素晴らしき哉 MonoTouch
 
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッションC# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
 
リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみたリモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみた
 
PHPでスマホアプリにプッシュ通知する
PHPでスマホアプリにプッシュ通知するPHPでスマホアプリにプッシュ通知する
PHPでスマホアプリにプッシュ通知する
 
Pepper x IoT x Web 勉強会やってみた話と失敗談
Pepper x IoT x Web 勉強会やってみた話と失敗談Pepper x IoT x Web 勉強会やってみた話と失敗談
Pepper x IoT x Web 勉強会やってみた話と失敗談
 
F#で動かすraspberry pi+lego mindstorms
F#で動かすraspberry pi+lego mindstormsF#で動かすraspberry pi+lego mindstorms
F#で動かすraspberry pi+lego mindstorms
 
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことHTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なこと
 

IoT ChatOps #IoTLT