SORACOM ArcとラズパイZeroで監視カメラ

前置き

もはや悪びれず言います。

イベント滑り込みです。

https://www.lp.soracom.jp/202108-soracom-arc-blog-contest

そしてコンテストなのに内容も薄めです。

概要

前回の投稿ではラズパイとWebカメラを使った監視カメラを作りました。

このカメラ部分をラズパイZero WSORACOM Arcを使って実現してみたいと思います。

SORACOMのプラットフォームはこれまで、基本SORACOMのSIMを使った通信が前提となっており、前回の監視カメラは以下の構成となっていました。

SORACOM Arcは既設のインターネット環境を使ってSORACOMプラットフォームが使えるようになるので、専用のルーターも不要になります。

「で?」って感じですが、気軽にSORACOMサービスを試したり、(通信料がSIMより安いので)大容量の通信をする場合に良さそうに思います。

やったこと

ラズパイZero

ハードウェア

使ったハードは以下の通りです。

組み合わせるとこんな感じになります。

このコンパクトな感じでLinuxが動かせるのがZeroの魅力だと思います。

OSインストール

Raspberry Pi Imagerを使ってRaspbianをインストールします。

※手順は割愛させていただきます。

以降の作業はラズパイZeroにSSH接続した前提で進めます。

カメラの有効化

ラズパイカメラを使うため、raspi-configコマンドを実行して、以下の手順で有効化しします。

$ sudo raspi-config
  1. Interfacing Options → Camera を選択
  2. Enterキー押下
  3. Yes (はい)押下
  4. Ok (了解)押下
  5. Finish 押下で再起動

設定完了後、以下のコマンドで写真が撮影できるようになります。

$ raspistill -o image.jpg

WireGuardインストール

ラズパイでSORACOM Arcを使う場合、soratunというツールが便利(らしい)ですが、残念ながらZeroでは使うことができません。

代わりにラズパイZeroにWireGuardというVPN接続アプリを入れて作業します。

以下のコマンドでWireGuardをインストールします。

$ sudo apt install wireguard

SORACOM Arc

以下の手順に沿ってコンソール&ラズパイの設定を進めるとArcの設定ができます。

https://users.soracom.io/ja-jp/docs/arc/create-virtual-sim-and-connect-with-wireguard

画像

このままだと起動時に手動接続しなくてはいけないので、自動接続できるようにします。

$ sudo systemctl enable wg-quick@wg0

SORACOM Harvest Files、Lagoon

以下のレシピ「カメラの画像を SORACOM Harvest Files にアップロードする」以降を参考に設定します。

https://soracom.jp/recipes_index/2956

※手抜きですみません・・

撮影&送信

エラー処理とかまったく考えなければ、cronの設定のみできます。

$ crontab -e

最下行に以下を追記します。

*/15 * * * * /usr/bin/raspistill -rot 270 -w 640 -h 480 -o image.jpg; /usr/bin/curl -X POST -H 'Content-Type: image/jpeg' --data-binary '@image.jpg' harvest-files.soracom.io

設定の内容、オプションは以下の通りです。

  • */15:15分毎に実行するようにしています
  • -rot 270:前述の設置状況なので、3/4回転(270°)させてます
  • -w 640 -h 480:無駄に画質上げても・・なので640×480にしてみました

適宜変更いただければと思います。

結果

15分おきに写真がアップできるようになりました。

正直、現状どう使っていくかは未定ですが、通信料を気にしてエッジ処理とか考えてたところがエイヤーでクラウドに投げれそうな予感がしています。

これから知恵絞ります・・。