IoT · プロダクト
Cat Feed Tracker
猫の給餌棚にリードスイッチを取り付け、棚を開けるだけで給餌を自動記録。 LINE で家族全員に通知・照会・設定変更まで完結する家庭向け IoT システム。
Pico W MicroPython FastAPI PostgreSQL LINE API NixOS
Demo
ボタンをタップすると、LINE に届くメッセージのプレビューを確認できます。
9:41 ●●●
🐱
ネコ給餌
家族グループ
今日 12:00
🤖
🐱 給餌まとめ(〜12:00) 08:32 10:15 +1時間43分 ───────── 本日計2回
今日の記録
当日0時JST〜現在までの全給餌ログを一覧表示。 時刻と直前給餌からの経過時間を並べて表示します。
週・月平均
直近4週の週別集計と直近3ヶ月の月別平均を返します。 給餌ペースの変化を手軽に把握できます。
設定変更
通知ON/OFFや1日の上限回数をLINEから直接変更できます。 会話形式なのでアプリ不要です。
定時まとめ通知
12:00・18:00 JSTに自動でまとめを送信。時刻と経過時間を表示し、 スロットをまたぐ場合は区切り線で整理されます。
⚡ 棚を開けるだけで自動記録。スマホ操作ゼロ。
🔁 デバウンス200ms・クールダウン100sをエッジ側で処理。
⚠️ 上限超過アラートは当日1回のみ発火。
Architecture
[Pico W]
Reed switch on GP14 (PULL_UP)
CLOSED→OPEN + debounce 200ms + cooldown 100s
→ HTTPS POST /api/events (Bearer token)
[Hetzner VPS — NixOS / systemd]
Nginx (reverse proxy)
FastAPI :8001
├── POST /api/events # event ingestion
├── POST /api/webhook/line # LINE webhook
└── GET /healthz
PostgreSQL 16
[LINE Messaging API]
APScheduler: 12:00 / 18:00 JST
Rich menu: 今日の記録 / 平均 / 設定 Stack
Edge
Raspberry Pi Pico W
MicroPython
Server
FastAPI + APScheduler
Python 3.11
DB
PostgreSQL 16
VPS (Hetzner)
Notify
LINE Messaging API
Webhook + Push
Infra
NixOS / systemd
Nginx + Cloudflare
Protocol
HTTPS Bearer token
Edge → Server