LoginSignup
2
4

More than 5 years have passed since last update.

Raspberry Pi3 on Ubuntu Mate 16.04 で Amazon Dash を ただのIoTボタンとして使う

Last updated at Posted at 2017-01-02

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

package.json

{
  "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で、

/etc/rc.local
+hciconfig hci0 up

しています。。。

2
4
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
2
4