百均のシャッターでLINE notifyに画像を送る
百均で売っている300円のリモートシャッターで遊ぶのが流行っていると聞いて私もやってみました。
シャッターボタンに関してはこちらの記事を参照。
単純に写真を撮るなら1行ぐらいで出来るけど、撮った画像をいちいち確認する方法がめんどくさいのでスマホのLINEに送れるようにした。
当初はLINE botにしようと思ったがサーバがパブリックで認証済みのhttpsを用意しなければならないという敷居の高さ。諦め掛けていたけど単純に個人のトークに画像を送りつけるだけならLINE notifyを使う方が理にかなっているということでこっちに。
notifyに画像を送るのはcurlで。
これを利用してnode.jsでラズパイカメラ画像を保存、それをLINEに送るスクリプトを書く。
shutter.js
var spawn = require('child_process').spawn;
var proc;
var args = ["-w", "640", "-h", "480","-o","画像の場所"]
proc = spawn('raspistill', args);
proc.stdout.on('data', function (data) {
console.log('stdout: ' + data);
});
proc.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});
proc.on('close', function (code) {
console.log('child process exited with code ' + code);
var exec = require('child_process').exec;
exec("curl -X POST -H 'Authorization: Bearer [トークン]' -F 'message=shutter' -F 'imageFile=@画像の場所' https://notify-api.line.me/api/notify",
function(){}
);
});
単体で動かしてシャッターが動作することが確認できたらbluebuttonの設定ファイル、KEYUP部分に記述する。
keyup=node /home/pi/linebot/shutter.js
keydown=echo DOWN
longup=echo LONG UP
longdown=echo LONG DOWN
bluebuttonを起動してシャッター。
bluebutton -d="Shutter3" -c ~/config/bluebutton
100均で売ってるシャッターでラズパイのカメラを動かした。それでもってLINEに画像を送るように。少し反応遅いけどw pic.twitter.com/0MtZtPVKHR
— bardothodol (@bardothodol) 2017年10月19日