📖

LINEに自動で猫の写真を送る「猫カメラBot」を作ってみた!


目次

🎯 はじめに

最近は出社する日も増えてきて、昼間におうちで過ごす猫たちの様子がちょっと気になるようになってきました🐾
「今ごろ何してるかな〜」「元気に寝てるかな?」って思っちゃうんですよね…💭

Catlog みたいな猫見守りサービスも検討したけど、
サブスク代が1匹ごとにかかるのがネック💸

SwitchBotのカメラ はすでに使ってるけど、
アプリを開かないと見られないし、家族とも共有しづらい…📱💦

だったらもう、**自分でLINEに猫の写真が届く仕組み作っちゃおう!**と思い立ちました💡✨


🐾 やりたいこと

  • ウェブカメラで定期的に猫の様子を撮影📸

  • 撮った写真を家族のLINEグループに送信💌

  • 1時間おきくらいで自動通知が届いたら安心できるし、ちょっと楽しい🎀

通知がLINEで届くと「にゃんこ今も元気そうだな〜」って思えるし、
家族も「かわいい!」って反応してくれたりしてちょっとした癒しになるんです🐱✨


🛠 使用ツールまとめ

ツール 役割
🖥 ウェブカメラ 写真撮影(PC内蔵 or USB接続)
🐍 Python ロジックの制御・自動化
🧁 Flask 撮影画像を外部公開するミニサーバー
🌐 ngrok ローカルを外部からアクセスできるようにする
💬 LINE Messaging API メッセージ送信機能(Bot)
⏰ schedule ライブラリ 定期実行を管理
📸 OpenCV カメラ操作ライブラリ(Python製)

🧭 全体の流れ(ざっくり構成)

  1. OpenCVで写真を撮影 → cat_photo.jpg を保存

  2. Flask/photo.jpg にアクセスできるサーバーを立てる

  3. ngrokでFlaskを外部公開(LINEがアクセスできるURLを作る)

  4. PythonからLINEに画像のURLを送信 ✉️🐱

  5. この一連の処理を scheduleで60分ごとに自動実行 ⏰✨

p1


✅ STEP①:OpenCVで写真撮影

Python + OpenCV で、カメラから写真を1枚撮って cat_photo.jpg として保存します!
わずか数行で完了できるから、めちゃ簡単◎

📝
OpenCVってなに?
→ Pythonで画像やカメラを扱うためのライブラリ!
もともとAIや顔認識でも使われる高機能なライブラリなんだけど、今回は「撮影と保存」だけシンプルに活用📷✨

 


✅ STEP②:LINE Botを作成する!

LINE Developers にログインして、
「Messaging API チャネル」を作成します!

☑️ チャネルアクセストークンを発行


☑️ BotをLINEで友だち追加して、家族とのグループに招待
☑️ 応答モードを「Bot」に変更!(← これ重要。チャットボットのままだとすぐグループから抜けちゃうの…💦)


✅ STEP③:groupIdの取得(Webhook × Flask)

LINEグループにメッセージを送るには、送信先を特定する groupId が必要です。
Flaskで /callback という入り口を作り、LINEからのWebhook通知を受け取れるようにします📡

そこに届いたメッセージの中から groupId を取得して、ファイルに保存します📄

📝
Flaskってなに?
→ Pythonで使える「超かる〜いWebサーバー」!
アクセスが来たら「画像を返すよ〜」っていう処理を数行で書けちゃう優れモノです✨


✅ STEP④:Flaskで画像を返す → LINEに送る!

LINEのBotは「画像ファイルそのもの」は送れません🙅‍♀️
URLでアクセスできる画像を指定して送る必要があります。

Flaskで /photo.jpg にアクセスが来たら、
cat_photo.jpg を返すように設定しておけば、
LINE Botに送る画像URLとして使えるようになるんです📸✨


✅ STEP⑤:定期実行で自動化!

schedule ライブラリで「10分ごとに撮影→送信」を自動で繰り返すように設定しました⏰🐱

Pythonスクリプトを起動しておけば、PCが動いてる間はLINEに自動でにゃんこが届くようになります💌✨


✅ STEP⑥:一括起動スクリプトでまとめて起動!

Flask、ngrok、撮影Botの3つを毎回起動するのは面倒なので、
.bat(Windows)や .sh(Mac/Linux)で一括起動スクリプトを作成しました!

これで「ダブルクリックで全部起動できる〜!」🎉✨
開発者っぽさもアップしちゃうかも?💻💕

⚠️

補足:ngrokのURLは毎回変わるよ!

ngrokを起動すると、https://xxxxx.ngrok-free.app のようなURLが発行されますが…
無料プランだと毎回ランダムなURLになるため、

  • LINE DevelopersのWebhook URL

  • Pythonコード内の img_url

なども、その都度書き換える必要があります⚠️
(うっかり忘れると、LINEに画像が届かなくなっちゃうので注意!)

 


🎀 おわりに

今回の猫カメラBotは、
「猫の様子がLINEに届いたら安心だし、ちょっと楽しいよね」っていう気持ちから始まりました🐾

おうちのウェブカメラとPythonがあれば、ここまでできる!
しかも家族みんなでLINEで楽しめるのが本当にうれしい✨

次は Raspberry Pi に移して、もっと本格的なIoT化を目指したいなーと思ってます🍓💻
PCを起動しなくても、いつでも猫ちゃんの様子が届く未来へ…🐱💖

「うちの子も見守りたい!」って思ってる方の参考になれば嬉しいです!

Reina

Written by Reina

HubSpot CMS (現 Content Hub) をメインに 気になったことをまとめます #vibe coding

💬 コメントしてみる?