Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cloudflare を使って愛犬を監視する

Avatar for 高江洲 順八 高江洲 順八
April 18, 2024
180

Cloudflare を使って愛犬を監視する

Avatar for 高江洲 順八

高江洲 順八

April 18, 2024
Tweet

Transcript

  1. どんなLT? • 愛犬を仕事中も見守りたいので、監視したく、色々使ってペットカメラをインストールしたの で、どんな技術を使ったかご紹介 • 出てくる技術 ◦ Cloudflare, Raspberry Pi,

    Nginx Unit などなど • ホントは Qiita か Zenn の記事にして、それも共有したかったですが、間に合わず ◦ 後日気が向けば記事にしようかなと思います!😇 • 日曜プログラマの方の参考になれば幸いです!(ぶっちゃけプログラミングしてない! )
  2. • Raspberry Pi 3 と Raspberry Pi カメラモジュール v1.3 で構成

    • 中古ラズパイ買ったときに、サービスでついてきたカメラ • 合計 5000 円 カメラ?
  3. • Motion という OSS をインストール(GPL-2.0) • apt コマンドなどで インストールしてすぐ つかえる

    • mjpg-streamer というの もあり、ただ古すぎる& 事例少ない Motion Motion-Project/motion: Motion, a software motion detector. Home page: https://motion-project.github.io/ https://github.com/Motion-Project/motion
  4. ところでどうやって映像を見る? • ネットでググると Motion インストールしたらすぐにストリーミング映像が見れるサーバー が起動するっぽかった • 8081 で motion

    が Listen してた(8080 は motion を制御するインターフェース) Streaming Video with Motion - Raspberry Valley (raspberry-valley.azurewebsites.net) https://raspberry-valley.azurewebsites.net/Streaming-Video-with-Motion/
  5. Motionの設定ファイルはシンプル • いろいろ設定値を書き換えては再起動を繰り返し、以下のようになった # systemctl を使うために必要 daemon off # 録画した動画の保存先

    (動きを認識したときだけ動画が保存される ) target_dir /mnt/pet_camera_vidoes # ファイル名(拡張子抜き) movie_filename %Y-%m-%d_%H-%M-%S_motion # mp4 で保存 movie_codec mp4 videodevice /dev/video0 norm 0 # フォーマット 8 = mjpg ということ v4l2_palette 8 width 640 height 480 framerate 30 # localhost 以外からでも stream にアクセスできるようにする stream_localhost off stream_maxrate 30 stream_quality 50 # 上下反転 flip_axis v
  6. • ドメインのネームサーバーを Cloudflare のものに変更 • Tunnel を Cloudflare のダッシュボードで作成 ◦

    ドメインと、自宅の踏み台で起動しているプロセスのポート番号を対応付ける ◦ 例: www.example.com → localhost:80 ◦ 例: ssh.example.com → localhost:22 • 詳細は公式のドキュメントご参照ください。Cloudflare Tunnel を使って自宅をデータセンターみたいにする (zenn.dev)  という記事も Zenn に載せてるので良ければどうぞ! Cloudflare Tunnel の設定方法
  7. • Nginx Unit を使って、リクエストをリバースプロキシする • 通常の Nginx のようにプロキシサーバー、Webサーバーとして使える • Nginx

    と比較して特徴的な違いは ◦ Rest API を通じてオンラインで設定変更ができる ◦ 設定の記述は JSON で書ける • 業務でも少し使い始めた Nginx Unit