バーコードリーダーによる入退場管理を、LTEゲートウェイ「KC4-C-100A」で行う

## はじめに
入退場情報をクラウドで管理するシステムを、京セラ製LTE™ゲートウェイ[KC4-C-100A](https://www.kyocera.co.jp/prdct/telecom/office/iot/products/kc4-c-100a.html?qiita)とバーコードリーダーを使って作ってみました。
KC4-C-100AはLTE通信に対応している為、Wi-Fi®のない場所でも入退場情報をかんたんにクラウドに送信することができます。
![冒頭gif_中.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2843234/93366353-d43f-d37f-b1bf-ec2df593789a.gif)


## 準備するもの

| 品名 | 備考 |
|:-:|:--|
| [KC4-C-100A](https://www.kyocera.co.jp/prdct/telecom/office/iot/products/kc4-c-100a.html?qiita) | 参考購入先は[こちら](https://www.kyocera.co.jp/prdct/telecom/office/iot/howtobuy/?qiita)を参照（50,000円程度） |
| バーコードリーダー | KC4-C-100A の動作確認品推奨<br>→[動作確認リストはこちら](https://www.kyocera.co.jp/prdct/telecom/office/iot/guide/kc4-c-100a_kc4-c-101a/guide03.html?qiita#sec11-3)<br>※本記事では[L-46X](https://www.opto.co.jp/products/handy_scanner/L-46X.html)を使用 |
| 切替えスイッチ | 接点信号(OPEN/CLOSE)で入場と退場を切替えます |
| Windows🄬 OS を搭載したパソコン | 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) | KC4-C-100A とパソコンの接続に使用します。パソコンのUSBポートが Type-C のみの場合は、Type-C ↔ Type-C ケーブルをご用意ください。 |
| SORACOM アカウント | 本記事ではデータ可視化のダッシュボードにSORACOMサービスを活用する為、SORACOM アカウントを作成しておいてください。作成は[こちら](https://console.soracom.io/#/login?return_to=%2F)から。<br>※アカウントの作成は無料です。|
| nano SIMカード | 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/1c025b8d-5aa2-4c52-9fd2-b3f6e3968225.png)


## 機器設定
### 1. バーコードリーダー
1. バーコードリーダー選定
KC4-C-100AはRS-232Cに対応しているので、RS-232Cインターフェースのバーコードリーダーを使用します。
本記事では[KC4-C-100A の動作確認リスト](https://www.kyocera.co.jp/prdct/telecom/office/iot/guide/kc4-c-100a_kc4-c-101a/guide03.html?qiita#sec11-3)に掲載されている、QRコードなどの2次元コード読み取りにも対応したバーコードリーダーである[L-46X](https://www.opto.co.jp/products/handy_scanner/L-46X.html)を使用しました。

1. バーコードリーダー初期設定
バーコードリーダーの初期設定を行います。
本記事では以下2つの設定用QRコードを読み取ってバーコードリーダーL-46Xの設定を行いました。
より詳細な設定が必要な場合や、別のバーコードリーダー使用時はバーコードリーダーの取り扱い説明書をご確認ください。

    - RS-232C接続 初期設定   `@MENU_OPTO@ZZ@X.Z@U2@X.Z@ZZ@OTPO_UNEM@`
    RS-232C接続の初期状態に設定します。
    ![RS-232C接続_初期設定.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2843234/4b1d299e-2ae1-3a10-fb4d-332d7be81d0b.jpeg)

    - オートトリガ有効   `@MENU_OPTO@ZZ@+I@ZZ@OTPO_UNEM@`
    本記事ではバーコードリーダーのトリガボタンを押さなくてもバーコードをかざすだけで読み取りが出来るように、オートトリガ有効の設定を行いました。
    ![オートトリガ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2843234/ac211bef-9060-a319-b853-ec00e8eae972.jpeg)

### 2. 切替えスイッチ
KC4-C-100Aの接点入力端子に接続し、入場と退場を切替えるスイッチを準備します。
今回は手持ちの切替えスイッチをブレッドボードに差し込み、ラベルを貼って簡易的に作成しました。
<img width="400" alt="スイッチ.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2843234/f6332963-c54a-4df7-4777-5897ec2569cb.jpeg">

### 3. KC4-C-100Aとの接続
KC4-C-100Aに同梱されている16pinコネクタ付きケーブルと先ほど準備したバーコードリーダー及び切替えスイッチを下図の様に接続します。
![配線図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2843234/7538cd5c-9cf5-2edc-0b80-55c612998967.png)

ケーブルの接続は[別記事](https://qiita.com/ogatoshi/items/6a206ee0fafa4c0ecc94)を参考に端子台を用いて接続しました。
（バーコードリーダーの置台が手元に無かったので簡易的に三脚で固定しています）
<img width="700" alt="機器接続.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2843234/f8803500-375c-f694-10fa-2967e30e6c4b.jpeg">



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

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

| ファイル | 説明 |
|:-|:-|
| バーコードリーダーで入退場管理レシピ.**krx** | レシピツールでインポートし、カスタマイズを行う元になるレシピファイル |
| バーコードリーダーで入退場管理レシピ実行ファイル.**zip** | レシピをカスタマイズせず、キッティングツールでの書込みに使うレシピ実行ファイル |

カスタマイズせず、このままレシピ実行ファイル「バーコードリーダーで入退場管理レシピ実行ファイル.zip」の書き込みを行う方は、「[6. レシピの書き込み](https://qiita.com/ogatoshi/private/1a8a4e6689e517e280b4#6-%E3%83%AC%E3%82%B7%E3%83%94%E3%81%AE%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF)」に進んでください。

### 3. レシピのインポート
[「ツールガイド」マニュアルの「9. レシピのインポート」](https://www.kyocera.co.jp/prdct/telecom/office/iot/guide/kc4-c-100a_kc4-c-101a/guide01.html?qiita#sec9)を参考に、先ほど展開したレシピファイル「バーコードリーダーで入退場管理レシピ.**krx**」をレシピツールにてインポートしてください。

### 4. レシピのカスタマイズ
[「ツールガイド」マニュアルの「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/cfb2efc7-e7e0-772b-60ed-a896d8d6f2d5.png)


### 5. レシピ実行ファイルの作成
[「はじめよう」マニュアルの「4-6. レシピ実行ファイルの作成」](https://www.kyocera.co.jp/prdct/telecom/office/iot/guide/kc4-c-100a_kc4-c-101a/?qiita#sec4-6)及び「[4-7. レシピ実行ファイルのエクスポート](https://www.kyocera.co.jp/prdct/telecom/office/iot/guide/kc4-c-100a_kc4-c-101a/?qiita#sec4-7)」を参考に、先ほどカスタマイズしたレシピからレシピ実行ファイルの作成及びパソコンへの保存を行ってください。

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

### 7. 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 Dataの有効化
SORACOMコンソールにログインし、SORACOM Dataが有効となる様に該当のSIMが属するグループの設定を変更します。
詳細は[こちら](https://users.soracom.io/ja-jp/docs/harvest/enable-data/)を参照してください。

- SORACOM Harvest Data設定をON
![2022-09-08_14h20_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1188107/b112ab1a-c636-7c4a-ee69-b39c02a39bf1.png)

### 2. SORACOM Lagoonでの表示設定
SORACOM Lagoonのダッシュボード内に入退場情報を表示するパネルを作成します。
ダッシュボードの作成方法などSORACOM Lagoonの操作方法についてはSORACOM Usersドキュメントの「[Dashboard を作成する](https://users.soracom.io/ja-jp/docs/lagoon-v2/create-dashboard/)」や「[Table](https://users.soracom.io/ja-jp/docs/lagoon-v2/visualization-table/)」を参考にし、下表の項目をパネルに設定してください。

| タブ | 項目 | 設定 |
|:-:|:-:|:-|
| Panel | Panel title | 任意の名前を設定 |
| Panel | Visualization | Table |
| Query | Metricの1項目 | Air |
| Query | Metricの2項目 | 該当SIMのIMSI若しくは設定した名前 |
| Query | Metricの3項目 | Table |
| Transform | Organize fields | 任意の名前を設定し、列の表示順を並び替える |
| Transform | Sort by | 行の表示順設定<br>下図の例は日時降順で並べ替え |

<img width=”700" alt="Lagoon_Panel.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2843234/e5df9390-3de6-2409-346a-8f8be7f81e86.png">
<img width=”700" alt="Lagoon_Query.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2843234/f70b35c7-2455-7914-87f9-f42d5e0aa99d.png">
<img width=”700" alt="Lagoon_Transform.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2843234/39e1b683-9c4f-7684-ec51-16328ecbaf19.png">

また、事前にバーコードリーダーで読み取る番号を対象者名に紐付けておくことで、入退場情報を番号ではなく名前で表示させることも可能です。
[こちら](https://users.soracom.io/ja-jp/docs/lagoon-v2/field/#value-mappings)を参考に「Field」タブの「Value mappings」にて、「Value」にバーコードリーダーで読み取る番号、「Text」に名前を入力して紐付けを行ってください。
![紐付け.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2843234/8c539684-44cb-a91b-0efa-188b0d8168ac.png)


## 結果
入退場情報が確認出来ました！
![入退場集計結果.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2843234/c755fde8-73e6-4b2d-028c-582dab9da0ce.png)


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

セルラー通信を利用しているため通信料が発生します。
以下に1例を記載していますが通信料は送信回数次第となるので、より低額での運用も可能となります。

- 本記事で使用したレシピで100回送信：約120kB（実測値）
  ⇒1回あたり約1.2kB
- 1日あたりの想定データ通信量：約2.4MB
    - 上記 x 1000人 x 2回(入退場1回ずつ)
- 1カ月あたりの想定データ通信量：約72MB
    - 上記 x 30日
- 想定料金プラン
    - SORACOM SIM plan-D D-300MB（330円/月）
    - SORACOM Harvest Data（5.5円/日）
    ※1アカウントあたり1SIMのみであれば無料利用枠内で利用可能
    - SORACOM Lagoon 無料枠を利用

## 最後に
いかがでしたでしょうか？
京セラ製LTEゲートウェイKC4-C-100Aとバーコードリーダーを使って入退場情報をクラウドで管理するシステムの紹介でした。

別記事で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、又はソラコムの商品・サービス名称等は、株式会社ソラコムまたはその関連会社の商標または登録商標です。
    - QRコードは株式会社デンソーウェーブの登録商標です。
    - その他本文中に記載されている会社名および商品名は、各社の商標または登録商標です。