はじめに
2019年が始まって早くも1ヶ月が過ぎました。
新年を迎えて、新しく目標を設定する人が多いと思います。
現代のビジネスパーソンなら、誰もがやっているであろうタスク管理アプリも、昨今は色々ありますが私のオススメはTodoistです。
Todoistは、最高のToDoリスト&タスク管理アプリです。
シンプルなUIで無駄がなく簡単に操作でき、目標を定量的に計測することができます。また、面白いのがカルマという生産性を記録して視覚化するパワフルな機能があり、無料でも効果的なタスク管理ができます。
本記事は、タスク管理アプリであるTodoistのカルマを、Raspberry Piで可視化します!
全体概要
I2C接続した液晶キャラクタデバイスに、TodoistのAPIで取得したカルマを表示させます。
液晶キャラクタデバイスは、Xiamen Zettler Electronics社製の「ACM1602NI」を使用します。「ACM1602NI」は、1,300円程度で購入できます。
仕組みは簡単で、Todoist Sync APIを使用して、カルマを取得します。
なお、TodoistのAPIを利用するためのライブラリは、公式のpipで提供されているので、以下のコマンドよりインストールできます。
pip3 install todoist-python
また、TodoistのAPI トークンは、TodoistのWeb画面より、発行できます。
構成
必要な部品は以下になります。
- 部品一覧
部品 | 数量 |
---|---|
液晶キャラクタデバイス「ACM1602NI」 | 1個 |
半固定抵抗(10kΩ) | 1個 |
抵抗(100Ω) | 1個 |
ジャンパー線(オス-メス) | 5本 |
ジャンパー線(オス-オス) | 6本 |
プログラム
- kalma_disp.py
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import smbus
import time
from acm1602 import acm1602
import sys
sys.path.append('/home/pi/.local/lib/python3.5/site-packages/')
import todoist
from todoist.api import TodoistAPI
class Karma:
def __init__(self):
api = TodoistAPI('<API トークン>')
api.sync()
status = api.completed.get_stats()
karma = str(status["karma"])
self.karma = karma
# インスタンス生成
karma_ins = Karma()
# デバッグ用
#print(karma_ins.karma)
lcd = acm1602(1, 0x50, 4)
def setup():
lcd.move_home()
lcd.set_cursol(0)
lcd.set_blink(0)
lcd.backlight(1)
def display():
value = karma_ins.karma
value = value.replace(".0", "")
lcd.write("karma:" + value)
lcd.move(0x00, 0x01)
lcd.write(time.strftime("%H:%M"))
setup()
display()
おわりに
液晶キャラクタデバイスを購入して、vcgencmdコマンドでCPUの温度を表示して遊んでいましたが、他に何かないかなと思って、Todoistのカルマを表示させてみました。
しかし、液晶キャラクタデバイスの使い道がいまいちなのと、TodoistのAPIはもっと他に使えそうな気がするので、また今度とします。