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分おきに写真がアップできるようになりました。

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

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

ラズパイ使って業務改善

背景

毎度毎度でお恥ずかしい限りですが、またイベントありきです・・

https://www.lp.soracom.jp/202104-soracom-raspberry-pi-contest

もともとLinuxが少し得意なのと、安くて面白いハードを出すので好きだったラズパイ(正式名称:Raspberry Pi)。

ソラコムさんがコンテストするということでネタが無いか探していたところ、タイミングよく社内でお声がけいただきました。

概要説明

私の勤務する会社では「機械強度試験」という業務があり、金属の接合部の耐久性を検査するサービスを行っています。

https://www.chugai-tec.co.jp/business/detail?id=247

「疲労試験機」では下の写真の上の固定具(クロスヘッドというそうです)が繰り返し上下に荷重を加え、接合の耐久性を試験します。

相談内容は、設備の稼働率を上げるため、接合部が破断した時に早く知りたいということでした。

現物を見せてもらい、実際に破断した時の説明を聞くと、上の固定具がスルスル上に動くとのこと。

そこで考えたのが、下のヤツと上のヤツの距離が変わったら通知したら?

試作機

ラズパイにはGrovePiというものを取り付けると、簡単にセンサーが取り付けできます。

また、以下の方法でWebカメラを使って簡単に監視カメラが実装できます。

https://soracom.jp/recipes_index/2956

で、作ったのがこちら。

使ったのは以下です。

ラズパイだと複数の機能が1台でできるのでクールです。

ちなみにセンサーデータはNode-REDを使ってSIMフリーのモバイルルーターからのアップロードしています。

可視化と通知

みんな大好き(?)SORACOM Lagoonです。

先日アップデートがあり、かなり見た目がカッコよくなりました。

アラート通知機能もありますし、見た目もいい感じです。

結果

この流れでアレですが、うまくいきませんでした。

というのも、上の固定具が上下に細かく振動するので、超音波距離センサが正しく距離を測れず、ただの監視カメラになりました・・

代わりに採用されたのがこちら。

SORACOM LTE-M Button Plus(通称ひげボタン)を使ったこちらです。

実装は以下そのまま・・。

https://soracom.jp/recipes_index/2966

メールで通知が届いたらLagoonの画像で確認できます。

まとめ

コンテスト的には残念な感じでしたが、前々からやりたかった自社業務の改善を大好きなソラコムのシステムを使って実現できたので満足です。

今後もこういうことやっていきたいなと思いました(イベント有無にかかわらず)。

今回のシステム開発でもソラコムさんのサポートにお世話になり、わずか1週間でここまでできました。

モチベーションを与えてくれるイベントの開催含め、ソラコムさんには感謝です!

いつもあざまーす!!

サーバー引っ越し

どうでもいいことですが、サーバーを引っ越しました。

これまで自宅に構築したLinuxサーバーで運用してきましたが、勉強を兼ねてAWSのEC2に移してみました。

なんとなくやってみたくてWebサーバーをApacheからNginxに変更してます。
(超てこずりました・・)

移行手順については別途掲載しようと思います。