ポチッとするだけで荷物が届く魔法のボタン、アマゾンダッシュボタンはもう買いましたか?
ボタンを押すだけですぐ届く反面、子供が勝手に押したりと早速問題になっていたり、もはやお祭り状態。
子どもに「押すな!絶対に押すなよ!」と注意した結果がこれだ pic.twitter.com/FGI1SS9zCl
— Manami Taira (@mana_cat) 2016年12月6日
何か対策をできないかなとしばし考えて思いついた方法…それは「ボタン押したら怖いことが起こる」。
だから作ってみた。その名も「押したらパソコンが悲鳴をあげるアマゾンダッシュボタン」。
※音量注意
アマゾンダッシュボタンを押すとパソコンが悲鳴をあげるようにしてみた。お子様のイタズラ対策にどうぞ。 pic.twitter.com/ZAHRQHp18p
— ヤバいスミヒロ (@sumihiro) 2016年12月7日
これで子供もボタンを押さないようになるはず!
くれぐれも、パソコンを使っている人を驚かさないようにね。
以下、作り方の簡単な説明。
「押したらパソコンが悲鳴をあげるアマゾンダッシュボタン」を作るのに必要なもの
- Dash Button
- Mac
- node.js
- 再生する動画
- 今回使用した動画はこちらからダウンロードできます。
- 動画の制作には Ghost Tail さま、および びたちー素材館 さまの素材を使用しました。ご提供ありがとうございます。
- 今回使用した動画はこちらからダウンロードできます。
1. Dash Button のセットアップを途中で切り上げる
Amazon アプリで Dash Button のセットアップを行い、WiFiの設定をする。
ただし、注文する商品を選択する手順でセットアップを終える。
ここで商品を登録してしまうと、ボタンを押すたびに発注されてしまうようになるので注意。
なお、すでに Dash Button を登録している場合は、「端末の管理」から一旦削除し、もう一度セットアップを行う。
2. node-dash-button でボタンをコントロール
node-dash-button を使用するとボタンが押されたことを簡単に検知できる。
セットアップの手順は README に書いてある。
ざっくり紹介すると、次のような手順になる。
- npm で node-dash-button をインストール
- bin/findbutton を実行して、自分の Dash Button の ID を取得する
- 2で取得した ID を設定して、ボタンが押されたことを検知するコードを用意する
var dash_button = require('node-dash-button');
var dash = dash_button("XX:XX:XX:XX:XX:XX", null, null, 'all'); //2で取得したIDを設定する
dash.on("detected", function (){
console.log("omg found");
});
コードを実行しボタンを押し、 “omg found” が表示されればOK。
3. Apple Script で動画を再生させる
node-applescript を使用し、ボタンを押したら Apple Script で動画を再生する。
ざっくり紹介すると、次のような手順になる。
- npm で node-applescript をインストール
- 再生する動画を用意する
- 動画を再生する Apple Script を用意する
- ボタンが押されたタイミングで Apple Script を実行する
Apple Script は次のようになる。
script.txt
tell application "QuickTime Player"
open "/path/to/moviefile.mp4"
tell front document
present
set looping to true
play
end tell
end tell
“/path/to/moviefile.mp4” は用意した動画へのパスを指定する。
実行するコードは次のようになる。
var applescript = require('applescript');
var dash_button = require('node-dash-button');
var fs = require('fs');
var dash = dash_button("XX:XX:XX:XX:XX:XX", null, null, 'all'); //2で取得したIDを設定する
dash.on("detected", function (){
console.log("omg found");
// 別ファイルの Apple Script を読み込んで実行
fs.readFile('./script.txt', 'utf8', function (err, script) {
applescript.execString(script, function(err, rtn) {
if (err) {
// Error
console.log(err);
}
});
});
});
コードを実行しながらDash Button を押して動画が再生されれば完成。