IoT · プロダクト
Cat Feed Tracker
猫の給餌棚にリードスイッチを取り付け、棚を開けるだけで給餌を自動記録。 LINE で家族全員に通知・照会・設定変更まで完結する家庭向け IoT システム。
Pico WMicroPythonFastAPIPostgreSQLLINE APINginxCloudflareNixOS
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