ykts.net

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回

定時まとめ通知

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