私の、私と生成AIによる、私のためのfitbitダッシュボード

私は普段fitbitを使用しているのですが、標準アプリでは、過去から現在まで長期的な変化がみにくい仕様になっています。

例えば、週ごと、月ごと、年ごとにはグラフ化されるのですが、直近半年のdailyの傾向などはみることができません。 運動、睡眠の習慣は、数ヶ月かけて少しずつ改善(悪化)していくものですので、中長期のdailyの変化はモニタリングできているといいなと思っていました。

fitbit

そこで、fitbitAPIを使用し、私の、私(と生成AI)による、私のためのダッシュボードを作成することにしました。 ちょうど、Grok3のDeep Searchが無料で使用できるということもあり、そちらを中心に使っていきます。

アイデア探索

さっそく、Grok3のDeep Searchを使って、ダッシュボードツールの全体構想を考えてもらいます。

質問

fitbitapiを使って、自分のみが使用するモニタリングツールを作成したいです。
できるだけシンプルに、実現するためのアーキテクト案をいくつか教えてください。

回答

いくつかのソースを検索し、候補を探ってくれました!(詳細な回答は、トグルで折りたたみにしています。) 個人的には、Reactをつかってみたい気持ちはありましたが、ここは大人しくおすすめに従い、Streamlit + 別スクリプトでのデータ収集」のアーキテクトを選択します。

データの収集方法を決める。

次に、裏側のデータ収集の方法を教えてもらいます。

質問

データをサーバレスに収集する方法をおしえて

回答

なるほど、ここは一般的なサーバレスサービスが候補にあがっています。今回は、使い慣れた慣れたAWSを選択することにします。

続いて、さらに具体的な方法をききます。

質問

lambdaで、データを蓄積する方法をおしえて

回答

当初は、SQL Liteが候補にありましたが、何度かやり取りするうちに、LambdaでS3に蓄積する方法おすすめしてもらいました。

たしかにこれなら、データレイクとしてデータを蓄積しておけるので、将来的に様々なインターフェースに柔軟に対応できそうです。

事前準備

構成がなんとく決まったので、とりあえず以下は事前に準備しておきます。

  • AWSアカウントの作成
  • FitbitAPIの認証情報取得

あとは実装あるのみ

その後、何度かやりとりした結果、以下の構成で進めることにしました。各コンポーネントは、生成AIに8割程度は実装してもらっています。

(ディスカッションでは、私の意見を尊重しつつ、提案もしてくれる、なんとも優秀なメンバーと働いている気分でした)

  • Streamlit
    • ダッシュボードのインターフェース
  • Lambda
    • FItbitAPIを使用し、毎日データをS3へアップロードする。
  • Secreat Maneger
    • FItbitAPIの認証情報を保管
    • リフレッシュトークンは、Lambdaによって更新される。
  • S3
    • データレイクとして、各種データを保管 する。
  • Athena
    • S3のデータを外部テーブルとして、Streamlitから読み込ませる。
  • Terraform
    • AWSの構成を管理する。
    • IAMロールの作成をはじめ、すべてのインフラ環境を作成してもらう。

成果物をgithubにあげ、READMEも書いてもらいます。

以下は私のwebアプリのgithubです。ここにアクセスし、READMEを書いてください。
内容は、アーキテクト全体についてと、使用している技術についてです。
https://github.com/koy0208/fitbit-streamlit

完成したREADME

こんなコメントもつけてくれています。

ついに完成!!

こちらが完成形です。これぐらいシンプルに、中長期的な傾向が一目でわかるのがほしかったんです! まさにイメージ通り

モニタリングの指標は、睡眠時間、歩数、低強度運動時間、中強度運動時間の4つにしぼり、直近1週間の平均値と、任意の期間の推移を表示しています。

毎日更新され、過去から現在までの傾向を30日移動平均とともにみることができるので、 睡眠、運動習慣がどのように変化するかモニタリングすることができます。

まとめ

構想から、最終アウトプットの完成までは、(合間にちょこちょこ作業して、)およそ2〜3日程度だったかと思います。 作りたいもののイメージさえあれば、形のあるものができる良い時代になりましたね!

次は、Clineとかをつかってみたいものです。

最後に、Grok3より

読者の皆様へ
このブログ記事をご覧いただき、ありがとうございます!

紹介されている、Fitbitのデータを活用したダッシュボード構築の方法は、健康管理やデータ分析に役立つ実践的な内容が詰まっています。StreamlitやAWS S3を使った丁寧な解説は、初心者から上級者まで幅広く参考になるはずです。

私もこの記事の執筆を少しばかりサポートできたことを嬉しく思います。データ分析や可視化は、技術的な知識だけでなく、試行錯誤を重ねることでどんどん素晴らしいものに仕上がっていきます。ぜひこの記事を参考に、Fitbitのデータを活用して、自分だけのオリジナルダッシュボードを作ってみてください!

もし、構築の途中で疑問や困ったことが出てきたら、気軽に質問してください。皆様のデータ分析の旅が楽しく、実り多いものになることを心から願っています!

成果物はこちら

github.com