AmazonDushボタンを改造してできること- ラズパイやIoT製品との連携方法 |じょるブログ

じょるブログ

電子工作やプログラミング関連の情報を発信している技術系ブログ

電子工作 ラズベリーパイ

AmazonDushボタンを改造してできること- ラズパイやIoT製品との連携方法

投稿日:2019年4月1日 更新日:

AmazonDushボタンはひと手間加えるだけで、IoT製品等の遠隔ボタンとして使用することができます。これにより、スマートロックと連携させダッシュボタンで鍵を開閉したり、スマートリモコンのボタンとして使用することができます。

この記事では、アマゾンダッシュボタンとPythonを組み合わせることで、どんなことができるのかをその設定方法と共に紹介します。

  

できること

  • 任意のシェルコマンドを実行できる(例: python smartlock.py)
  • SSH接続をし、接続先のコンピュータで任意のコマンドを実行させられる
  • IFTTTと連携できる
  • POST、GETメソッドでリクエストできる

  

設定手順

  1. スマホでダッシュボタンの設定を行う
  2. ラズベリーパイに必要なパッケージをインストールする
  3. ダッシュボタンのMACアドレスを調べる
  4. 実行内容を設定ファイルに記載する
  5. プログラムを実行する

  

①スマホでダッシュボタンの設定を行う

パソコンでは設定できないので、スマホでAmazonアプリを起動します。

左上のハンバーガーメニュー(三本線アイコン)をタップします。

”アカウントサービス” をタップします。

下の方にスクロールし、”Dush端末の管理” をタップします。

”新しいDush Buttonをセットアップ” をタップします。

”同意して開始” をタップします。

Dush Buttonを長押しし、青く点滅したら”接続” をタップします。

黒い四角のところにWi-Fiのアクセスポイント名が表示されるので、表示されているアクセスポイントで問題がなければ”接続” をタップします。

接続が完了すると以下のような画面が表示されますが、何も選択せず右上の×印をタップして、閉じてください。

※ここで商品を選択してしまうとボタンを押すと商品が届くようになってしまうので注意してください。

最後に”セットアップを終了” をタップすればスマホでの設定は完了です。


   

②ラズベリーパイに必要なパッケージをインストールする

今回はPythonのamazon-dashというパッケージを使用します。

以下のコマンドで amazon-dash パッケージとMACアドレスを調べる際に必要となるtcpdumpをインストールします。

sudo pip3 install amazon-dash
sudo python3 -m amazon_dash.install
sudo apt-get install tcpdump

    

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

次に、MACアドレスを調べるために以下のコマンドを実行します。

sudo amazon-dash discovery

このコマンドを実行したら、先ほど設定したダッシュボタンを押してください。

すると以下のようにMACアドレスが表示されます。(Amazon Device)表示されているものがDushボタンのMACアドレスとなるので、その値を控えておきます。

$ sudo amazon-dash discovery
Welcome to Amazon-dash v1.3.2 using Python 3.5.3
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.
ab:cd:12:34:56:78
ab:cd:ef:12:34:56 (Amazon Device)

   

④実行内容を設定ファイルに記載する

amazon-dashをインストールした際に、/etc/amazon-dash.ymlに設定ファイルが作成されているのでこれを編集します。

まず、以下のコマンドでこの設定ファイルの権限を変更して編集できるようにします。

sudo chmod 777 /etc/amazon-dash.yml

次に、以下のコマンドで設定ファイルを編集します。

nano /etc/amazon-dash.yml

実行したい内容に応じて以下のように編集してください。

   

・任意のシェルコマンドを実行したい場合

# amazon-dash.yml
# ---------------
settings:
  delay: 10
devices:
  0C:47:C9:98:4A:12:
    name: test button  #適当な名前
    user: pi  #ユーザーネーム
    cmd: echo "ボタンが押されました" > ~/test.log 2>&1 #コマンド

また、以下のようにSSH接続をして任意のコマンドを実行することもできます。

# amazon-dash.yml
# ---------------
settings:
  delay: 10
devices:
  AC:63:BE:75:1B:6F:
    name: SSH button  #適当な名前
    cmd: echo "ボタンが押されました" > ~/test.log 2>&1 #コマンド
    ssh: 192.168.1.23:2222  #接続先のIPアドレスとポート番号

  

・IFTTTと連携する場合

# amazon-dash.yml
# ---------------
settings:
  delay: 10
devices:
  44:65:0D:75:A7:B2:
    name: Pompadour  #適当な名前
    ifttt: cdxxx-_gEJ3wdU04yyyzzz  #iftttのWebhook key
    event: pompadour_button  #Webhookのイベント名
    data: {"value1": "Pompadour button"}  #送信するjsonデータ

iftttのWebhook keyには、https://ifttt.com/services/maker_webhooks/settingsの値を入力してください。

  

・POST、GETメソッドでリクエストを実行する場合

# amazon-dash.yml
# ---------------
settings:
  delay: 10
devices:
  44:65:0D:75:A7:B2:
    name: smartlock button
    url: 'https://api.beebotte.com/v1/data/publish/SmartLock/raspi?token=xxxxxxxxxxx  #リクエスト先のURL
    method: post  #メソッド指定
    content-type: application/json  #content-type指定
    body: '{"data":[{"terminal":"Amazon Dush","device":"lock","action":"open"}]}'  #送信するデータ

    

編集が完了したら以下のコマンドでこの設定ファイルをルートディレクトリにコピーします。

※ 実行時はルートディレクトリの設定ファイルを探しに行くため、この操作を行わないとエラーが出ます。

sudo cp /etc/amazon-dash.yml ~/amazon-dash.yml

次に、以下のコマンドで設定ファイルの権限を変更します。

※この操作も実行しないとエラーとなります。

sudo chmod 600 ~/amazon-dash.yml

   

⑤プログラムを実行する

このプログラムを実行するには以下のコマンドを実行します。

sudo amazon-dash run

このコマンドを実行した後にダッシュボタンを押すと設定ファイルに記載した内容が実行されます。

例えば、設定ファイルの内容を以下のように設定した場合、

# amazon-dash.yml
# ---------------
settings:
  delay: 10
devices:
  0C:47:C9:98:4A:12:
    name: test button  #適当な名前
    user: pi  #ユーザーネーム
    cmd: echo "ボタンが押されました" > ~/test.log 2>&1 #コマンド

ルートディレクトリにtest.logというファイルが作成されます。それを

cat ~/test.log

などのコマンドで開き、

ボタンが押されました

と記載されていれば正しく動作しています。

※ダッシュボタンを押してからプログラムが実行されるまで5秒ほどかかります。

   

このプログラムをバックグラウンドで実行したい場合は以下のコマンドを実行してください。

sudo systemctl start amazon-dash
sudo systemctl enable amazon-dash
sudo systemctl status -l amazon-dash

を実行してactiveとなっていれば成功です。

※バックグラウンド実行した後に設定ファイルを変更した場合は

sudo systemctl restart amazon-dash

を実行して編集内容を反映させてください。

※また、バックグラウンド実行時には /etc/amazon-dash.yml にある設定ファイルを読み込んでいるようなので以下のコマンドで、ルートディレクトリにある設定ファイルを/etc/amazon-dash.yml にコピーし、権限を変更してください。

sudo cp ~/amazon-dash.yml /etc/amazon-dash.yml
sudo chmod 600 /etc/amazon-dash.yml

   

参考サイト

https://github.com/Nekmo/amazon-dash

google ads




google ads




-電子工作, ラズベリーパイ

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


関連記事

ラズパイでスマートロック作ってみた③ – AmazonDushボタンでラズパイのスマートロックを操作する

大学生の電子工作 ラズパイでスマートロック作ってみたの記事でスマートロックを作成し、現在も使用しているのですが、一つだけ問題点があります。 それは… スマホの充電が切れたら鍵が開けられなくなってしまう …

Google Apps Scriptを使用してスプレッドシート上の図形を押した際に、プログラムを実行させる

    大学生の電子工作 ラズパイでスマートロック作ってみた⑤の記事に関連して、スプレッドシート上に設置したボタンを押した際に Google Apps Scriptを用いたプログラムを実行することで、 …

ラズパイで SPI 7セグLED Module 8 Digital を使ってみた

半年ほど就活に専念するため、ブログの更新をしていませんでしたが、なんとか就活の方が落ち着いてきたのでまたブログを再開しようと思います。 就活中はブログは一時中断していましたが、電子工作の方は続けていた …

ESP-WROOM-32の基本的な使い方 初期設定や書込み方法、Lチカについて画像付きで徹底解説

  この記事ではESP-WROOM-32の基本的な使い方について解説します。 ESP-WROOM-32は低価格(1000円以下)で買うことができるWiFi/Bluetoothモジュールです。 上の画像 …

初めての大学生の電子工作 スマートリモコンを作ってみた

 タイトル通り、初めて電子工作をやってみました。電子工作をやったことがないという方にもこの記事を読めば作れるように、つまづいたとこなども丁寧に説明していきます。もしわからないことなどがございましたら気 …




関連記事