Monarch DevKit UnaMKRをModemモードで使う

>先に[こちら(Monarch対応開発キット - UnaMKR -)](https://qiita.com/ghibi/items/e6c9656ccc1614e4624d)をお読みください。
また1年間無償回線の契約方法がわからない場合は、[こちら(Sigfox Devkit（開発キット）を1年間の無償回線で利用する)](https://qiita.com/ghibi/items/5893923b44f1757294e9)を見てください。

ここでは、UnaBiz社のMonarch対応開発キットUnaMKRの動作モードのひとつである**Modem(USB)モード**の使い方を説明します。
Modemモードは、UnaMKRのMicroUSBポートからUSBケーブルでPC等と接続し、直接シリアルコマンドを叩くモードです。内蔵モジュール（LITEON WSG309S）の動作確認としても使えます。

#同梱物の確認
UnaMKRには、UnaMKR本体の他、Sigfox通信用のアンテナ及びアンテナケーブル、BLE用のアンテナ、ジャンパスイッチx1が同梱されています。UnaBizホームページの写真にはArduino MKRも写っているものもありますが、Arduinoはご自身で入手していただく必要があります。また、PCと接続するUSBケーブルもご自身で入手していただく必要がありますが、Android端末用のUSBケーブルでも問題なく使えると思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172313/acceb033-b55b-6243-faea-152c28538ac6.png)

#Modem(USB)モードの準備
Modem(USB)モードを試す前の準備は、下記3つです。

- アンテナの取り付け
- ジャンパの切り替え
- USB-Serialドライバのインストール（必要に応じ）

##アンテナの取り付け
Sigfox通信用アンテナを取り付けます。UnaMKR側のポートは、モジュールの右下（技適マークに近い方）に接続してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172313/0bd9550d-59d8-97c4-da6e-3d6f6d5bd228.png)

##ジャンパの切り替え
出荷時は、Arduinoモードになっているので、Modem(USB)モードにする場合は、J6、J7、J11のジャンパをすべて切り替えてください。
少しピンボケしていますが、こんな感じです。すべて右側をショートします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172313/677b7f12-0672-356d-3a75-4e0ba6ffc3f3.png)

##USB-Serialドライバのインストール（必要に応じ）
USBケーブルをUnaMKRに接続しても、COMポートとして認識されない場合は、[CP210x USB to UART Bridge VCP Drivers（Downloadサイト）](https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers)をインストールする必要があります。

COMポートとして認識された場合は、puttyやTeraTermなどでシリアル接続するだけです。

##シリアルポート設定
UnaMKRとのUSBシリアル接続時には、下記の通りシリアルポート設定を行ってください。

|項目|設定値|
|:---|:----|
|Baud Rate|115200|
|Data Bits|8|
|Parity|None|
|Stop Bits|1|
|Flow Control|None|
※Local EchoをONにしておいた方が、こちらからのコマンドを確認しやすいかと思います。
シリアル接続に成功したら、`AT?`コマンドを入力してください。`OK`応答が返ってくれば、無事に接続されています。

#RC(Radio Configuration)の切り替え
マルチリージョン対応通信モジュールのRCを切り替える方法として、**Monarch**技術を使って基地局からのビーコンを捕捉し自動的に切り替える方法と、ATコマンドによる手動切り替えの2種類があります。

##MonarchによるRC切り替え
MonarchによるRC切り替えを行うには、`AT$MONARCH=300`コマンドを投入します。これにより、モジュールは5分間、Monarchビーコンを探します。Monarchビーコンを捕捉し、RCの切り替えに成功すると、`OK`応答が返ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172313/057a9552-5946-031e-4e25-9d12f4cd8015.png)
出荷時設定は、RC4になっており、MonarchによりRC1（現在値はフランスです）に切り替わりました。
>実際のMonarch対応デバイスは、内部クロックを使ってビーコンタイミングを図ったり、加速度などのトリガをキーに捕捉をするようにして、消費電力を抑えているようです。

##ATコマンド（手動）によるRC切り替え
Monarchビーコンは、すべての基地局からブロードキャストされているわけではないため、ご利用の地域によっては、いつまで待ってもビーコンを捕捉することができない場合があります。
そのような場合は、`AT$SETZONE=[zone番号]`コマンドで切り替えてください。
日本のリージョン（RC3）にする場合は、`AT$SETZONE=3`となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172313/3008a8fd-6fa8-e0aa-90e6-0a0d76e72fda.png)

#メッセージを送信する
Sigfoxでデータを送る場合は、多くのモジュールで共通のコマンドになります。
`AT$SF=[送信データ],[下り要求フラグ]`です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172313/70d6b3a1-e7c1-5759-0c65-4b8b145f20f2.png)
このモジュール場合、A~Fは小文字のa~fにし、下り要求フラグも必要ない場合でも,0をセットしておかないとFAILED応答が返ってくるようです。

##メッセージを確認する
送信されたメッセージは、[Sigfox Backend Cloud](https://backend.sigfox.com/device/list)から該当デバイスIDを選択し、MESSAGESメニューで確認することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172313/896c1369-4fcf-12ac-3e42-7165a32ec9fd.png)

#Bluetoothモジュール用コマンド
内蔵のBLEモジュールでスキャン及びその結果表示をしてみました。結果出てきたBLE端末は、手元に置いているBLEヘッドフォンです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172313/e9266745-d99e-26dc-29b5-072b84f7127d.png)

他にも使えるコマンドは、[unabiz.github](https://unabiz.github.io/UnaMKR/#/39-Modem)を参考にしてください。

センサデータの取得は、Modemモードではできません。ArduinoモードかEmbedモードにする必要があります。

[Sigfox Japan KCCS](https://qiita.com/organizations/sigfox)