STM32マイコン開発ボードを使ったSigfox評価環境を試してみた（２／２）

[（前回記事）](https://qiita.com/Yuji_Kawano/private/5705f2f55eb106ea8ad1)からの続きです。

# 1. ~ 3. HWセットアップ

[（前回記事: STM32マイコン開発ボードを使ったSigfox評価環境を試してみた（１／２））](https://qiita.com/Yuji_Kawano/private/5705f2f55eb106ea8ad1)を参照してください。


# 4．Sigfoxデバイス登録
キットの準備ができましたら、次に**Sigfox.buy**へアクセスして回線を購入します。2台目以降の登録などで既にSigfoxアカウントを持っている場合は、最初にログインしてください。「**Buy connectivity**」から登録を開始します。今回、通信テスト用に1回線契約してみます（1回線あたり約1000円/年程度かかります）。

[Sigfox.buy](https://buy.sigfox.com/)
~~関連記事：[Sigfox Devkit（開発キット）を1年間の無償回線で利用する](https://qiita.com/ghibi/items/5893923b44f1757294e9)~~（→2023年2月更新: ）2022年8月以降、Sigfox社側での評価開発キット（DevKit）向け回線無償サービスが終了しているため、実際の通信テストには回線契約が必要です。


詳細解説はこちら: [お申し込みからご利用開始までの流れ](https://www.kccs.co.jp/sigfox/buy/flow/)

![001_BuyConenctivity.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/0c3350d2-5d52-872f-561b-fc90c86ef609.png)



#### オペレータ選択
Sigfoxアカウントを持っていない場合、まずは「Sigfoxオペレータ」を選択します。
ここでは”**Japan**”を選択し、**Buy connectivity** をクリックして次へ。
ちなみに、日本でのオペレータは京セラコミュニケーションシステム社です。

![002_selectJapan.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/f4056e32-2f5e-d915-b6de-43c562e43120.png)




#### プラン選択
今回契約する回線数は1つだけなので、“Discovery”プランを選択します。

![003_selectDiscovery.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/0b88fad6-332e-fe6b-494d-26883c2b8cc8.png)




#### 契約プランの設定
以下契約プランの設定を行います。契約内容によって料金が上下するようです。
+ 回線数（1~999）
+ 1日あたりの送信メッセージ数（2 / 70 / 140）
+ アトラス位置検出サービス利用の有無

今回はお試しなので、「回線数 = 1」とします。1日あたりのメッセージ数ですが、2だと少なすぎるため70を選択しました。「アトラス位置検出サービス」とは、アンテナ基地局で受信する信号をベースに、デバイスのおおまかな位置（緯度経度）を算出できるようにするものです。数km範囲の誤差にはなりますが、GNSSなどが非搭載で、かつ移動するようなデバイスの場合、この機能があると便利です。以上の設定条件で約1100円（1年間契約）になりました。


![004_subscription.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/bee7b3cc-0012-91f0-aecf-c05bfd60baf0.png)


新規利用の場合、次にアカウント情報を入力します（最初にログインしてた場合は不要）。合わせて所属企業など等の請求先情報を入力します。
- 名前
 - Eメールアドレス
 - 会社名（Sigfoxクラウド上で、“Group名”として登録されます）
 - 住所

最後に”I accept that my local Sigfox Operator can access my contract information. I have read....”のところにチェックを入れます。最後にProceed to paymentをクリックし、クレジットカード情報を入力して完了です。


![005_account.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/7d261d4a-9740-8acf-bacf-436e4a73e85f.png)

![006_payment.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/811bdde8-3b91-33b1-c261-b16bfe010df7.png)



以下のように、”Congratulations”と表示されれば正常に登録完了です。

![007_confirmation.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/6864762f-c3e3-dd68-43a8-0e4e939ee4be.png)


以上でデバイス登録は完了です。
次は実際にデバイスが通信できるようにSigfoxクラウド側の設定を行います。


## アカウントのパスワード登録（新規利用時のみ）

Sigfoxクラウドにアクセスする前に、ログインパスワードを設定する必要があります。登録したメールアドレスに案内メールが届くので、ここからパスワードを設定します。
詳細は、KCCS社ホームページの[お申し込みからご利用開始までの流れ → サービス契約通知メールとSigfox id通知メールの受信](https://www.kccs.co.jp/sigfox/buy/flow/)を確認してください。

設定が完了すると、Sigfoxクラウドにログインできるようになります。

# 5．Sigfoxクラウドでの下準備

Sigfoxクラウドにログインしてダウンリンク用の設定をします。
[backend.sigfox.com](https://backend.sigfox.com/auth/login)

### [Device Type](https://www.kccs.co.jp/sigfox/blog/technical/2018/0626-03/)作成

KCCS社のウェブサイトを見ると、「Device Typeとは、複数のIoTデバイスをグルーピング化したもの」とあります。複数デバイスをまとめて管理しやすい構造になっているようです。
Device Typeには必ず1つのContract（回線契約）が紐づいており、ContractはToken（回線の利用権）を持っています。購入したContractはデバイス個々に直接設定するのではなく、中間管理者的なDevice Typeに設定して運用するようになっています。
まず、ページ上部にある「**DEVICE TYPE**」タブをクリックして開きます。次に右上のNEWをクリックして新規作成に進みます。

![101_deviceType_new.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/4fc7ea1e-3ffa-d722-40ae-7c17315ce467.png)


まずグループの選択ですが、新規アカウント作成時に登録した会社名がグループのトップに表示されます。この下にもサブグループを追加できるようですが、ここでは１つのトップグループのみに対して設定していきます。
なお、グループ構成の作り方によってアクセス権を管理できます。サブグループ等を設定したい場合、この作業の前に「GROUP」タブページから新規GROUPを作成しておきます。

![102_deviceType_group.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/f5322f1e-a2ce-e1cc-66d8-16446c8c6f5c.png)


次に主情報の入力です。Device Type名は自由に入力できますが、グループ名に関連する名前にするとわかりやすいです。簡単な説明メモもその下枠（Description）に入力できます。
さきほど1回線分購入したContractが “x token left･･･”のような表示で選択できるようになっています。
中央の“Downlink data”の設定ですが、最初のテストとして直接Downlink送信も行いたいので、ここでは「**DIRECT**」に設定します。DIRECT選択時のDownlinkデータのデフォルトは「{tapId}0000{rssi}」となっていました（tapId: ベースステーション（受信基地局）ID、rssi: 受信信号強度dB）。この内容は編集可能です。
全て入力後、“Ok”をクリックして完了です。


![103_deviceType_info.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/e5410d5b-97f8-478b-36a5-8967b37ac132.png)


続いてDeviceの作成に進みます。

### Device作成

全てのデバイスは、Device Typeに登録して回線を利用します。
「**DEVICE**」タブをクリック後、右上の“New”をクリックして新規作成開始。最初にDevice Type作成時と同じグループを選択して次に進みます。

![111_device_new.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/0eb82b68-d524-a213-723b-505aea949410.png)


以下、デバイス登録用の情報を入力します。
+ デバイスID: *1（16進数）
+ Name: → 対象デバイスの簡単な説明文　
+ PAC: *1
+ End Product Certificate: → “P_0084_2BE5_01”と入力 *2
+ Device Type選択: → 先ほど作成したDevice Typeを選択

*1: デバイスIDおよびPAC情報は[前回記事（1/2）](https://qiita.com/ykawano/items/5705f2f55eb106ea8ad1)で入手済。
*2: End Product certificateに入力するこの英数字は、STが評価ボードのSigfox認証を受けた時に取得したコードです。X-NUCLEO-S2868A1/A2の場合このコードを使用してください。

![112_device_info.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/d01e8958-7411-e5c0-e910-07cb8118dfe5.png)


以上でクラウド側の設定は完了です。
「DEVICE」ページに戻って対象デバイスIDをクリックし、左側のタブから「 **INFORMATION** 」を選択すると設定情報や回線接続状況などを確認できます。

![121_device_information.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/da407e31-3d9d-4fe1-7b59-f661cb61b876.png)


なお、新規設定後の未接続状態では、いくつかの項目情報がアップデートされていない場合もありますが、気にせず次に進みます。（上図はすでに何度か送信後の表示例）

以上でSigfoxクラウドの準備は完了です。
Sigfoxクラウド側のデバイスページをこのままにしておき、次にS2-LP SigFox DKから操作します。



# 6．送受信の確認

## アップリンク（上りデータ。デバイスからサーバへのデータ送信）

**S2-LP_SigFox_DK**を再度立ち上げます。
（Windowsの「スタート」内、”STMicroelectronics”フォルダ下）

![201_SigfoxDK_open.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/41540d14-9df5-9ac7-6499-be6df74303be.png)



PCにデバイス（NUCLEO + X-NUCLEO-S2868Sx）が接続されていることを確認します。
次に、登録時と同様にCOMポートを選択してオープンします。
データの中身を「Uplink」の入力欄で編集し、“TX”をクリックするとSigfoxクラウドに送信されます。
ここではデフォルトで入っている「Hello!」という文字列データ（6Byte）が送信されていますが、アスキー16進数では「48656C6C6F21」となります。

![202_SigfoxDK_Tx.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/dbc769af-9663-6d55-ddec-90661c440929.png)


### Sigfoxクラウドで確認（Tx）
この数値が正しく送信されているかどうか、Sigfoxクラウドで確認します。
該当DEVICEページ内の左側のタブから「**MESSAGES**」をクリックすると、メッセージ送受信のステータスを確認できます。ここではData/Decodingのカラムに、先ほど送信した「48656C6C6F21」が表示されていればOKです。


![203_SigfoxDK_Tx_check.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/73954e40-d280-5203-e824-9a7ef050a30a.png)



## ダウンリンク（下りデータ。サーバからデバイスへのデータ送信）

次にダウンリンクを試します。データ受信を行うには、まずはデバイス側からの送信が必要です。「送信 & 受信」のセットで行います。
「Downlink」の箇所の”**Ask for response”にチェックを入れ、”uC goes to low power”のチェックを外して**「TX」をクリックします。

送信後しばらく待つと（30～60秒程度）、「Response received」のData[hex]カラムに、Sigfoxクラウドから送信されたデータが表示されます。本記事の「Sigfoxクラウドでの下準備」内で説明した、Sigfoxクラウドで設定されたDownlinkデータがこちらに送信されてくるはずです。
データの内容ですが、Sigfoxクラウドのデフォルト設定では、｛ベースステーションID（4Byte）｝+｛0000（2Byte）｝+ ｛rssi（2Byte）｝となっていました。テスト時環境では、”00005761 + 0000 + FF86”というデータ受信を確認できました（→ベースステーションID = 5761、rssi=-122dB）。

![211_SigfoxDK_Tx&Rx.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/31d9b36c-b998-2527-eaeb-4fe5f81cadb9.png)


これでダウンリンクできていることを確認できました。


### Sigfoxクラウドで確認（Tx & Rx）

アップリンクと同様にSigfoxクラウドのページでも確認します。
ダウンリンクのステータスは、**Callbacks** カラム内右側の「下向き矢印」アイコンで確認できます。緑色に変われば正常ダウンリンクできています。アイコンをクリックすると詳細情報も閲覧可能です。


![212_SigfoxDK_Tx&Rx_check.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/9e4c32f7-9ef8-ad03-c89c-2ecc104c35f9.png)


隣の「上向き矢印」アイコンは、コールバック（CALLBACK）用の送信ステータスです（今回のテストでは使用していません）。CALLBACKとは、デバイスからSigfoxクラウドに届いたデータを、AWSやAzureなどといったサードパーティー製アプリケーションサーバに転送する機能ですが、そのデータの送信状況を確認できます。

![213_SigfoxDK_Tx&Rx_check_zoom.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/03725245-ae35-a6b3-c255-bcc93154b7ae.png)






以上で、Sigfox登録 & データ送受信の確認ができました。

Sigfox回線の設定完了後は、別途提供されているセンサ･デモ（温度・湿度・気圧データを送信するデモ。FP-ATR-SIGFOX1）も利用できるようになりますので、ぜひ使ってみてください。こちらではCALLBACK機能を利用して、AWS上でモニタリングできるアプリになっています。

[FP-ATR-SIGFOX1](https://www.st.com/content/st_com/ja/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-ode-function-pack-sw/fp-atr-sigfox1.html)
[温度・湿度・気圧データを送信するデモ紹介記事はこちら](https://qiita.com/ykawano/items/90fe568b64f6c7a11c8a)