低消費電力開発ボードWio BG770Aで試す低容量向けプリペイド型IoTSIMカード1NCE

今回は、低消費電力開発ボードWio BG770Aで1NCEの低容量向けIoTSIMカードを試したいみたいと思います。


# 1NCEとは

https://www.1nce.com/ja-jp/

1NCEは、低容量のグローバルなIoT通信を実現するサービスで、IoTに特化したIoT・M2M向けの法人用回線サービスとなります。プリペイド、10年間一括2,000円で格安にIoTアプリケーションを配備、接続、管理できるそうです。
日本では、ソフトバンク株式会社が販売しています。尚、法人用回線サービスとなるので、その点は注意が必要です。


# Wio BG770Aとは

https://soracom.jp/store/30926/

Wio BG770Aは、Seeed株式会社が開発したLTE-M・NB-IoTのセルラー通信に対応したボードです。詳しくは上記のサイトから。



# 使用するデバイス
* 1NCE：IoT SIM Card Business
* Wio BG770A v1.0

https://www.1nce.com/ja-jp/

https://soracom.jp/store/30926/


# Wio BG770Aでやってみる
大切なこと！
Wio BG770Aは、SORACOMのオンラインショップで販売されているとおり、SORACOMのSIMを使うことを想定してサンプルプログラムなどが用意されています。なので、他のSIMカードを使用する場合のセルラー通信のセキュリティなどは各自の責任で試しましょう。

尚、Wio BG770AをSORACOMストアで購入する際に、以下の注意事項もあるのでそれを了解の上で。

:::note warn
当社で販売するデバイスについては、当社のサービスと組み合わせてご利用いただく前提で販売しております。他社サービスとの組み合わせ時のご利用・保証に関してはお答えいたしかねます。
:::

それでは、実際にWio BG770Aで 1NCEのSIMカードを試していきます。
通信事業者を変えるため、用意されているサンプルなどからAPN設定などを変更する必要があります。そのため、今回はWio BG770A用に用意されているサンプルスケッチの中で、「shell」のサンプルスケッチを使用することにします。サンプルスケッチは以下を参考にしてください。

**Wio BG770Aのサンプルスケッチ一覧**

https://seeedjp.github.io/Wiki/Wio_BG770A/examples

**shellのサンプルスケッチ**

https://github.com/SeeedJP/wio_cellular/tree/main/examples/cellular/shell

shellのサンプルスケッチでは、『ntshell.h』を使っています。
私の環境では、こちらのライブラリは別途インストールする必要があったので、以下のURLからZipファイルをダウンロードして、Zipファイルからライブラリをインストールしました。
※『Arduino IDE ZIP ライブラリ インストール』などと検索するとやり方が出てきます。

```cpp
// Libraries:
//   https://github.com/matsujirushi/ntshell 0.3.1
```

<br>

上記でコンパイルできる環境が整いました。次にソースコードを確認して、APN設定を変更します。サンプルスケッチでは、"soracom.io"となっていますが、ここを"iot.1nce.net"に変更します。設定は以上で完了です。

変更前
```cpp
#define SEARCH_ACCESS_TECHNOLOGY (WioCellularNetwork::SearchAccessTechnology::LTEM)
#define LTEM_BAND (WioCellularNetwork::NTTDOCOMO_LTEM_BAND)
static const char APN[] = "soracom.io";
```

変更後
```cpp
#define SEARCH_ACCESS_TECHNOLOGY (WioCellularNetwork::SearchAccessTechnology::LTEM)
#define LTEM_BAND (WioCellularNetwork::NTTDOCOMO_LTEM_BAND)
static const char APN[] = "iot.1nce.net";
```


# 動作確認

シリアルモニタで以下のように表示されると、一旦は正しく書き込めていると思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21408/e966e544-e67f-46f7-9d39-b96e546fa096.png)

次にコマンドで操作します。

コマンドの一覧は以下を参考にしてください。

https://seeedjp.github.io/Wiki/Wio_BG770A/examples/cellular/shell.html

以下に実行した例を記載します。

* info
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21408/d865bce4-f1a4-4693-93ae-f8721fd98be5.png)


* status

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21408/fda9707a-c79f-44ba-ae47-0eb3820c512f.png)

上記より、RSSI(電波強度)やKDDIの基地局に繋がっていることなどが確認できているので、通信は成功していることが確認できました。


# サンプルスケッチ：cellula-status
セルラー通信の状況を表示するサンプルスケッチになります。次にこちらを試します。
こちらのサンプルスケッチでは、APN設定などがありませんが、上記のスケッチを実行した場合に、APN設定を書き換えていて、それが不揮発領域に保持されているので、通信することが出来ます。

https://github.com/SeeedJP/wio_cellular/tree/main/examples/cellular/cellular-status

以下が通信結果です。このように通信できていることが確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21408/be9e5538-4ccc-4540-a9fd-6a57871fbdcc.png)

# まとめ
今回は、セルラー通信の状況を確認しただけですが、ここまでくれば通信はできそうな気がします。ただ、準備されているサンプルスケッチは、SORACOMのセルラーを前提としていると思うので、その点は自分自身でいろいろ実装していく必要があるとは思います。


# おまけ

**SORACOM Air for セルラーのSIMカードを使った場合**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21408/b7c2918e-5b34-4748-a72a-98c58722b33f.png)

**1NCEのSIMカードを使った場合（APN設定の変更前）**
しばらく「Searching」の状態だったのが、「Denied」になり接続できないことが確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21408/77cf721b-a909-41de-93f0-af5caac2fa30.png)



# その他参考リンク
1NCEのSIMカードは、M5Stack用 SIM7080G搭載 CAT-M/NB-IoT+GNSSユニット（アンテナつき）でも動作確認しています。

https://qiita.com/yukimatsu/items/d254f13f39584b25fb77

こちらでも、SIM7080Gが搭載されているので、1NCEのSIMも使用することが出来ます。

https://www.switch-science.com/products/10173