Pixela は、さまざまな数値情報を記録・可視化できる無料のWebサービスです。私が開発・運営しています。
今回、記事タイトルの内容を自分でもやってみて、比較的カンタンに実現できたので紹介します。これを使えば、何かの回数とか時間とかを Pixela に記録するのが、より手軽にできるようになると思います。
この記事では一例として、「自分の自動車の運転時間の計測」を題材に、iOS / Android 両OSの場合の実現方法をご紹介します。ちなみに iPhone は、「iPhone XR」「iPhone SE(第2世代)」「XS 以降の iPhone」で、ここで紹介する方法が利用可能です。Android スマートフォンであれば、現代のスマートフォンであればだいたいどれでも利用可能なのではないかと思います(NFCに対応していれば大丈夫だと思います)。
【OS共通】事前準備
NFCタグを購入する
NFCタグとは、こういう↓やつです。
今回僕はAmazonで購入しました。
Pixela にユーザー登録などをするためのツールをPCにインストールする
ユーザー登録などをするための方法はいくつかあるのですが、今回は以下のツールを使います(これも私が作ったものです)。WindowsとMac、両方に対応しています。以下のページを見ながら、お使いのPCにツールをインストールしてください。
Pixela にユーザー登録・グラフを作成しておく
この作業は上記のツールを使って実施します。今回は「自動車の運転時間の計測」なので、ユーザーIDを a-know-driving
、グラフIDを driving-time
としたいと思います。
まずはユーザー登録。以下のようなコマンドを、Windowsの場合は「コマンドプロンプト」から、Macの場合は「ターミナル」から、実行します。
pi users create --username a-know-driving --token thisissecret --agree-terms-of-service yes --not-minor yes
thisissecret
はいわゆるパスワード的なものなので、今後も何度となく利用します。適当に、かつ、あなたにしかわからない文字列に置き換えてください。
上記のコマンドを実行した結果、 {"message":"Success.","isSuccess":true}
といった表示がされていれば成功です。以降、パスワードをいちいち入力しなくても済むように、以下の作業を実施しておきましょう(環境変数へのパスワードの設定)。
- Windows の場合
- 以下のコマンドを実行します。
set PIXELA_USER_TOKEN=thisissecret
- Mac の場合
- 以下のコマンドを実行します。
export PIXELA_USER_TOKEN=thisissecret
続いてグラフの作成。これもコマンドを実行します。
pi graphs create -u a-know-driving -g driving-time -n "自動車の運転時間" -i "分" -t int -c shibafu -z "Asia/Tokyo"
これに対しても {"message":"Success.","isSuccess":true}
といった表示がされていればOKです。これで事前準備は完了です。
NFCタグで自動化・iPhone編
iPhone の場合の説明を見る
iPhone の場合、「ショートカット」という Apple 公式のアプリをインストールする必要があります。無料です。
インストールできたら、アプリのアイコンをタップして、以降のスクリーンショットに従って設定をおこなっていきます。
たしかここで、NFCタグの名前を設定する必要があったように思います。スクリーンショットを撮り忘れたためうろ覚えです。
するとURLを入力できるようになるので、https://pixe.la/v1/users/a-know-driving/graphs/driving-time/stopwatch
と入力します。a-know-driving
のところはあなたのユーザーIDを、 driving-time
のところはあなたのグラフIDを、それぞれ指定してください。
入力を終えると 6. の画面に戻るので、もう一度「アクションを追加」をタップします。
「App およびアクションを検索」の入力窓のところに 内容を取得
と入力すると検索ができます。検索結果のなかから「URLの内容を取得」というアクションを探してタップすると、以下のような表示になると思います。
方法
POST
を選択します
ヘッダ
新規ヘッダを追加
をタップしたあとに、キー
X-USER-TOKEN
と入力します
テキスト
- あなたのパスワード(例:
thisissecret
)を入力します
- あなたのパスワード(例:
iPhone の場合は以上で準備完了です。
NFCタグで自動化・Android編
Androidスマートフォンの場合の説明を見る
Androidの場合、「さまざまな操作を自動化するためのアプリ」と「NFCタグを読み込むアプリ」の2種類をインストールする必要があります。その選択肢はいくつかありそうなのですが、今回私は、前者のためのアプリとして Tasker を、後者のためのアプリとして Trigger を、それぞれ利用しました。Tasker については有料アプリなのでご注意ください。無料でもいいものがあるかもしれません。
Tasker側でタスクを作成する
Taskerを起動し、以下のスクリーンショットのように画面をタップしていきます。
ここまでの手順を踏むと、以下のような画面が表示されていると思います。
この画面で最低限、設定が必要なのは 方式
URL
ヘッダー
の3つだけです。以下のように入力します。
方式
POST
を選択します。
URL
https://pixe.la/v1/users/a-know-driving/graphs/driving-time/stopwatch
と入力します。a-know-driving
のところはあなたのユーザーIDを、driving-time
のところはあなたのグラフIDを、それぞれ指定してください。
ヘッダー
X-USER-TOKEN:thisissecret
と入力します。thisissecret
はあなたのパスワードに置き換えてください。
以上の入力ができたら、画面左上の ←
をタップすると、設定が保存され前の画面に戻ります。ちょっとわかりにくい画面です。
ここまでの操作が無事できたら、以下のような画面になっていると思います。
ひとつのHTTPリクエストアクションを持つタスクの作成が完了しました。
Tasker でプロファイルを作成する
続いて、上記で作成したタスクを設定したプロファイルを作成します。これも Tasker での操作になります。以下のスクリーンショットのように操作を進めてください。
これでプロファイルの作成も完了です。それと、Tasker から Pixela にアクセスすることになるので、Tasker の設定で以下の「外部アクセスを許可する」をオンにしておいてください。
Tasker側の作業は以上です。続いて Trigger 側での作業に移ります。
Trigger でタスクを作成する
これまでと同じように、以下のスクリーンショットのように操作を進めてください。
ここまで無事に進められると、以下のような画面表示になります。
Android スマートフォンがNFCタグの読み取りを待機している状態です。ここで、あらかじめ購入しておいたNFCタグを一枚切り取り、スマートフォンで読み取らせてください。また、スマートフォン本体の設定で以下のスクリーンショットのようにNFCが利用可能である必要があります。
だいたいのケースでは背面部分が読み取り可能な部分になっていると思いますが、スマートフォンのどのあたりで読み込めるのかは機種次第のため、最初のうちは聴診器を当てるようにその位置を探ることになると思います(笑)。ちなみに僕のスマートフォンの Pixel3 は、読み込み可能な位置は指紋認証ボタンの上あたりで、しかも微妙に判定がシビアでした。最初のうちは慣れが必要だと思います。それと、画面ロックを解除した状態でないと読み込めませんでした。これはもしかしたらなんらかの設定でロック解除が不要になるのかもしれません。
無事タグを読み取れると、おそらくスマートフォンが一瞬震え、以下のような画面になります。
これですべての設定は完了です。
ちなみに、「サイレントモードへのアクセス許可」など、いくつかの権限を Tasker や Trigger が要求してくるかもしれません。このあたりはご理解の上、お試しください。
【OS共通】NFCタグの読み取りによる Pixela への記録を試してみる
それでは、設定を終えたスマートフォンで計測を試してみましょう。今回は自動車の運転時間の記録ということで、NFCタグを車のダッシュボードに貼り付けてみました。
車に乗り込んだ際にタッチ。これで計測が開始されます。運転を終え、車を降りる際にもタッチ。ここで計測が終了され、その時間が記録されます。
タッチのタイミングでスマートフォン本体が一瞬震えるので、ちゃんと読み込めたことはわかるはず。
計測結果をみてみましょう。https://pixe.la/v1/users/a-know-driving/graphs/driving-time.html
をブラウザで開きます。
ちゃんと記録されていますね!
応用
いくつかある Pixela への数値の記録方法のうち、今回は stopwatch
という機能(API)を利用しました。
これは、1回目のタッチと2回目のタッチのあいだの時間を計算して記録してくれるものです。
これ以外にも、「タッチするたびに +1
or -1
or +0.01
or -0.01
する」みたいなことも可能です。
また、Pixela に約100円/月の支援をすると、以下のような詳細な内訳(何回計測したか・いつからいつまでの時間が計測されたのか)も確認することができるようになります。
Pixela の支援等については、以下のページを参照してください。
Patreon を使って Pixela を支援する/限定機能を使う · a-know/Pixela Wiki · GitHub
現在赤字運営状態なので、支援をしていただけると Pixela のサービス維持の観点で大変助かります。
ぜひお試しください
NFCタグをスマホで読み込み、Pixelaへの情報登録を自動化する事例を紹介しました。
今回は「自動車の運転時間」という例でしたが、例えば「スポーツジムの自分のロッカーに貼っておいて......」とか、「職場の自席にタグを設置して......」、など、アイデア次第で使い方は広がると思っています。ぜひお試しください!