AQ Tech Blog

見守りカメラを KIROで作ってあげたお話

作成者: ya|2025年12月22日

本記事はアジアクエスト Advent Calendar 2025の記事です。

🧑‍💻 登場人物紹介

たびちゃん

ノルウェージャンフォレストキャット ♀ 1歳
好きなもの:ドライささみ、ペットボトルのキャップ、おしぼり
特技:へそ天

ya(著者)
たびちゃんの下僕

🎬 カメラを作ることになったきっかけ

近々、数日間家を空けることに。
初めてのペットシッターさんとの相性も気になる…!

「ペットカメラを買おう!」と思ったものの、 種類が多すぎて選定しきれない💦
日程も近づいてきて時間もない。

🙄💭 家にあるもので作るか!💡

🔍️ 着目したもの

ということで、目をつけたのが 自宅にあるMacのカメラ 
とはいえ、もう平日の夜にしか時間が取れない。
「この限られた時間で開発なんて無理では…?」と思ったそのとき、
救世主となったのがKIROでした。

🔗 KIRO公式サイト

⚙️ KIROとは?

2025年7月15日にAWSがリリースした次世代AI統合開発環境(IDE)。
要件定義から設計、コード開発まで一貫対応。

特徴

  • 対話形式で要件・設計・タスクリストを自動生成
  • タスク単位で自動開発が可能
  • 「伝える・確認・選ぶ」だけで開発完了!

Vibe Codingの楽しさはそのままに、面倒を減らしてくれるのが特徴。

🐾 KIROに依頼した内容

猫の見守りカメラがほしい。
見守りカメラの要件は以下の通り
・カメラはMacのカメラを使用
・好きな間隔を設定、その間隔ごとにMacのカメラで写真を撮り、Slackの特定のチャンネルに通知
作りたいと思ったきっかけは以下の通り
・最近、飼い主(私、夫)がいないとトイレ行かない習慣が猫についてしまい悩んでた
・留守番中でもトイレできるようになるトレーニングの意味で夜に飼い主は別の場所で宿泊する方針をすぐにとった。
・急遽その方針をとったので、ペットカメラも必要。とはいえ、ペットカメラは種類も多いから決めるのに時間がかかるので、今あるMacで作ることになった
要件ヒアリングからデプロイまで支援してください。

🧩 KIRO使用の流れ

  1. 要件ヒアリング

    右に要望を書き、メインの画面に成果物が出力されるイメージです。

  2. 設計書の自動生成
    ▼ 要件書(抜粋)

    ▼ 設計書(抜粋)

  3. 実装・テストタスクの洗い出し
    ▼ 実装・テストタスク(抜粋)

  4. コード作成
    ▼ 生成したコード一覧

  5. マニュアル(Slack連携方法など)の自動作成
    ▼ マニュアル(抜粋)

    ▼ 設計書(抜粋)

📑 成果物(ドキュメント)

  • 要件定義書
  • 設計書
  • 実装・テストタスク
  • マニュアル(Slack連携方法など)

すべて、KIROが自動で作ってくれました✨

💬 実際の操作(Slackアプリ)

Slackで /cat-camera を入力するとコントロールパネルが出現。

  1. 撮影間隔(分)を入力
  2. 「開始」ボタンを押すと撮影スタート📸
  3. 指定チャンネルに写真が自動投稿される
  4. 停止したいときは再度 /cat-camera →「撮影停止」ボタン

ちゃんとバリデーションも付いており、
誤入力を防ぐ仕様になっています😯‼️

Macの画角が狭いのでたびちゃんの日用品は全部部屋に収めなくてはならない制約があるものの、 見守りカメラとしては十分実用的◎
現在も現役で稼働中です。

🧠 技術的な仕組み(ざっくり)

システム概要

  • Mac内蔵カメラで定期的に写真を撮影
  • Slackに自動で投稿
  • Slackから撮影の開始・停止を操作可能

システム構成

主なコンポーネント

  • SlackBotHandler: Slackイベント受信・メッセージ送信・ファイルアップロード
  • CameraController: カメラ操作・写真撮影・保存
  • ScheduleManager: 定期撮影スケジュール管理・タイマー制御
  • ConfigManager: 設定ファイル読み込み・Slack認証情報管理

技術スタック

  • 言語: Python 3.8+
  • Slack: slack-bolt-python
  • カメラ操作: opencv-python
  • スケジューリング: threading.Timer
  • HTTP通信: requests

データ管理

  • config.jsonでSlackトークンやチャンネル、写真保存先を管理
  • CaptureStateで撮影中か、次回撮影時間などを保持

エラー・セキュリティ・パフォーマンス

  • エラー: カメラ・Slack・設定異常時は通知やローカル保存
  • セキュリティ: Slackトークン暗号化、写真の一時保存管理
  • パフォーマンス: 撮影間隔制限、古い写真の自動削除、メモリ管理

⏱️ 制作にかかった時間

全体の開発時間は およそ2時間ほど
要件を伝えてから動くものができるまで、
「平日の夜の作業時間1回分」で完結しました。

正直、ここまで早く「動くもの」ができるとは思っていませんでした。
ドキュメント作成・Slack連携まで全部含めて2時間以内は驚異的です。

💭 使ってみた感想

🌟 ここがすごい

  • 必要な作業を先回りして全部やってくれる
  • ドキュメント自動生成(しかも更新にも追従)
  • エラーハンドリングまで提案してくれる
  • 修正を伝えると、要件定義書・設計書すべて反映

 ドキュメントの化石化を防げる未来感!

🤔 ここがモヤモヤした

  • 内部的には処理完了しているのに、完了報告が返ってこない

「いつになったら終わるの?」状態になることが何度か

  • ログを添付しないと再実行扱いになる
  • 実装経験がない人には少しハードル高め

📝 まとめ

項目 内容
ドキュメントとコード 常に同期。設計変更も即反映
開発スピード 要件定義から実装まで一気通貫
思考リソース 「何を作るか」に集中できる

🪄 KIRO = エンジニアの本質的作業に全力を注げる神ツール

👀 ご興味を持った方

以前はアクセス集中によりウェイトリスト制でしたが、
10月16日をもって解除されました🎉👏
🔗 KIRO公式アナウンス

▼ 現在はすぐに利用開始できます。ぜひお試しを👍️
🔗 KIRO公式サイト

🐱 おわりに

今回のプロジェクトを通して感じたのは、
「AIがドキュメントもコードも同時に管理する世界」はもうすぐそこにあるということ。

KIROは単なる自動生成ツールではなく、
「思考の伴走者としてのAI IDE」 という印象でした。

ペットカメラという小さな題材でも、
開発のワークフローがどれだけ効率化されるかを実感できたのは大きな収穫です。

次はもう少し複雑な自動化ツールにも挑戦したいと思っています。
具体的には、たびちゃんが水を飲んでいるのか、単に水で遊んでいるのかを判別できる仕組みを作り、
行動観察の自動化をさらに進めてみたいです🐾

たびちゃん、留守番よくがんばったね。えらいね😊


(後日談)

実は、自前のMacの内蔵カメラにはオートフォーカス機能がなく、たびちゃんやおもちゃが動くとピントが合わず、写真が少しブレがちでした💦 そこで結局、後日1万円くらいで外付けカメラを購入しちゃいました🤫

鮮明に撮れるようになり、ちょっとお金はかかりましたが、市販のペットカメラより安く、自分の求めていた要件も満たせたので、結果オーライです☺️笑