SlideShare a Scribd company logo
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

More Related Content

PDF
もちょブログ解析入門
PDF
JAWS-UG初心者支部第4回 Simple Front 53
PDF
Kyakusaki.rb
PDF
Seika01
PDF
mod_perlで動くアプリをどう置くか #hachiojipm
PDF
PDF
広島で Ruby が流行らないのはどう考えても俺たちが悪い
PDF
github star note
もちょブログ解析入門
JAWS-UG初心者支部第4回 Simple Front 53
Kyakusaki.rb
Seika01
mod_perlで動くアプリをどう置くか #hachiojipm
広島で Ruby が流行らないのはどう考えても俺たちが悪い
github star note

What's hot (15)

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

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