Python
AmazonDashButton

Amazon Dash Buttonでサプリの服用管理をする

私は1日に1回サプリを服用しているのですが、最近飲んだかどうかの記憶があやふやな時があるのでプログラムで管理しようと思いました。またAmazon Dash Buttonネタですが、便利だからね、しょうがないね。


環境


  • Ubuntu 18.04 LTS

  • Python 3.6.4

  • pip 10.0.1

  • Node.js 8.11.2

  • npm 6.1.0

  • Dasher 1.4.1


前準備

Dasherをインストールしておいてください。

また、Amazon Dash Buttonのセットアップは過去に書いた記事を参考に行ってください。


プログラムの概要

Amazon Dash Buttonを押すとcsv形式のログファイルを読み込み、末尾の日付と今日の日付を比較します。異なれば今日の日付を書き込み、同じであればM/Bからビープ音を鳴らして警告します。


プログラムをセットアップ


1.プログラムを作業ディレクトリ内に配置する

GitHubにプログラムを用意したので、supplcounter.pyとsuppl_log.csvを作業ディレクトリ直下に、config.jsonをdasher/config/に配置してください。

supplcounter(作業ディレクトリ)

├─ supplcounter.py
└─ suppl_log.csv

dasher
├─ app.js
├─ config
| ├─ config.example.json
| ├─ config.json
| └─ org.dasher.plist
└─ 以下略


2.先程配置したプログラムに書き加える

supplcounter.pyに、suppl_log.csvの絶対パスを、config.jsonにAmazon Dash ButtonのMACアドレスsupplcounter.pyの絶対パスを書き加えてください。

この時にsupplcounter.pyに実行権限を付与するのを忘れないでください。


3.M/Bからビープ音が鳴るようにする

UbuntuだとM/Bからのビープ音がデフォルトで無効になっているので、設定ファイルを少し弄る必要があります。

まずは、

$ sudo apt install beep

で、beepをインストールしてください。

そして、

$ sudo vim /etc/modprobe.d/blacklist.conf

で、blacklist pcspkrという項目をコメントアウトしてください。

あとは、

$ sudo modprobe pcspkr

で、起動すると無事ビープ音が鳴るようになります。


実行してみる

dasher/内で

$ sudo npm run start

を実行し、Amazon Dash Buttonを押すと、

・実行前

Screenshot from 2018-06-17 00-06-29.png

・実行後

Screenshot from 2018-06-17 00-06-11.png

無事実行できました!


あとがき

今回は結構実用的なものが作れたかなと思います。ただ、常時ネットワークを監視するとなるとサーバーが必要になるので、Raspberry Piが欲しくなりますね...

今回は1日に1回という条件下だったので回数を記録するカラムは追加しませんでしたが、指定回数を超えると警告するようにしても面白そうですね。


参考

https://qiita.com/tortuepin/items/b4231c587d37bb707f2a

https://qiita.com/SquidSky/items/aa570c50e8f4c6d94130