Overview
ちまたで大流行のAmazon Dashボタンを、ただのボタンとして使う、を、Raspberry Pi3 on Ubuntu Mate 16.04 LTS上で行う、です。
おなじみのdash-buttonを使いますが、jsをいじらずに、mac addressや何をするかを記述できるようにnodejsを書いておきましたので、自己責任で、お使いください^^; (Apache-2.0にしてあります)
nodejsの更新
Ubuntuのnodejsは古いので更新が必要です。
$ sudo apt-get install -y nodejs npm
$ sudo npm cache clean
$ sudo npm install n -g
$ sudo n stable
$ sudo ln -sf /usr/local/bin/node /usr/bin/node
optionalですが、、、
$ sudo apt-get purge -y nodejs npm
して、nodejsと打たないと動かない(普通はnodeだけ)古いのは消してしまっても良いかも。
dash-buttonのinstall
https://www.npmjs.com/package/dash-button
の通りです。
(source codeは、 https://github.com/ide/dash-button で公開されていますね)
$ mkdir ~/work/dash
$ cd ~/work/dash
$ npm init
$ sudo apt-get install libpcap-dev
$ npm install --save dash-button
特に、libpcap-devは、raspberry pi + ubuntu mateでは、必須のようです。
(私は、これでちょっとハマりました。)
(そうしないと、556 error Failed at the pcap@2.0.0 install script 'node-gyp rebuild'.
と出て止まってしまいます。
setup
{
"scripts": {
"scan": "dash-button scan"
}
}
上のように編集します。
$ sudo npm run scan
を実行して、その間に、Amazon Dash Buttonをsetupします。
!注意! 商品の選択をしてはいけません !注意!
Amazon Dash Buttonのアプリを使ったsetupのシーケンスは、tokio-takadaさんの記事 が詳しいです。
なお、
$ sudo npm run scan -- --interface en1
のようにして、en1 or wlan0のようにinterfaceを直接指定することができるそうです。
dash buttonが押されたときに、外部コマンドを実行するscriptを作る
https://github.com/hidenorly/DashBtnLauncher
におきました。
$ git clone https://github.com/hidenorly/DashBtnLauncher.git
$ cd DashBtnLauncher
$ sudo npm install dash-button
して、途中までsetupしたAmazon Dash Buttonがあれば、
$ sudo node DashBtnLauncher.js -b XX:XX:XX:XX:XX:XX -e echo hoge
みたいにすると、mac addressを指定でき、また、任意のコマンドを指定できます。
というわけで、dash-buttonのtutorialにありがちなjsをいじって、、、とかは不要です。
Happy hacking!
追記
apt-get dist-upgrade
したら、hci0がdownのままになってしまいました。
とりあえず、workaroundで、
+hciconfig hci0 up
しています。。。