🚗 「愛車が心配…」から秒で卒業!ChatGPT 5.6の “Vibecoding” で路面駐車用の防犯カメラシステムを作ってみた!
私が住んでいる場所の駐車場は平地(大平層)で、道路に面しています。普段の出し入れは便利で最高なのですが、人通りが多いと「愛車は大丈夫かな…」と少し心配になることも。
手元には使っていないUSBウェブカメラが1台。ちょうど ChatGPT 5.6 がリリースされたばかりだったので、噂の Vibecoding(ノリと雰囲気でコードを書くスタイル)でこのお悩みを解決できるか試してみました!
今回使用したのは ChatGPT 5.6 Sol。開発体験はとにかくスムーズの一言。私が伝えたのは、たった 3回(3往復)のプロンプト だけ。それだけで完璧に動作するアプリが完成してしまいました!今のAI、本当に強すぎます…。
実際の開発プロセスと、完成した監視ツールのマニュアルをブログにまとめました。同じような悩みを持っている方は、ぜひ丸コピして試してみてください!
💡 ChatGPT 5.6を動かした「3つの魔法のプロンプト」
AIにコードを書かせるコツは、「まず骨組みを作らせ、後から課題を解決し、最後にディテールを詰める」 ことです。私は以下のように対話を進めました。
🎯 Round 1:骨組みの作成(Planモード)
私: 現在 Windows 11 を使っています。WebCameraを呼び出して、画面内の「指定したエリア」を監視するアプリを作りたいです。もしエリア内で物体の動き(動体)を検知したら、すぐにスクリーンショットを撮影してTelegramで自分に通知し、同時に動きが終わるまで録画を開始する仕様にしたいです。監視エリアをマウスで設定できるGUIも必須です。あなたが知っている一番シンプルな方法で実装してください。
🛡️ Round 2:誤検知対策(オートフォーカスの壁)
私: 素晴らしいです!ここで1つ問題が。私のWebカメラにはオートフォーカス機能がついているらしく、虫が横切ったり光が変わったりすると、急にピント調節が走って画面がボケてしまい、それを「動き」と誤検知してしまいます。プログラム側でオートフォーカスをオフにできるか確認してください。もし制御できない場合は、アルゴリズム側でこうした誤作動をできるだけスルーする対策を考えてください。
📊 Round 3:ビジュアルでの振り返り(9分割プレビュー)
私: 最高です。最後にディテールを追加します。Telegramで「移動終了、録画をローカルに保存しました」というメッセージを送ると同時に、保存された動画の「3行×3列(9分割)」のサムネイル画像を受け取りたいです。ロジックとしては、動画の総時間を9等分し、それぞれのタイミングのフレームを抽出して1枚の画像に結合し、メッセージと一緒に送信してください。
📦 完成した成果物:WebCamera 動体監視システム(Win 11)

上記の3回のラリーを経て、究極にシンプルなローカルカメラ監視ツールが誕生しました!
リアルタイムの映像を見ながら、マウスで監視したいエリアを四角く囲むだけ。そのエリアで動きを検知すると、プログラムが以下のコンボを自動で実行します。
- 瞬間スクショ:検知エリアとタイムスタンプが刻まれた画像を保存。
- 即時アラート:Telegram Bot経由で、そのスクショをスマホへ秒速でプッシュ通知。
- 現場録画:同時に、カメラの全画面映像をMP4形式で録画開始。
- スマート終了:一定時間動きがなくなると録画を停止し、動画から自動生成された「3×3の9分割プレビュー画像」とともに終了通知を送信。

🔒 プライバシー安心設計:録画データはすべてあなたのパソコン(ローカル)内にのみ保存され、Telegramのサーバーにはアップロードされません。ネットワーク帯域にも優しく、プライバシーも万全です。
🛠️ 1. インストールとクイック起動
- Python 公式サイト から、64ビット版の Python 3.12 または 3.13 をインストールします。
- 【超重要】 インストール画面で必ず 「Add python.exe to PATH」 にチェックを入れてください!
- プログラムのフォルダ内にある
start.batをダブルクリックします。
初期起動について:初回起動時のみ、プロジェクト内に自動で仮想環境(.venv)が作成され、必要なライブラリがダウンロードされます(インターネット接続が必要、数分かかります)。2回目以降もstart.batを叩くだけでOK。GUIウィンドウが立ち上がると、背景の黒いコマンド画面は自動で閉じる親切設計です。
🤖 2. 通知を受け取る Telegram Bot の設定
監視システムとスマホを連携させる設定は、驚くほど簡単です。
- Telegramで公式アカウント
@BotFatherを検索して開きます。 /newbotと送信し、画面の指示に従ってBotの名前を決めます。最後に Bot Token(長い文字列)が発行されます。- 作成したBotのチャット画面を開き、Startボタンを押して最低1通メッセージを送信します(例:
hello)。 - ブラウザで以下のURLを開きます(
<TOKEN>の部分を先ほどのBot Tokenに置き換えてください):
https://api.telegram.org/bot<TOKEN>/getUpdates
- ブラウザに表示されたJSONテキストの中から、
chatの中にあるid(数字)を探します。これがあなたの Chat ID です。(※グループで使う場合は、Botをグループに入れて発言してください。グループIDは通常マイナスから始まります)。 - TokenとChat IDをアプリのGUI画面に入力し、「テスト通知を送信」をクリックしてスマホに届けば設定完了です!
⚠️ セキュリティ警告:Tokenはプロジェクト内のconfig.jsonに平文で保存されます。このファイルを絶対に他人に共有したり、公開のGitHubリポジトリにコミットしたりしないでください。万が一漏洩した場合は、BotFatherで/revokeを実行して再生成してください。
🎮 3. GUI画面の使い方と便利機能
- デバイス切り替え:起動後、映像が表示されるまで少し待ちます。カメラを切り替えたい場合は、右側のプルダウンから選択して「更新」をクリックします。
- 誤検知を防ぐダブル保険:
- オートフォーカスをオフにする:デフォルトでチェックON。使用しているカメラのドライバーがこの制御を受け付けるかどうかがステータス欄に表示されます。一部のウェブカメラは外部制御を開放していないため、その場合は「ドライバー設定...」をクリックし、Windows標準のカメラプロパティ画面から手動でフォーカスを固定してください。
- フォーカスや光量変化によるグローバル突変をフィルター:デフォルトでチェックON。画面全体が一斉に変化した場合(部屋の電気のON/OFF、突然の大雨、レンズのピント迷いなど)、プログラムはそれを「環境変化」と賢く判断し、背景モデルを高速で再構築します。これにより誤アラートや誤録画が発生しません。
- 監視エリアのカスタマイズ:画面上をマウスの左クリック長押しでドラッグすると、緑色の枠線を描けます。枠の中をドラッグすると移動でき、四隅をドラッグするとサイズを変更できます。「監視エリアをクリア」を押すと、画面全体を監視します。
- 感度とディレイ設定:
- 「検知感度」を上げるほど、小さな変化でもアラートが飛びます。揺れるカーテンや画面のチラつき、強い反射光が入る場所は避けてエリア指定するのがコツです。
- 「動き消失後の録画停止時間」はデフォルトで3秒です。監視対象が一瞬立ち止まったくらいでは、録画が途切れることはありません。
- ファイルの保存先:「監視開始」をクリックすると、最初の2秒間で背景の学習を行い、その後監視がスタートします。スクショと動画は日付ごとに綺麗にフォルダ分けされます:
captures\年-月-日\motion_年月日_時分秒.jpg (検知した瞬間のスクショ)
captures\年-月-日\motion_年月日_時分秒.mp4 (一連の録画データ)
captures\年-月-日\motion_年月日_時分秒_overview.jpg (3x3の9分割プレビュー画像)
9分割プレビューのニクい演出:動画全体を9等分し、それぞれのちょうど真ん中のフレームを抽出。コマごとに動画内のタイムスタンプを自動で刻んでくれます。これが「録画完了」の通知とともにスマホに届くので、わざわざ動画をダウンロードしなくても「何が起きたか」が一目で分かります!
🔍 4. よくある質問 FAQ
❓ カメラが認識されない
Windows 11のプライバシー設定を確認してください。設定 → プライバシーとセキュリティ → カメラ を開き、「カメラへのアクセス」および「デスクトップ アプリがカメラにアクセスできるようにする」がオンになっているか確認します。また、ZoomやTeams、ブラウザの会議タブなどがカメラを占有していないかもチェックしてください。
❓ ローカルの録画はできるのに、Telegramに通知が来ない
ネットワークエラーで監視自体が止まってしまわないよう、通知の失敗を許容する設計になっています。VPNなどの通信環境、Token、Chat IDが正しいか、また事前にBotと1回以上チャットを開始しているか確認してください。
❓ 保存されたMP4動画が再生できない
動画ファイルのインデックスを正しく閉じるため、終了時はGUIの「監視停止」を押すか、アプリを正常に終了させてください。Windows 11の標準プレイヤーで再生できない(mp4v コーデックの制限)場合は、万能プレイヤーである VLC media player などでの再生を推奨します。
❓ アプリを完全に削除したい
完全なグリーン(ポータブル)仕様です!アプリを閉じたら、プロジェクトのフォルダごとゴミ箱にポイするだけで完了です。すべての依存関係、設定ファイル、デフォルトの録画データはフォルダ内に完結しています(保存先を別に変更した場合を除く)。
💬 ひとりごと
昔、こういう「特定エリア指定の監視ツール」を作ろうと思ったら、OpenCVの背景差分法(Background Subtraction)のコードをごりごり書いて、TkinterやPyQtでスレッド制御に頭を悩ませながらUIを組む必要がありました。
それが今やChatGPT 5.6を相手に Vibecoding するだけで、欲しい機能を日本語で伝えるだけで、ものの数分で実用的なツールが動いてしまう時代です。本当に恐ろしい子…!
*追記:それにしても時代の流れは早いですね。かつての「Codex」が完全に引退し、今は「ChatGPT Codexモード」に統合されてしまったのは少し寂しい気もします T_T。でもまあ、5.6のSolモードが快適すぎるので大満足です!*

