前置き
もはや悪びれず言います。
イベント滑り込みです。
https://www.lp.soracom.jp/202108-soracom-arc-blog-contest
そしてコンテストなのに内容も薄めです。
概要
前回の投稿ではラズパイとWebカメラを使った監視カメラを作りました。
このカメラ部分をラズパイZero WとSORACOM Arcを使って実現してみたいと思います。
SORACOMのプラットフォームはこれまで、基本SORACOMのSIMを使った通信が前提となっており、前回の監視カメラは以下の構成となっていました。

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

「で?」って感じですが、気軽にSORACOMサービスを試したり、(通信料がSIMより安いので)大容量の通信をする場合に良さそうに思います。
やったこと
ラズパイZero
ハードウェア
使ったハードは以下の通りです。
- Raspberry Pi Zero W(自宅のWi-Fiを使うので無線LAN内蔵のWです)
- Raspberry Pi Zero ケース
- Raspberry Pi カメラモジュール V2
- MicroSDカード
- 電源用USBケーブル&アダプタ
- スマホスタンド(100均)
組み合わせるとこんな感じになります。
このコンパクトな感じでLinuxが動かせるのがZeroの魅力だと思います。
OSインストール
Raspberry Pi Imagerを使ってRaspbianをインストールします。
※手順は割愛させていただきます。
以降の作業はラズパイZeroにSSH接続した前提で進めます。
カメラの有効化
ラズパイカメラを使うため、raspi-configコマンドを実行して、以下の手順で有効化しします。
$ sudo raspi-config
- Interfacing Options → Camera を選択
- Enterキー押下
- Yes (はい)押下
- Ok (了解)押下
- 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分おきに写真がアップできるようになりました。

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