おあそび ぷろぐらみんぐ 日記

プログラミング初心者のおあそびと勉強の記録です。

Amazon Dash ButtonでAmazon Dash Buttonを買えるようにしてみた。 詳細①〜入力編

前回の記事Amazon Dash ButtonAmazon Dash Buttonを買いました。

今回はその詳細編です。 

 

・使用した開発環境

 ・MAX OS Sierra 10.12.4

 ・JavaScript

 ・Wireshark 2.2.5

 ・nodejs 7.8.0

 ・Dash Button for Node

 ・nightmarejs 2.10.0

 

 

 

0.事前準備

まず、dash button自体の設定です。

アカウントサービスから、Dash端末の新しい端末をセットアップ。

f:id:beethovenmendelssohn:20170421211741p:plain

f:id:beethovenmendelssohn:20170421201313p:plain

f:id:beethovenmendelssohn:20170421201333p:plain

はい、こんな感じ。

ポイント!と書いたように、商品を選ばずにセットアップを終了してくだい。

(登録してしまうと、デバックする度に商品が届いてしまうので。。

 

f:id:beethovenmendelssohn:20170421201442p:plain

はい、これで完了です。 

 

1.Amazon Dash ButtonMACアドレスを調べる。

Wiresharkで見れます。

 ※Wireshark=ネットワークを流れるデータを確認できるツール

   ネットワーク周りを見るのに便利なので、

   入れてない方はこちらからWiresharkをダウンロードしましょう。

 

PCをDash Buttonを登録したのと同じWifiネットワークに繋いだ状態で、

キャプチャスタート。

そしてDash Buttonを押す!

 

キャプチャを止めて確認してみましょう。

f:id:beethovenmendelssohn:20170421202920p:plain

Dash Buttonがarpリクエストをブロードキャストしてるのがわかります。

で、ここからMAC addressがわかります。

 ※arpリクエスト=「この人と通信したいんだけど、このIPアドレス誰?」ってやつ。

 

簡単!

なお、、後述するDash Button for NodeでもMACアドレス拾えるっぽいですね。

 

2.Dash Buttonからの入力を受ける

なにはともあれ、JavaScriptって言語で書くと簡単にできるらしいのです。

で、JavaScript回りの今回使う環境を入れていきます。

まずnodejsを導入。

 ※nodejs=サーバーサイドのJavaScript

 

入れ終わったら、nodeとnpmのバージョン確認。

 ※npmは、nodejsを入れると一緒にインストールされるはず。

   npm =node package manager = ノードのパッケージを管理するやつ(まんま 

MacBook:$ node -v
v7.8.0
MacBook:$ npm -v
4.2.0

こんな感じで確認できればOK。

 

次にDash Button for Nodeを入れます。

 ※Dash Button for Node = Dash Buttonからの入力を簡単にNodeで処理できるやつ

入れ方、使い方はこちらを参考にさせていただきました。

qiita.com

 

で、こんな感じで書きます。

// ダッシュボタン入力確認
const DashButton = require("dash-button");

const PHY_ADDR = "xx:xx:xx:xx:xx:xx"; // ここに取得したMAC アドレス
let button = new DashButton(PHY_ADDR);
console.log("どれどれ");

button.addListener(() => {
    console.log("Dash ButtonからのARPリクエストが来たぞ!");
});

 

簡単ですね。

では試してみましょう。

まず作ったjsを起動。

MacBook:$ node testtest.js
どれどれ    //待機中

 

そして、Dash Buttonをぽちっ!

Dash ButtonからのARPリクエストが来たぞ!  //ボタンぽちっ!

 

入力を受け付けられました。

これでOK。

 

本日はここまで!

次回、この受け付けた入力をきっかけに、

Webブラウザを操作して、Dash Buttonを買うまでを書きますね。