LoginSignup
5
6

More than 5 years have passed since last update.

amazon dashをIoTボタンとして使う(Windows VirtualBox)

Posted at

2016年12月、何をトチ狂ったか amazon dash ボタンを大人買いしてしまいました。

amazon_dash.JPG

さすがに年内にはなんとかしたい……ということで。

「やってみた」でメジャーなサイトが2つあったんですが、私のような中途半端な素人には苦労が多い感じでした。ので、まとめてみます。

用意するもの:
- Windows 10マシン
- VirtualBox
- その中にCentOS6のVM
- amazon dash
- 無線LAN環境

VMが反応するようにする

CentOS6のVMが反応するように、LANをブリッジアダプタにします。

dash-buttonモジュールをインストールする

npmをインストールしてみたら、バージョンが大変なことに。

[root@localhost ~]# cat /etc/redhat-release
CentOS release 6.8 (Final)
[root@localhost ~]# node --version
v0.10.46
[root@localhost ~]# npm --version
1.3.6

dash-buttonをインストールするには、npm6以上が必要なのに、なんだこのバージョンの差は……

# npm install -g n
# n latest
# npm update -g npm

http://qiita.com/zoeponta/items/a2e109304729ffa23d81 を参考に

[root@localhost ~]# gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-17)
 ↓
gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15)

バージョンを上げました。

yum install -y libpcap-devel

npm install --save dash-button

Chatworkでメッセージを投稿

requestパッケージをインストールします。

npm install request

const DashButton = require("dash-button");

const PHY_ADDR = "aa:bb:cc:dd:ee:ff";

let button = new DashButton(PHY_ADDR);

console.log("I'm listening'")
let i = 0;

function report() {
  console.log("["+(i++)+"] It works.");
}

function cw() {
  var request = require('request');
  var room_id = '**room_id**';
  var message = 'ボタンが押されました';

  var options = {
      url: 'https://api.chatwork.com/v1/rooms/'+room_id+'/messages',
      headers: {
          'X-ChatWorkToken': '**token**'
      },

      form: { body: message },
      json: true
  };
  request.post(options, function (error, response, body) {
    if (!error && response.statusCode == 200) {
       console.log(body);
    }else{
       console.log('error: '+ response.statusCode);
    }
  });
}

/*
  以下が発火するイベントの指定部。
*/
button.addListener(() => {
  cw();
});

上記をapp.jsで保存し、起動して待受状態にする。

node app.js

ボタンを押すと、しばらくしてChatworkにメッセージが表示される。

無事成功。

参考:
・テストスクリプトまでを参考にさせていただきました
http://qiita.com/takustaqu/items/8539b33780c9675c8657
・npm4以上に上がってから、さらに上げるときに参考にさせていただきました
http://parashuto.com/rriver/tools/updating-node-js-and-npm
・g++ 4.8 に上げるときに参考にさせていただきました
http://qiita.com/zoeponta/items/a2e109304729ffa23d81
・jsでChatworkメッセージの投稿をするのに参考にさせていただきました
https://liginc.co.jp/web/programming/node-js/123719

5
6
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
5
6