遠隔監視を必要な時だけ、LTEゲートウェイ「KC4-C-100A」を使って行う

## はじめに
扉が開いた時やゲートが下りた時などの必要な時だけ画像送信する遠隔監視システムを[KC4-C-100A](https://www.kyocera.co.jp/prdct/telecom/office/iot/products/kc4-c-100a.html?qiita)を使って作ってみました。

![トリガで遠隔監視.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2843234/58db4165-10dc-c910-9a7b-832aa9412d0f.gif)


## 動作概要
- 常にカメラ撮影を行い、一定時間分の画像を本体メモリに保存
- 扉やゲートの動きなどをトリガとし、トリガ発生時にのみメモリに保存した画像をクラウドに送信

###### ポイント
- 画像は常時送信ではなく必要な時のみ送信
    -  大量の不要な画像に紛れることなく、必要な画像の発見が容易
    -  画像を保存するストレージ容量を圧迫しない
    -  通信料の低減が可能
- 画像送信は行わないが、撮影は常時実施
    - 扉の動きに連動して撮影を開始ではないので、扉が開く直前の画像も確認可能
    ⇒事故直前の画像を送信するドライブレコーダーのイメージ
- 送信した画像の確認
    - 現場の画像をWEB上でどこにいても遠隔で確認可能
    - 送信した画像を繋げることで一連の動画として確認することも可能

## こんな人におすすめ

- 常時監視を行いたいが、画像は必要なものに絞って残したい人
    - 扉が開いた時の入室者確認
    - 製造工程でエラー発生直前の状況確認
    - ペットが水を飲んだ時の様子確認　などなど
- Wi-Fi®環境のない場所で常時画像監視を行いたいが通信料金が心配な人
- LTE™通信を使った遠隔監視を試してみたい人

## 必要な時間と概算費用

- 必要な時間：約90分
- 概算費用：約53,000円


## 準備するもの

| 品名 | 数量 | 価格 | 備考 |
|:-:|:-:|:-:|:--|
| [KC4-C-100A](https://www.kyocera.co.jp/prdct/telecom/office/iot/products/kc4-c-100a.html?qiita) | 1 | 50,000円程度 | 参考購入先は[こちら](https://www.kyocera.co.jp/prdct/telecom/office/iot/howtobuy/?qiita)を参照 |
| USBカメラ | 1 | 2,400円程度※ | KC4-C-100A の動作確認品推奨<br>→[動作確認リストはこちら](https://www.kyocera.co.jp/prdct/telecom/office/iot/guide/kc4-c-100a_kc4-c-101a/guide03.html?qiita#sec11-2)<br>※本記事では [C270n HDウェブカメラ](https://www.logicool.co.jp/ja-jp/products/webcams/hd-webcam-c270n.960-001265.html) を使用 |
| マグネットスイッチ | 1 | 1,000円程度 | トリガの対象に合わせて準備する |
| Windows🄬 OS を搭載したパソコン | 1 | － | KC4-C-100A への設定および SORACOM ユーザコンソールの操作に用います。 <br>必要なPC仕様<br>【OS】Windows10 64bit (バージョン2004-ビルド 19041 以降)または Windows 11<br>【必要メモリ】4GB以上<br>【必要ディスク容量】10GB以上<br>【ブラウザ】Google Chrome™ / Microsoft Edge|
| USBケーブル (Type-A ↔ Type-C) | 1 | － | KC4-C-100A とパソコンの接続に使用します。パソコンのUSBポートが Type-C のみの場合は、Type-C ↔ Type-C ケーブルをご用意ください。 |
| SORACOM アカウント | 1 | － | 本記事では画像保存、閲覧にSORACOMサービスを活用する為、SORACOM アカウントを作成しておいてください。作成は[こちら](https://console.soracom.io/#/login?return_to=%2F)から。<br>※アカウントの作成は無料です。|
| nano SIMカード | 1 | － | KC4-C-100AはSIMフリーのためSIMカードの指定はありませんが、画像保存/閲覧にSORACOMサービスを活用するため、本記事ではSORACOM SIMを利用します。<br>SIMの購入方法は[こちら](https://soracom.zendesk.com/hc/ja/articles/115001366827-SORACOM-IoT-SIM-%E3%81%AE%E8%B3%BC%E5%85%A5%E6%96%B9%E6%B3%95%E3%81%A8%E7%99%BB%E9%8C%B2%E6%96%B9%E6%B3%95%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6)を参照|

## システム構成
![システム構成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2843234/07bc1906-dcd6-69d8-d728-172c29eafcf1.png)

## デバイスの設定
### 1. KC4-C-100A関連ツールのインストール
KC4-C-100A[「はじめよう」マニュアルの「2.セットアップ」](https://www.kyocera.co.jp/prdct/telecom/office/iot/guide/kc4-c-100a_kc4-c-101a/?qiita#sec2)を実施し、レシピツール及びキッティングツールをインストールし、キッティングツールからレシピツールを起動してください。


### 2. レシピのインポート
1. レシピファイルダウンロード
ベースとなるレシピを[こちら](https://www.kyocera.co.jp/prdct/telecom/office/iot/recipe/img/qiita/RemoteMonitoring_at_Contact.zip)からダウンロードして下さい。
ダウンロードしたzipファイルを展開頂くと下記2つのファイルがあります。

   | ファイル | 説明 |
   |:-|:-|
   | 接点入力で画像送信レシピ.**krx** | レシピツールでインポートし、カスタマイズを行う元になるレシピファイル |
   | 接点入力で画像送信レシピ実行ファイル.**zip** | 下図レシピをカスタマイズせず、キッティングツールでの書込みに使うレシピ実行ファイル |

   カスタマイズせず、このままレシピ実行ファイル「接点入力で画像送信レシピ実行ファイル.zip」の書き込みを行う方は、「[4. レシピの書き込み](https://qiita.com/ogatoshi/items/deaf7799f9ae98b581af#4-%E3%83%AC%E3%82%B7%E3%83%94%E3%81%AE%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF)」に進んでください。

1. レシピファイルインポート
[「ツールガイド」マニュアルの「9. レシピのインポート」](https://www.kyocera.co.jp/prdct/telecom/office/iot/guide/kc4-c-100a_kc4-c-101a/guide01.html?qiita#sec9)を参考に先ほど展開したレシピファイル「接点入力で画像送信レシピ.krx」をレシピツールにてインポートしてください。

### 3. レシピのカスタマイズ
インポートしたレシピの大まかな流れは以下となります。
- 初期設定後に撮影を開始し、メモリに保存し続ける
- 接点入力を確認し、CLOSEが入力された場合は撮影を停止し撮影した画像を全てSORACOM Harvest Filesへ保存する
- 撮影を再開する

下図で注釈を付けた箇所を中心に、目的に合わせてインポートしたレシピをカスタマイズしてください。
レシピツールの操作については [「ツールガイド」マニュアルの「7. レシピの編集」](https://www.kyocera.co.jp/prdct/telecom/office/iot/guide/kc4-c-100a_kc4-c-101a/guide01.html?qiita#sec7)を参照してください。

![レシピ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2843234/3f2e26a2-92f3-aaf4-61a0-528fb737c874.png)

:::note warn
保存フォルダ名称（上図では“/demo_folder/”）はこのあとの設定で使用するためメモしておく
:::

#### レシピ補足説明
1. メモリに保存可能な枚数
メモリが上限に達すると、自動的に古い画像を削除して新しい画像を保存します。
また、メモリに保存可能な画像の枚数は画像の解像度により異なるので、保存可能枚数は[「ハードウェアリファレンス」の「5-2.機能の説明」](https://www.kyocera.co.jp/prdct/telecom/office/iot/guide/kc4-c-100a_kc4-c-101a/guide03.html?qiita#sec5-2)を参照してください。本記事では解像度をVGAに設定するので保存可能枚数は46枚となります。

1. リングバッファに溜めるレート
カメラに設定するフレームレートとは別にメモリ(バッファ)に保存する周期の設定が可能です。
本記事では100ミリ秒に設定します（30fpsでカメラ撮影を行いながら、メモリへの記録は0.1秒に1枚という設定）。
![バッファ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2843234/62419550-6df8-c6fb-7646-875fd2ac1332.png)

1. メモリに保存可能な時間
上記1,2の掛け算でメモリに保存される画像の時間が決まります。
本記事では約5秒分の画像保存が可能です。
※最大で約19分間の画像保存が可能です（メモリ保存可能枚数が最大になるQVGA且つバッファに溜めるレート最大値の6000ミリ秒設定時）

1. トリガ受信後、撮影を停止するタイミング
トリガ受信後、メモリに保存している画像の上書き防止の為、撮影の停止が必要です。
トリガ後の画像が必要な場合は、必要時間ウエイト追加後に撮影を停止してください。
本記事ではトリガ受信の2秒後に撮影を停止し、トリガ受信前の約3秒間とトリガ受信後2秒間の画像を保存します。
![メモリ保存時間.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2843234/930acbb8-0efb-255c-90e2-0884f754290e.png)

:::note warn
上記各設定項目の依存関係を理解頂き、目的に合わせて各項目を設定してください
:::


### 4. レシピの書き込み
先ほどカスタマイズしたレシピからレシピ実行ファイルを作成し、KC4-C-100Aにレシピ実行ファイルを書き込んでください。
レシピ実行ファイルの作成から書込みまでの手順は[「はじめよう」マニュアルの「4-6. レシピ実行ファイルの作成」](https://www.kyocera.co.jp/prdct/telecom/office/iot/guide/kc4-c-100a_kc4-c-101a/?qiita#sec4-6)から「[4-8. レシピの書込み](https://www.kyocera.co.jp/prdct/telecom/office/iot/guide/kc4-c-100a_kc4-c-101a/?qiita#sec4-8)」を参照してください。


### 5. マグネットスイッチ
本記事ではトリガとしてマグネットスイッチを使用します。マグネットスイッチは扉やゲートの開閉を検知し接点信号を出力するセンサーです。本記事ではおもちゃの踏切の遮断棒に磁石を取付け、踏切の開閉を検知します。

1. KC4-C-100Aとマグネットスイッチの接続
KC4-C-100A付属の16pinコネクタ付きケーブルとマグネットスイッチのケーブルを接続してください。16ピンコネクタのピン配置については[「ハードウェアリファレンス」の「1-1.仕様」](https://www.kyocera.co.jp/prdct/telecom/office/iot/guide/kc4-c-100a_kc4-c-101a/guide03.html?qiita#sec1-1)にある「※３　16ピンコネクタ」を参照してください。先ほど作成したレシピに合わせ、本記事ではピン番号10のGPIO1(茶色ケーブル)とピン番号12のGND(灰色ケーブル)にマグネットスイッチのケーブルを1本ずつ接続します。尚、マグネットスイッチに極性は無いので、ピン10と12どちらに繋いでも問題ありません。
ケーブルの接続方法については[こちら](https://qiita.com/ogatoshi/items/6a206ee0fafa4c0ecc94#%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%A5%E3%83%BC%E3%83%AC%E3%82%B9%E7%AB%AF%E5%AD%90%E5%8F%B0%E3%81%AB%E3%82%88%E3%82%8B%E6%8E%A5%E7%B6%9A)の記事も参考にしてください。

1. マグネットスイッチの動作確認
KC4-C-100Aの電源を入れると、マグネットスイッチの動作が確認出来ます。本記事で書込んだレシピでは、踏切が開いている時（接点＝OPEN）はKC4-C-100AのLEDが緑点灯、踏切が下りた時（接点＝CLOSE）から2秒間はLEDが赤点滅に変わることが確認出来ます。
![接点入力確認.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2843234/39c31a6d-7138-1b5f-f515-c7d5c7b7b2ef.gif)

### 6.SIMの挿入
KC4-C-100A[「はじめよう」マニュアルの「6-2. SIMの挿入」](https://www.kyocera.co.jp/prdct/telecom/office/iot/guide/kc4-c-100a_kc4-c-101a/?qiita#sec6-2)及び「[6-3. APNの設定](https://www.kyocera.co.jp/prdct/telecom/office/iot/guide/kc4-c-100a_kc4-c-101a/?qiita#sec6-3)」を参照し、SIMカードの挿入、APNの設定を行ってください。また、本記事で使用するSORACOM SIMのAPN設定情報については[こちら](https://support.soracom.io/hc/ja/articles/218427317)を参照してください。


## クラウド設定
デバイス側の準備が終わったら次はクラウド側の準備をします。

### 1. SORACOM Harvest Filesの有効化
SORACOMコンソールにログインし、画像ファイルの保存先であるSORACOM Harvest Filesが有効となる様に、該当のSIMが属するグループの設定を変更します。
・SORACOM Harvest Data設定をON
・SORACOM Harvest Files設定をON
・HARVEST DATA連携をONにし、連携対象のファイルパスに任意のフォルダ名を入力する（"/""/"で囲む）
※ 設定の詳細は[こちら](https://users.soracom.io/ja-jp/docs/harvest/lagoon/)の「ステップ 1: Harvest Files を有効化する」を参照してください。

![2022-09-08_14h20_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1188107/b112ab1a-c636-7c4a-ee69-b39c02a39bf1.png)
![2022-09-08_14h21_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1188107/0c78d642-598e-1960-2370-b2c4a99fc0b3.png)

### 2. SORACOM Lagoonでの画像表示
[こちら](https://users.soracom.io/ja-jp/docs/harvest/lagoon/#%e3%82%b9%e3%83%86%e3%83%83%e3%83%97-4-soracom-lagoon-%e3%81%a7-harvest-files-%e3%81%ab%e4%bf%9d%e5%ad%98%e3%81%97%e3%81%9f%e7%94%bb%e5%83%8f%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b)の「ステップ 4: SORACOM Lagoon で Harvest Files に保存した画像を表示する」を参照し、SORACOM Harvest Filesに保存した画像を、ダッシュボードであるSORACOM Lagoonに表示する設定を行ってください。

## 結果
踏切が下りた時の画像が確認出来ました！
白色の電車が踏切を通過していることが確認出来ます。
![踏切通過写真.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2843234/a9784af3-622d-5750-9935-36ed42e10c20.jpeg)

## 繋げて動画にしてみた
撮影した画像をつなげることで、踏切通過前後（本記事では通過約3秒前から通過2秒後）の様子を一連の動画として確認することも可能です。
![踏切通過動画.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2843234/417f4c37-e383-22e6-f745-b5bfb6083458.gif)
- やり方の詳細はこちら
    - [静止画からの動画作成をFFmpegで行う](https://qiita.com/ogatoshi/items/a590ea37318b7ef25e2d)
    - [SORACOM Harvest Filesからのファイル一括ダウンロード](https://qiita.com/ogatoshi/items/59520fee3c5741e210bb)

<br>

- これを応用したKC4-C-100Aを使ったタイムラプス動画の作成はこちら
    - [タイムラプス動画をLTEゲートウェイ「KC4-C-100A」を使って作成](https://qiita.com/ogatoshi/items/35b55b1d321bd069361d)



## 通信料金について
**約700円/月**

セルラー通信を利用しているため月額の通信料が発生します。
想定は以下のとおり。
　・1日に3回イベント発生し画像送信
　・1回に送信する画像容量合計は3MB/枚以下
　・SORACOM SIM plan-D D-300MBを想定（330円/月）※利用データ300MB以下
　・SORACOM Harvest Data 利用（5.5円/日）
　・SORACOM Harvest Files 利用（220円/月）※利用データ1GB以下
　・SORACOM Lagoon 無料枠を利用

## 最後に
いかがでしたでしょうか？

Wi-Fiが使えないところで、手軽にセルラー通信を使って遠隔監視を実施したい。常時監視が必要だが必要な画像に絞って送信したい。という時に、[KC4-C-100A](https://www.kyocera.co.jp/prdct/telecom/office/iot/products/kc4-c-100a.html?qiita) とマグネットスイッチなどの接点入力センサーを使ってトリガ起動型の遠隔監視ができる仕組みの紹介でした。

　初期費：約53,000円
　月額費：約700円

別記事ではKC4-C-100Aを使ってこんな映像がとれるという紹介も予定していますのでお楽しみに！


## 注記
- 商標
    - Wi-Fi®はWi-Fi Allianceの商標または登録商標です。
    - Windows®およびWindows®10は米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。Microsoft® Windows® の正式名称は、Microsoft® Windows® Operating Systemです。
    - Google、Google Chrome™ およびその他のマークは、Google LLC の商標または登録商標です。
    - USB Type-C™はUSB Implementers Forumの商標です。
    - LTE™は、ETSIの商標です。
    - ソラコム、SORACOM、又はソラコムの商品・サービス名称等は、株式会社ソラコムまたはその関連会社の商標または登録商標です。
    - その他本文中に記載されている会社名および商品名は、各社の商標または登録商標です。