LoginSignup
1
2

More than 5 years have passed since last update.

TodoistのカルマをRaspberry Pi で可視化する

Posted at

はじめに

2019年が始まって早くも1ヶ月が過ぎました。
新年を迎えて、新しく目標を設定する人が多いと思います。

現代のビジネスパーソンなら、誰もがやっているであろうタスク管理アプリも、昨今は色々ありますが私のオススメはTodoistです。

Todoistは、最高のToDoリスト&タスク管理アプリです。

シンプルなUIで無駄がなく簡単に操作でき、目標を定量的に計測することができます。また、面白いのがカルマという生産性を記録して視覚化するパワフルな機能があり、無料でも効果的なタスク管理ができます。

本記事は、タスク管理アプリであるTodoistのカルマを、Raspberry Piで可視化します!

写真 2019-02-17 23 06 17.jpg

全体概要

I2C接続した液晶キャラクタデバイスに、TodoistのAPIで取得したカルマを表示させます。
液晶キャラクタデバイスは、Xiamen Zettler Electronics社製の「ACM1602NI」を使用します。「ACM1602NI」は、1,300円程度で購入できます。

todoist.png

仕組みは簡単で、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()

プログラムを実行すると、現在のカルマを表示できます。
写真 2019-02-17 23 06 47.jpg

おわりに

液晶キャラクタデバイスを購入して、vcgencmdコマンドでCPUの温度を表示して遊んでいましたが、他に何かないかなと思って、Todoistのカルマを表示させてみました。

しかし、液晶キャラクタデバイスの使い道がいまいちなのと、TodoistのAPIはもっと他に使えそうな気がするので、また今度とします。

参考

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2