芸能事務所でマネージャー→金融系のSier→事業会社で業務支援向けのサービスという感じでエンジニアをやってます。こちらのブログでは、へたれなエンジニアならではのライフハック情報と、地域ネタを発信してます! start_motion_daemon=yes #常駐させたい(デーモン起動させたいので), sudo mkdir /var/motion #画像保存ディレクトリ

Mode:Master カメラモジュールをつないだRaspberry Pi(Model3+)を使って、決まった時間ごとに撮影を行い画像ファイルを保存する機能を持った定点観測カメラの制作手順をご紹介します。 sudo rm -r /var/motion/*.avi webcam_localhost off #外部アクセス可能に$ sudo vi /etc/default/motion © 2020, Amazon Web Services, Inc. or its affiliates.All rights reserved. 00 6 * * * sudo /var/motion_message/send_camera_mail.sh. network={

運用コストの見積もり 9. #iface wlan0 inet manual #iface eth0 inet dhcp

netmask 255.255.XXX.X

このRaspberry Piボードカメラモジュールは、シングルチャンネル、8メガピクセルで、CSI-2バスインタフェースに対応しています。キャプチャの最大フレームレートは30 fpsです。高解像度(HD)のカメラボードは、Raspberry PiやCompute moduleに接続し、HDビデオや静止画を作成することができます。ソニー製のIMX219PQ画像センサを採用し、高速ビデオ画像処理と高感度を実現しています。また、固定パターンのノイズやにじみなど、画像のノイズを低減します。カメラモジュールをRaspberry Piに接続するには、 15 cmのリボンケーブルをモジュールスロットに直接接続し、Raspberry Piのカメラシリアルインターフェイスポート(CSI)を使用します。接続が完了すると、マルチメディア抽象化レイヤー(MMAL)やLinux用ビデオ(V4L)APIを介して、カメラボードにアクセスできるようになります。, 15ピンリボンケーブル 静止画解像度:3280 x 2464 自動輝度検出:50/60Hz 黒レベルの自動較正 自動露光制御、ホワイトバランス補正やバンドフィルタ機能を搭載 高速データ転送 高画質 動作温度範囲:-20 → 60 ° C 1080p、720p60、VGA90に対応, ANSI/ESD S20.20:2014 BS EN61340-5-1 : 2007.

allow-hotplug wlan0

ssid="XXXXXXXXXXXXX" Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. for filepath in ${files} Frequency:2.437 GHz (Channel 6)

mailhub=smtp.gmail.com:587 #gmailに飛ばすから, # Where will the mail seem to come from? sudo mkdir /var/motion_setting #後々設定ファイルとかシェルを突っ込む, # sudo rm -r /var/motion/*.jpg daemon on address 192.168.X.XXX

UseSTARTTLS=YES

# Make this empty to disable rewriting.

# Config file for sSMTP sendmail TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt, mutt -s "監視システムからの連絡" "メールアドレス" -c "CC先 "添付ファイルパス" < メール本文", sudo vi /var/motion_setting/message.txt target_dir /var/motion #/初期設定だと再起動でファイイルが消える/tmp配下なので・・・・消えるの嫌なんので へたれエンジニアが水耕栽培の水やり-給水を自動化!水やりマンを作った(ESP32). # MX records are consulted. Raspberry Pi のプログラムの設定 6. all_file=${all_file}' -a '${filepath} #rewriteDomain=, # Are users allowed to set their own From: address? これがめーる本文ですよYO, #!/bin/sh all_file="" #wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf Raspberry Pi でSIM経由で通信する顔認証システムを作成し、認証結果を kintone で管理するシステムを構築します。 今回は、Raspberry Pi のカメラで顔を認識し、顔が含まれる画像をファイルに保管するまでを行います。 wlan0 Scan completed :

都内の事業会社でBtoC向けサービスを作っているエンジニア。 最近は安価なネットワークカメラ製品が色々販売されていて、セキュリティカメラや見守りカメラとして簡単に利用できるのでとても便利ですね。でも、そういった製品をわざわざ買わなくても、皆様のご自宅に余っている Raspberry Pi と USB カメラを組み合わせるだけで、簡単にクラウド録画対応のおうちセキュリティカメラを作れてしまうんです!, この記事では、Raspberry Pi と USB カメラ、Amazon Kinesis Video Streams を用いた簡易的なホームセキュリティカメラシステムを構築します。カメラの映像を常にクラウドにアップロードするかわりに、Raspberry Pi の中で顔検出のアルゴリズムを動かし、検出時のみに動画をアップロードすることで、コストパフォーマンスの良いクラウド録画の仕組みを構築しています。, 1.

Amazon Simple Notification Service のセットアップ, 5. アプリケーションの実行 7. このRaspberry Piボードカメラモジュールは、シングルチャンネル、8メガピクセルで、CSI-2バスインタフェースに対応しています。キャプチャの最大フレームレートは30 fpsです。 Protocol:IEEE 802.11bgn gateway 192.XXX.X.Xauto wlan0

Cell 01 - Address: XXXXXXXXXXXXXXXXXXXXX netmask 255.255.XXX.X iface wlan0 inet dhcp

Raspberry Pi カメラ. # YES - Allow the user to specify their own From: address

psk=ここは暗号化されたパスワード

5. #FromLineOverride=YES address 192.168.X.XXX

root=XXXXXXXXXXXX #メールアドレス(送信者になるはず), # The place where the mail goes. USBカメラをRaspberry Piに接続する。 5-3.

SSHクライアントからRaspberry Piへ接続する。 5-2. ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev Raspberry Piを使った格安監視カメラシステムを作った! maruty 2020年9月5日 今回は片手に「Raspberry Pi」を携えております・・・・・

echo "メール送信が終了しました", crontab -e アプリケーションの常時実行のための設定 8.

Bus 001 Device 004: ID 04bb:094c I-O Data Device, Inc. #ここで認識できたことを確認, pi@raspberrypi ~ $ sudo iwlist wlan0 scan Raspberry Pi のセットアップ 3. ESSID:"XXXXXXXXXXXXXX" AuthPass=Gメールパス

Amazon Kinesis Video Streams のセットアップ 4. #echo $all_file sudo /etc/init.d/networking restart, #あとで設定を書き足しておく

Raspberry Pi (Raspberry Pi 3 Model B+ で動作確認しています) 8 GB 以上の microSD カード; USB カメラ; 電源アダプターおよび電源用 USB ケーブル; OS は Raspberry Pi OS を利用します。 gateway 192.XXX.X.X

Raspberry Pi (ラズパイ)教材「AI見守りカメラを作ろう」購入方法 投稿者: ツクレル PIY 投稿日: 2020年11月8日 2020年11月8日 Raspberry Pi (ラズパイ)用新教材「AI見守りカメラを作ろう」の購入方法につい …

Bit Rates:300 Mb/s, sudo sh -c 'wpa_passphrase UUIDXXXXXXXXXXXXXX UUPASS >> /etc/wpa_supplicant/wpa_supplicant.conf', 何故か作成した.conf見ると生パスがコメントアウトでよろしく記入されている謎の気遣いをされるので消しておく, pi@raspberrypi ~ $ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf

sudo chmod 764 /var/motion #権限変えておく update_config=1 Amazon Kinesis Video Streams とは? 2.

# The person who gets all mail for userids < 1000

Commonly mailhosts are named mail.domain.com # #毎日6時にプログラムを実行する AuthUser=Gメールアドレス

done # NO - Use the system generated From: address auto lo mutt -s "監視システムからの連絡" "メアド@gmail.com" -c ""${all_file}<"/var/motion_message/message.txt" #psk="ここに謎のコメントアウトが!!!!!!!!" #なのでここの行を消しておこう・・・・・ wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf The actual machine name is required no iface default inet dhcp, motionというものが動体検知をしてくれるイケてるツール、こいつでWebカメラからの情報をよろしくどっこいしてもらう, #インストールはマジでこれだけ・・・・・・ さいごに, 本記事で紹介する AWS サービスを起動する際には、料金がかかります。builders.flash メールメンバー特典の、クラウドレシピ向けクレジットコードプレゼントの入手をお勧めします。, 毎月提供されるクラウドレシピのアップデート情報とともに、クレジットコードを受け取ることができます。, Amazon Kinesis Video Streams を用いると、カメラデバイスからの動画を簡単にクラウドへアップロードし保存でき、分析や機械学習、再生などに利用することができます。カメラデバイス向けの組み込みのSDKや再生用の仕組みを提供しており、複雑な実装などは必要なく、すぐに動画のストリーミングを始めることができます。, また、2019 年 12 月には WebRTC を用いた超低遅延の双方向ストリーミングもサポートし、ユースケースに応じて柔軟にご利用いただけるようになりました。これらは、フルマネージドなサービスとして提供されているので、数百万ものデバイスからの動画ストリーミングのためのスケーラブルなインフラとしてご利用いただけます。, OS は Raspberry Pi OS を利用します。こちらのページから、Raspberry Pi OS (32-bit) with desktop をダウンロードし、microSD カードに書き込んでください。Raspberry Pi のセットアップ方法はこちらのドキュメントに記載があります。, Raspberry Pi を起動し、有線もしくは無線でインターネットへ接続ができたら、Raspberry Pi のターミナルを起動して (SSH によるリモート接続でも OK です)、以下のコマンドを実行して必要なライブラリをインストールします。, 続いて、Amazon Kinesis Video Streams Producer SDK C++ をダウンロード&インストールします。一連のコマンドを実行するのに30分ほどかかりますので、ビルドの待ち時間にこの後の手順の AWS 側の設定を行っておきましょう。なお、ビルド手順が変更になっている可能性がありますので、最新のビルド手順については Amazon Kinesis Video Streams Producer SDK C++ の README をご参照ください。, 本システムを構築する際に利用するリージョンは、Amazon Kinesis Video Streams および Amazon SNS が利用できるリージョンを選択してください。サービスが利用可能なリージョンはリージョン表から調べることが可能です。, Amazon Kinesis Video Streams のコンソールへアクセスします。ビデオストリームを作成をクリックします。, ビデオストリーム名は raspi-stream などの分かりやすい名前を入力し、右下のビデオストリームを作成をクリックします。なお、デフォルトではアップロードした動画は 1 日だけ保存されますが、必要に応じてデータの保持期間を変更することも可能です (最短 0 時間〜最大 10 年)。, 続いて、Amazon SNS をセットアップします。Amazon SNS のコンソールへアクセスします。左側のメニューのトピックをクリックし、右上のトピックの作成トピックの作成をクリックします。, raspi-topic などの分かりやすい名前を入力し、右下のトピックの作成をクリックします。, トピックが作成されたら、詳細内の ARN の値をメモしておきます。画面下部の サブスクリプションの作成 をクリックします。, Amazon SNS ではプッシュ通知やSMSなどを用いた通知を行うことができますが、この手順ではEメールによる通知を行います。プロトコルは E メール を選択し、エンドポイントに通知先となるご自身のメールアドレスを入力してください。最後に画面右下の サブスクリプションの作成 をクリックします。, 入力したメールアドレスに AWS Notification - Subscription Confirmation という件名のメールが届きますので、本文内の Confirm subscription のリンクをクリックして、サブスクリプションを有効化しておきましょう。, AWS のマネジメントコンソールでの作業が完了したら、Raspberry Pi に USB カメラを接続し、再び Raspberry Pi のターミナルに戻って、以下のコマンドを実行します。, 続いて、作成した ~/surveillance-app フォルダに以下のプログラムを main.py として保存します。, アプリケーションを実行する際に、AWS のクレデンシャルが必要になります。AWS CLI を利用できる PC などを用いて AmazonKinesisVideoStreamsFullAccess および AmazonSNSFullAccess の権限を持つユーザーで以下のコマンドを実行し、一時的なクレデンシャルを取得します。AWS CLI のインストール方法はこちらのドキュメントをご参照ください。, Raspberry Pi のターミナルに戻って、以下のコマンドで環境変数を設定します。, そして、Amazon Kinesis Video Streams Producer SDK C++ をビルドしたパスも環境変数に設定しておきます。, 環境変数を設定したターミナルで以下のコマンドを実行して、アプリケーションを実行します, アプリケーションを起動すると、カメラの画像フレームを取得し、Dlib による顔検出を行います。そして、顔が検出されると以下のようなログが出力され、Amazon Kinesis Video Streams Producer SDK C++ を用いたクラウドへ動画のアップロードが開始されます。, ストリーム名: raspi-stream 日時: 2020/10/01 12:32:49 再生用URL: https://... (60分のみ有効です), 再生用 URL を iPhone や QuickTime Player などで開くと、録画された動画をオンデマンドで再生することができます。なお、再生用URLは、発行されてから 60 分だけ有効となるように設定されています。, QuickTime Player で再生している様子 (映っているのは不審者ではなく私です), 以上のように、Raspberry Pi + USB カメラで顔検出を行い、クラウドへ動画をアップロード、E メールで通知を行い、動画をオンデマンドで再生する一連の流れを実現することができました。, 先ほどの方法では、環境変数にAWSの一時認証情報をセットすることで、アプリケーションから Amazon Kinesis Video Streams や Amazon SNS を利用できるようにしていましたが、実際にこのシステムを運用することを考えると、毎回環境変数を設定するのは現実的ではありません。, 家庭での利用など、カメラの数が限られている場合は、Amazon Kinesis Video Streams と Amazon SNS のみに権限を絞った IAM ユーザーを作成し、IAM ユーザーに紐づく認証情報を環境変数に設定しておくという方法が考えられます。一方で、多数のカメラを利用する場合は、AWS IoT Core でカメラごとに個別のクライアント証明書を発行し、証明書を用いて AWS の一時認証情報を取得するという方法があります。いずれの場合も、IAMユーザーや証明書に紐づくポリシーに与える権限は最小にしておくことで、万が一認証情報が流出した場合の被害を最小にとどめることが可能です。具体的には Amazon Kinesis Video Streams の対象ストリームへのアップロードや HLS でのセッション URL の取得、 Amazon SNS の特定トピックへのメッセージ発行のみの権限を与えるようにします。, また、パスワードの変更や SSH での公開鍵認証の利用など、Raspberry Pi 自体のセキュリティも高めておきましょう。IoT におけるセキュリティの考え方についてはこちらのスライドもぜひご参照ください。, さて、本システムを運用した場合にどのくらいのコストがかかるかを見積もってみます。見積もりにあたって、以下のような条件を仮定します。, Amazon Kinesis Video Streams の料金を見ると、動画のアップロード、HLS での再生、動画保存に対して費用がかかります。また、HLS での再生時にはデータ転送料金も発生します。先ほどの条件をベースに費用を計算してみると以下のようになります。, Amazon SNS の料金を見るとパブリッシュと E メールでの配信に料金がかかります。1 ヶ月あたりの配信回数は、10 件/日 × 30 日/月 = 300 件/月となりますが、パブリッシュは 100 万件/月の無料利用枠、E メールでの配信は 1,000 件/月の無料利用枠があるため、Amazon SNS の利用料金は無料となります。厳密にはデータ転送料金が発生しますが、動画と比べて転送量が小さいため、ここでは省略します。, ということで、これらの料金を合計すると、月あたり約 0.09 USD、わずか 10 円前後でホームセキュリティカメラのシステムを運用することができました。なお、本見積もりは 2020 年 9 月 1 日における東京リージョンでのサービス料金をもとに算出しております。実際にご利用される場合には、上記サービス料金のページから対象リージョンの料金をご確認の上ご利用ください。, この記事では、Raspberry Pi と USB カメラを用いて、クラウド録画対応のホームセキュリティカメラシステムを構築しました。Amazon Kinesis Video Streams を用いることで、複雑な実装などをしなくても簡単にカメラの映像をクラウドへアップロードし、スマホやアプリからストリーミング再生することができます。, このシステムでは顔を検出した際に動画をアップロードするようにしましたが、例えば個人識別と組み合わせることで知らない人を検出した場合のみに動画を記録したり、笑顔の認識と組み合わせることで日常生活の笑顔の瞬間を自動的にクラウドに保存するといった、様々なバリエーションが考えられます。, アップロードした動画に対してさらに複雑な分析などを行いたい場合は、Amazon Kinesis Video Streams と Amazon Rekognition Video を組み合わせた動画分析を行えるハンズオンも公開しておりますので、ぜひ試してみてください。, 三平 悠磨 (みひら ゆうま) IoT スペシャリスト ソリューションアーキテクト, ソフトウェアエンジニアとして会話 AI やロボット開発を経験しました。AWS では IoT スペシャリストソリューションアーキテクトとして、お客様の IoT 関連案件を支援しています。趣味はバンドと作曲で、プログラミングやテクノロジーを駆使して音楽をもっと楽しくしたいと思っています。, Amazon Simple Notification Service のセットアップ, Amazon Kinesis Video Streams Producer SDK C++, Raspberry Pi 上で Dlib を利用して顔検出を行い、顔を検出したら Amazon Kinesis Video Streams Producer SDK を起動する, Amazon Kinesis Video Streams Producer SDK で USB カメラの映像をクラウドへアップロードする (一定時間), クラウドへの動画アップロードが終了したら、HLS を使用したストリーミング再生用の URL を取得する, ストリーミング再生用のURLを Amazon Simple Notification Service (以下 Amazon SNS) を通じてユーザへ通知する, 通知を受け取ったユーザは、再生用 URL から録画された動画をオンデマンドで再生できる, Raspberry Pi (Raspberry Pi 3 Model B+ で動作確認しています), Amazon Kinesis Video Streams の動画の保持期間 : 7 日, 1 回の動画サイズ : 1 Mbps × 30 秒 × 0.125 bit / byte = 3.75 MB, 1 ヶ月あたりに取り込まれるデータサイズ : 3.75 MB × 30 回/日 × 30 日/月 ÷ 1000 MB / GB = 3.375 GB, 1 ヶ月あたりに再生されるデータサイズ : 3.75 MB × 10 回/日 × 30 日/月 ÷ 1000 MB/GB = 1.125 GB, 1 ヶ月あたりの保存データサイズ : 3.375 GB × 7 日 ÷ 30 日/月 = 0.7875 GB・月, 動画の取り込み : 3.375 GB × 0.01097 USD/GB = 0.03702375 USD, HLS での再生 : 1.125GB × 0.01536USD/GB = 0.01728 USD, データ転送 : (1.125 GB - 1 GB) × 0.114 USD/GB = 0.01425 USD (1GB/月の無料利用枠を適用), 動画の保存 : 0.7875 GB・月 × 0.02500 USD/GB・月 = 0.0196875 USD.