SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
LINEボットからラズパ
イカメラで撮影
2019/12/17
第21回伊勢IT交流会
森ソフト 森純一
動機
• 家族で出かけるときに、ガスの火を消し忘れた
か気になることが時々ある
• 特に車で出かけた後
• 戻る気はないけど、心配は心配
• 契約しているガス会社に見守りサービスがない
2
Raspberry Pi とカメラで
外から写真撮ればいいん
じゃない?
3
実際のところは
• ペット用のカメラとか使えば簡単にできそう
• けど、Raspberry Piを使ってみたかったので、
その選択肢は忘れてください
4
求めるもの
• ガス台付近の写真が撮れればいい
• 動画はいらない
• ガスが点いているかどうかが確認できればいいだけ
• たまにしか使わない
• そもそも置く場所がないので、極力小さいもの
がいい
5
構成
6
役割
• Raspberry Pi Zero W+カメラ
• カメラサーバー(ラズパイの電源入れれば起動)
• Node.js
• S3
• 撮影指示置き場
• 画像置き場
• Lambda
• ボットサーバー
• Node.js
• LINE ボット
• UI
7
動作
1. LINE ボットに対して、『写真』とか『しゃし
ん』と送る
2. 撮影指示をJSONファイルにして、S3に保存
3. RaspberryPi上のカメラサーバーで一定周期で
S3をチェック
4. 撮影指示があれば、それを取得
5. カメラで撮影した画像をS3にアップロード
6. アプロードしたURLを元に、カメラサーバー
からLINEにメッセージを投げる
8
撮影指示のJSONファイル
こんな感じで、LINEでメッセージを送るための
replayTokenとラインIDを入れておく
{
"date":"2019-12-20T00:06:53.923+09:00",
"replyToken":“xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xx",
"userId":“yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy“
}
9
S3バケット
• 撮影指示保管用と画像ファイル保管用で分ける
• 撮影指示保管用は非公開
• 画像ファイル保管用は公開にし、CloudFront経
由でhttpsアクセスを可能とする
• LINEの画像メッセージでは、画像ファイルのURLが
httpsの必要があるため
10
カメラでの撮影
• Raspberry Piのコマンド(raspistill )を利用
• サムネイル画像の作成は、ImageMagickを利用
• 一連の処理をシェルスクリプトにして、node.js
から呼び出す
11
LINEメッセージの送信
• 可能であればリプライで返信する
• リプライが有効期限切れなどで失敗した場合は、
プッシュメッセージで再送する
12
動かしてみます
13
失敗したところ
• カメラサーバーのポーリング処理で非同期処理
なのを忘れて何度も写真が撮られたりした
• Raspberry Piの電源を入れたら、カメラサー
バーが起動して、昔の撮影指示が実行された
14
参考資料
• ブログ
https://blog.mori-
soft.com/entry/2019/11/23/231949
• GitHub
https://github.com/junichim/raspicamera
15

Weitere ähnliche Inhalte

Was ist angesagt?

いまどきのカメラで遊ぼう #kernelvm
いまどきのカメラで遊ぼう #kernelvmいまどきのカメラで遊ぼう #kernelvm
いまどきのカメラで遊ぼう #kernelvmTpdn Kim
 
僕はどうしてもLibsassが使いたかったんだ!
僕はどうしてもLibsassが使いたかったんだ!僕はどうしてもLibsassが使いたかったんだ!
僕はどうしてもLibsassが使いたかったんだ!Masato Noguchi
 
JRubyで作るapiサーバー
JRubyで作るapiサーバーJRubyで作るapiサーバー
JRubyで作るapiサーバーYamamoto Kazuhisa
 
ラズパイ×SlackAPIでアニマル画像Bot
ラズパイ×SlackAPIでアニマル画像Botラズパイ×SlackAPIでアニマル画像Bot
ラズパイ×SlackAPIでアニマル画像Botblack cat
 
Cssアニメーションとその制御
Cssアニメーションとその制御Cssアニメーションとその制御
Cssアニメーションとその制御Muyuu Fujita
 
RailsのRailから解放される始めの一歩
RailsのRailから解放される始めの一歩RailsのRailから解放される始めの一歩
RailsのRailから解放される始めの一歩Masato Noguchi
 
なるほど分かった!平成最後のApp Serviceハンズオン
なるほど分かった!平成最後のApp Serviceハンズオンなるほど分かった!平成最後のApp Serviceハンズオン
なるほど分かった!平成最後のApp ServiceハンズオンTakayuki Fuwa
 
さわってみよう Couchbase Lite
さわってみよう Couchbase Liteさわってみよう Couchbase Lite
さわってみよう Couchbase Litessd kfk
 
Jxugc#22 lt古川
Jxugc#22 lt古川Jxugc#22 lt古川
Jxugc#22 lt古川F. Syam
 
Jawsug北九州第4回勉強会
Jawsug北九州第4回勉強会Jawsug北九州第4回勉強会
Jawsug北九州第4回勉強会Yutaka Fujisaki
 
20160727 jaws ug-kobe_short_speak_alexa
20160727 jaws ug-kobe_short_speak_alexa20160727 jaws ug-kobe_short_speak_alexa
20160727 jaws ug-kobe_short_speak_alexaDaiki Mori
 
Sprocketsを捨てたい
Sprocketsを捨てたいSprocketsを捨てたい
Sprocketsを捨てたいMasato Noguchi
 
Trident lt vagrant-hands-on
Trident lt vagrant-hands-onTrident lt vagrant-hands-on
Trident lt vagrant-hands-onRyouta Morita
 

Was ist angesagt? (15)

いまどきのカメラで遊ぼう #kernelvm
いまどきのカメラで遊ぼう #kernelvmいまどきのカメラで遊ぼう #kernelvm
いまどきのカメラで遊ぼう #kernelvm
 
僕はどうしてもLibsassが使いたかったんだ!
僕はどうしてもLibsassが使いたかったんだ!僕はどうしてもLibsassが使いたかったんだ!
僕はどうしてもLibsassが使いたかったんだ!
 
JRubyで作るapiサーバー
JRubyで作るapiサーバーJRubyで作るapiサーバー
JRubyで作るapiサーバー
 
ラズパイ×SlackAPIでアニマル画像Bot
ラズパイ×SlackAPIでアニマル画像Botラズパイ×SlackAPIでアニマル画像Bot
ラズパイ×SlackAPIでアニマル画像Bot
 
Cssアニメーションとその制御
Cssアニメーションとその制御Cssアニメーションとその制御
Cssアニメーションとその制御
 
RailsのRailから解放される始めの一歩
RailsのRailから解放される始めの一歩RailsのRailから解放される始めの一歩
RailsのRailから解放される始めの一歩
 
なるほど分かった!平成最後のApp Serviceハンズオン
なるほど分かった!平成最後のApp Serviceハンズオンなるほど分かった!平成最後のApp Serviceハンズオン
なるほど分かった!平成最後のApp Serviceハンズオン
 
さわってみよう Couchbase Lite
さわってみよう Couchbase Liteさわってみよう Couchbase Lite
さわってみよう Couchbase Lite
 
Jxugc#22 lt古川
Jxugc#22 lt古川Jxugc#22 lt古川
Jxugc#22 lt古川
 
Jawsug北九州第4回勉強会
Jawsug北九州第4回勉強会Jawsug北九州第4回勉強会
Jawsug北九州第4回勉強会
 
Future
 Future Future
Future
 
20160727 jaws ug-kobe_short_speak_alexa
20160727 jaws ug-kobe_short_speak_alexa20160727 jaws ug-kobe_short_speak_alexa
20160727 jaws ug-kobe_short_speak_alexa
 
Sprocketsを捨てたい
Sprocketsを捨てたいSprocketsを捨てたい
Sprocketsを捨てたい
 
Trident lt vagrant-hands-on
Trident lt vagrant-hands-onTrident lt vagrant-hands-on
Trident lt vagrant-hands-on
 
Vi Boot Camp #1
Vi Boot Camp #1Vi Boot Camp #1
Vi Boot Camp #1
 

201912 LINEボットからラズパイカメラで撮影