AmazonダッシュボタンからIFTTTやPythonプログラムを呼ぶ方法

CHASUKEの記事をシェアする..

どうも、CHASUKEです。

皆様、Amazonダッシュボタンを知ってますか?

Amazonダッシュボタンとは、プッシュすると事前に登録した商品をスピーディーに購入することができるIoTボタンです。Amazonでたった500円で購入できます。さらに初回購入時に500円引なので実質無料で手に入るIoTデバイスなのです!

今回は、本来の使い方とは違い、Amazonダッシュボタンを押すことで、IFTTTトリガーを呼び出す方法、自作Pythonプログラムを実行する方法を紹介します。難しい知識は要らないので初心者におすすめです。

実現に必要なものは、AmazonダッシュボタンRaspberryPi(ラズベリーパイ)です。AmazonダッシュボタンはWi-Fiに接続可能ですが、別の機器で、どのプログラムまたはIFTTTサービスを起動するのかを指定する必要があります。その役割を「ラズベリーパイ」が担います。

avatar

CHASUKE

小型で低価格なラズパイZEROでもOKです♪

『Raspberry Pi Zero WH』スターターキットを購入してみた!!
どうも、Chasukeです。 なんだかんだで我が家に3台目のラズベリーパイ(ラズパイ)がやってきました。 今回は、通常モデルの...

それではやっていきましょう!

SPONSORED LINKS

【事前】ダッシュボタンの初期設定

どちらの方法を使うにも、事前にダッシュボタンの設定が必要です。

avatar

CHASUKE

ボタンを押しても商品を購入しないようにします

▼Amazonアプリを起動し、メニューから以下の操作をします。

▼ダッシュボタン長押しなど画面の指示に従うと、Wi-Fiのネットワーク接続が完了します。

▼ボタン押下で購入する製品を選ぶ画面で、キャンセルしましょう!

セットアップを終了します。

▼確認のために「Dash端末の管理」を開いて、画面右のようになっていればOKです。

これで、ダッシュボタンはWi-Fiに接続され、ボタン押下しても買い物はしません♪

ダッシュボタンのMACアドレスを調べる

MACアドレスが必要になるのでチェックしておきます。

手順は、以下の通りです。

  1. ダッシュボタンを6s長押し(※青に点灯)
  2. スマホでWi-Fiネットワーク名「Amazon ConfigureMe」に接続
  3. ブラウザで「http://192.168.0.1/」を検索

これで、以下のページが表示されます。

avatar

CHASUKE

ここでダッシュボタンの電池残量も確認できます!

ラズベリーパイの設定

続いて、ラズベリーパイの設定です。

ダッシュボタンを押したときに、IFTTTやプログラムを呼び出すのに必要となるPythonライブラリ「Nekmo/amazon-dashをインストールしていきます。(※ラズパイの基本設定はされている前提で話を進めていきます)

インストール環境を確認する

僕は以下の環境で動作させました。

// ラズパイのOSバージョン確認
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Raspbian
Description:	Raspbian GNU/Linux 8.0 (jessie)
Release:	8.0
Codename:	jessie
// Pythonのバージョン確認
$ python -V
Python 2.7.9
// pipのバージョン確認
$ python -m pip -V
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)

Pythonライブラリをインストールする

任意の場所で、pipコマンドを使ってインストールします。

$ sudo pip uninstall amazon-dash
$ sudo python -m amazon_dash.install

これだけでインストール完了です!

ライブラリでMACアドレスを調査する

事前にAmazonダッシュボタンに接続して、MACアドレスの調査方法を紹介しましたが、インストールしたライブラリの機能で調べることも可能です。

▼下記コマンドを実行し、ダッシュボタンを押下します。

$ sudo amazon-dash discovery
Welcome to Amazon-dash v1.3.1 using Python 2.7.9
The discovery command lists the devices that are connected in your network. Each device will only be listed once. After executing this command wait approximately 10 seconds before pressing the Amazon Dash button. After pressing the button, the Mac address of the button will immediately appear on the screen. Remember the address to be able to create the configuration file.
b8:27:dd:aa:bb:cc
ee:36:ff:ca:gg:pp
a1:b2:c3:d4:55:66 (Amazon Device)

ボタンを押すと、飛び交う通信機器のMACアドレスがいくつか表示されます。ここで欲しい情報は「(Amazon Device)」と付加されているものです。

avatar

CHASUKE

当たり前でだけど、事前に調べたMacアドレスと一緒だった

IFTTTトリガーを起動する方法

amazon-dashライブラリをインストールすると「/etc/amazon-dash.yml」というファイルが出来上がっています。ここに呼び出したいIFTTTトリガーを指定します。

今回は、TP-LinkフルカラーLED照明「KL130」の操作リモコンを作ります。

ブリッジ不要『TP-Link Kasa スマートLED』の使い方・他製品との比較
どうも、CHASUKEです。 TP-LinkのIoT電球『Kasa スマートLEDランプ』を購入してみました。使い方・他製品(Hue...

呼び出すIFTTTを設定する

まずは呼び出すためのIFTTTを設定します。

イベント名」を設定ファイルで使うので、メモっときましょう。

▼IFTTTアプリから[My Applets]-[Services]で「Webhooks」を検索し、設定画面を表示します。

IFTTT_Webhookキー」を設定ファイルで使うので、メモっときましょう。

IFTTTの使い方がわからない場合は、こちらを参考にどうぞ。

【スマートホーム初心者向け】自動化サービス「IFTTT」の使い方
どうも、CHASUKEです。 スマートホームを実現する上で、AIスピーカーやIoTガジェットなどと相性が良いWebサービスIFTTT...

設定ファイルを修正する

アクセス権限を変更して、設定ファイル「amazon-dash.yml」を編集しました。

$ sudo chmod 777 amazon-dash.yml

▼適当にFTPツール使って、手元で修正が簡単ですね。

avatar

CHASUKE

僕はMacなので「Yummy FTP」を使ってます

▼修正したファイルはこんな感じ。

$ cat amazon-dash.yml 
# amazon-dash.yml
# ---------------
settings:
  # On seconds. Minimum time that must pass between pulsations.
  delay: 10
devices:
  ## Example of how to execute a IFTTT Webhook event
  a1:b2:c3:d4:55:66:   →MACアドレス
    name: TPLinkLight  →任意
    ifttt: xxxxxxx  →IFTTT_Webhookキー
    event: xxxxxxx  →イベント名

ボタンで処理を動かす

準備ができたので「amazon-dash」を起動します。

▼その前に、設定ファイルのアクセス権限を修正しておきます。

$ sudo chmod 660 '/etc/amazon-dash.yml'
$ sudo chown root:root '/etc/amazon-dash.yml'

▼以下のコマンドで「amazon-dash」をバックグランドで実行状態にします。

//起動
$ sudo systemctl start amazon-dash
//ステータス確認
$ sudo systemctl status -l amazon-dash
● amazon-dash.service - Amazon Dash service
   Loaded: loaded (/usr/lib/systemd/system/amazon-dash.service; enabled)
   Active: active (running) since 土 2018-11-03 07:37:56 JST; 51min ago

avatar

CHASUKE

ちなみに「sudo systemctl stop amazon-dash」で停止できます

この状態でAmazonダッシュボタンを押せば、設定したIFTTTトリガーが起動します。

▼その様子がこちら。

avatar

CHASUKE

うまく動かない場合は、ステータス確認でエラー内容をチェック!

Pythonプログラムを起動する方法

同じ「amazon-dash」を使って、次はPythonプログラムを起動させます。設定ファイルを書き変えるだけでできます。

小型ロボット「SwitchBot(スイッチボット)」を動かしてみます。

呼び出すPythonプログラムを作成する

こちらは前回紹介した記事がありますので、そちらを参考にお願いします。

Switch Bot(スイッチボット)をラズパイ経由で遠隔操作する方法
どうも、CHASUKEです。 この記事では、Switch Bot(スイッチボット)をラズパイ経由で、外出先から遠隔操作する方法を紹介...

▼走行させるPythonスクリプトはこれです。

import binascii
from bluepy.btle import Peripheral

p = Peripheral("【SwichBotのMACアドレス】", "random")
hand_service = p.getServiceByUUID("cba20d00-224d-11e6-9fb8-0002a5d5c51b")
hand = hand_service.getCharacteristics("cba20002-224d-11e6-9fb8-0002a5d5c51b")[0]
hand.write(binascii.a2b_hex("570100"))
p.disconnect()

設定ファイルを修正する

こんな感じに修正しました。

# amazon-dash.yml
# ---------------
settings:
  # On seconds. Minimum time that must pass between pulsations.
  delay: 10
devices:
  ## Example of how to execute a system command
  a1:b2:c3:d4:55:66:   →MACアドレス
    name: switchbot  →任意
    user: pi →ラズパイユーザ名
    cmd: python /home/pi/App/IoT/swichbot/sp_switchbot.py →実行コマンド

▼バックグラウンドで実行している場合は、以下コマンドで再起動させましょう。

$ sudo systemctl restart amazon-dash

処理を動かす

先ほど同様に、実行状態にしてAmazonダッシュボタンを押す。

▼その様子がこちら。

avatar

CHASUKE

Python実行以外にも、システムコマンドがなんでも実行可能です!

最後に

実質0円のAmazonダッシュボタンをIoTボタンデバイスとして活用する方法の紹介しました。

SwitchBotだったり、TP-Linkスマート照明は、スマホアプリから遠隔操作できて便利です。

「だけど、スマホアプリを開くのも面倒だ!」

って人は、ダッシュボタンでリモコン作成を是非試してみてください。

今回使ったPythonライブラリ「Nekmo/amazon-dashは、設定が簡単なので初心者にもおすすめです。やってみると面白いですよ!

Amazonダッシュボタンの購入はプライム会員限定です。プライム特典も盛り沢山なので合わせてチェックしてみてください。

Amazonプライム会員で2年半経過。毎日使えるオススメ特典!!
どうも、Amazonプライム会員のCHASUKEです。 Amazonの会員制度には「無料」と「有料」の2種類があり、この有料会員のこ...

それではまた。