LoginSignup
27
12

More than 5 years have passed since last update.

Amazon Dash ButtonでGet Wild退勤する

Last updated at Posted at 2016-12-10

記事タイトルがオチ

こんにちは、さのかずや @sanokazuya0306 と申します。

岐阜県大垣市にある情報科学芸術大学院大学(IAMAS)という精神と時の部屋で日々鍛錬を積んでいます。
先日はOgaki Mini Maker Faireの夜に、地下駐車場でGet Wildから始まるDJをしたりしました。Qiita勢のみなさんが盛り上がってくれてよかったです。
【宣伝】卒展きてね→IAMAS 2017

Amazon Dashボタンハッキング

MacOSX&Node.jsでAmazon Dash Buttonを制御する を参考にさせて頂きました。
すぐできました。

WiFiアクセスポイント設定

Amazon Dash ButtonをただのIoTボタンとして使う をご参照ください
Amazonアプリをスマホにインストール

ボタン長押しでスマホとボタンをペアリング

ボタンに紐付けるWiFiの設定

ボタンに紐付ける商品選択画面 ←ここでやめる!

Tips

  • テザリングできるスマホと、そのスマホにつなげてAmazonアプリが使えるスマホが(つまり、スマホが2台)あれば、テザリングでもWiFi設定でボタンに紐付けできます
  • この手順通りにやれば何度でもボタンのWiFi設定は後でし直せます
  • (当然)連打を想定していないと思われるので、反応速度にはラグが出ます

受信→動作側のあれこれ

Node.jsをインストール

とかをご参照ください

node-dash-buttonを導入

スムーズにいじれた

$ mkdir getWild // 任意のディレクトリを作成
$ cd getWild
$ npm init
$ npm install node-dash-button --save

simplayerを導入

音再生用のnodeモジュール
Nativeモジュール非依存な音声再生nodeモジュールを作った
多謝

$ npm install simplayer

ボタンのMACアドレスを取得

$ cd node_modules/node-dash-button
$ sudo node bin/findbutton

スクリーンショット 2016-12-10 17.51.51.png
findbuttonを走らせてボタンを押すと、こんな感じで出てくる。unknownっていうやつがボタンのMACアドレス。

getWild.js

先人のコードを大いに参照させて頂いております

getWild.js

const dash_button = require('node-dash-button');
const execSync = require('child_process').execSync;
// Dashボタンのアドレス(コピーしたMACアドレスをここに入力)
const dash = dash_button('34:d2:70:3e:**:**', null, null, 'all');

var simplayer = require('simplayer');

// ボタンをクリックしたときのアクション
// クリックしてから数秒遅延します。
dash.on('detected', () => {

  console.log("アスファルト タイヤを切りつけながら 暗闇走り抜ける");
  var getWildandTough = simplayer('getwild.mp3', function (error) {
    if (error) throw error;
    console.log('ひとりでは 解けない愛のパズルを抱いて');
  });

});

実行

$ sudo node getWild.js

華麗に退勤

Amazon Dash ButtonでGet Wild退勤する pic.twitter.com/PhCsXQmtTK

— さのかずや (@sanokazuya0306) 2016年12月10日

退勤tips

  • 連打すると重複して再生されていきます
  • control+Cでキャンセルできます
  • 歌詞は「タイヤを切りつけながら」だった

参考

修論

書かなきゃ

27
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
12