ご利用の流れ(SCO-M5SNRF9160)

[更新: 2022年3月31日]

「さくらのモノプラットフォーム」において提供されるDIP型LTEモジュール基板(SCM-LTEM1NRF)およびM5Stack向け変換基板(SCO-M5SNRF9160)を使ったご利用開始の流れを説明するページです。

SCO-M5SNRF9160はM5Stack Coreボードにスタッキングすることで、さくらのモノプラットフォームと簡易的な接続を提供する評価ボードです。 サンプルプログラムとして、ボタン押下によるデータ送信や受信、ボード内に搭載されたNordic nRF9160のサンプルファームウェアアップデートのサンプルコードを提供しており、企画・開発段階での検討に役立ちます。

1. 準備

本項では以降の作業を進めるために必要となるハードウェアおよびソフトウェアについて記載します。

1-1. 使用するハードウェア

  • M5Stack Coreボード
    • 動作確認は M5Stack Basic , M5Stack Gray でのみ実施しています
    • 以降の手順は上記のいずれかのボードを使用して行うことを想定して記載します
  • M5Stack対応LTEモジュール cat.M1 nRF9160(SCO-M5SNRF9160)
  • USBケーブル(Type-C)
    • 対向は接続対象によって適切なものを選定ください

1-2. USBドライバーおよびボード定義のインストール

M5Stackに対してプログラムを書き込めるようにするため、参考URLに示される手順に従いUSBドライバーおよびArduino IDEをインストールします。

次にArduino IDEを起動し、再度参考URLに従い環境設定を行ったうえで、ボードマネージャから「M5Stack」をインストールしたら「M5Stack-Core-ESP32」を選択します。 また、合わせてライブラリマネージャから「M5Stack」をインストールします。

1-3. さくらインターネット会員IDの作成

さくらインターネットの会員IDをお持ちでない場合やお持ちの会員IDとは別に利用される場合、提供するコントロールパネルにアクセスできるようにするため さくらインターネット会員登録 から会員情報を登録します。 メールアドレスを入力したら以降は送られる手順に従い会員IDを発行します。

2. コントロールパネルへのログイン

さくらのセキュアモバイルコネクトのご利用にあたっては管理ツールとしてコントロールパネルを提供しています。

さくらのクラウドのコントロールパネル にログインします。

ログインが完了するとさくらのクラウドホーム画面に遷移しますので、「セキュアモバイルコネクト」をクリックします。

画像ファイル

SIM一覧画面に遷移します。以降はこのコントロールパネルを使用して各種リソースを作成および設定を行います。

画像ファイル

3. さくらのセキュアモバイルコネクトでのSIMの作成

さくらのセキュアモバイルコネクトのSIMは入手直後は有効化されておらず、ユーザー自身でコントロールパネルへの登録および有効化の作業が必要です。

さくらのクラウドコントロールパネルメインメニューより「セキュアモバイル」を選択し、左側のサイドメニューから「SIM」をクリックします。「SIM一覧」画面が表示されたら右上の「追加」をクリックします。

画像ファイル

「SIM追加」画面が表示されたら必須項目であるICCIDおよびPASSCODE、接続先として許可するキャリアの選択等を行います。

画像ファイル

ヒント

現時点のSCO-M5SNRF9160ファームウェアではキャリアとしてsoftbank固定になっています。キャリアとしてsoftbankは必ず選択してください。
SCO-M5SNRF9160の場合、登録に使用するICCIDおよびPASSCODEは基板に記載されています。

画像ファイル

名前欄に任意の名称を入力し、右下の「作成」をクリックします。ここでは名前欄に「new-sim」を入力しています。

画像ファイル

リソース作成が行われるため、確認モーダルが表示されます。確認のうえ、問題がなければ「作成」をクリックします。

画像ファイル

SIMの作成が開始されますので「閉じる」をクリックします。ステータスが成功になっていない場合でも処理は進行します。

画像ファイル

重要

登録時にエラーが出る場合は、PASSCODEを確認ください。大文字「アイ」と小文字の「エル」等判別しづらい文字については、両方のパターンにて入力をお試しください。

再度左側のサイドメニューから「SIM」をクリックします。「SIM一覧」画面に新しいSIMが作成されていることを確認します。

画像ファイル

以上でSIMの作成は完了です。

参考

SIM

4. SIMのプロジェクトへの紐付け

さくらのモノプラットフォームを利用するためには、複数のSIMやサービスアダプタを管理する「プロジェクト」に登録する必要があります。

ヒント

作成済みのプロジェクトにSIMを紐付ける事もできます。その際にはプロジェクトの作成は不要です。

4-1. プロジェクトの作成

さくらのクラウドコントロールパネルメインメニューより「モノプラットフォーム」を選択し、左側のサイドメニューから「プロジェクト」をクリックします。「プロジェクト一覧」画面が表示されたら、右上の「追加」ボタンをクリックします。

画像ファイル

作成したいプロジェクトのパラメータを設定し、「作成」ボタンをクリックします。

  • 名前 : 作成するプロジェクトにつける名前を入力します。空の場合自動で割り振られます。
  • 説明 : 作成するプロジェクトに説明が必要な場合に入力します。
  • タグ : コントロールパネルのタグ機能を使用する場合に入力します。
  • アイコン : コントロールパネルのアイコン機能を使用する場合に選択します。
画像ファイル

さくらのクラウドコントロールパネルメインメニューより「モノプラットフォーム」を選択し、 左側のサイドメニューから「プロジェクト」をクリックします。 「プロジェクト一覧」に作成したプロジェクトができていれば成功です。

画像ファイル

4-2. プロジェクトへのSIMの登録

さくらのクラウドコントロールパネルメインメニューより「セキュアモバイル」を選択し、左側のサイドメニューから「SIM」をクリックします。「SIM一覧」画面が表示されたら該当のSIMをダブルクリックするか、チェックボックスで選択したうえで右上の「詳細」をクリックします。

画像ファイル

右上の「接続先の変更」をクリックし、接続先の変更画面から接続先に「モノプラットフォーム」を、プロジェクトに作成済みのリソースを、それぞれ選択のうえ「変更」をクリックします。

画像ファイル

対象となるプロジェクトへの接続、および自動的にIPアドレスの採番が行われますので「閉じる」をクリックします。ステータスが成功になっていない場合でも処理は進行します。

画像ファイル

詳細画面でモバイルゲートウェイ欄およびIPアドレス欄が表示されており、それぞれに値が入っていることを確認します。

画像ファイル

さくらのクラウドコントロールパネルメインメニューより「モノプラットフォーム」を選択し、左側のサイドメニューから「プロジェクト」をクリックします。 「プロジェクト一覧」画面が表示されたら、SIMの設定で選択したプロジェクトをダブルクリックするかチェックボックスで選択したうえで右上の「詳細」をクリックします。

プロジェクトのデバイスタブのリストに、登録したSIMが表示されていれば、 以上でSIMの紐付けは完了です。

画像ファイル

5. ハードウェアの組み上げと接続

本ハードウェアを使うために、M5StackからBottomモジュールを取り外します。

画像ファイル

SCO-M5SNRF9160を間に挟み込むようにスタッキングします。

画像ファイル

ピンがズレて取り付けられていないことを確認し、PCとUSBケーブル(Type-C)で接続します。

画像ファイル

Arduino IDEを開き、上部「ツール」>「ボード」から「M5Stack-Core-ESP32」を指定します。

画像ファイル

同様に上部「ツール」>「シリアルポート」からM5Stackが接続されたポートを指定します。

画像ファイル

以上でハードウェアの組み上げと接続は完了です。

ヒント

接続されているシリアルポートがわからない場合、デバイスマネージャーから「Silicon-Labs CP210x USB to UART Bridge」に割り当てられているCOMポート番号を確認します。

6. サンプルスケッチの書き込み

ヒント

スケッチ書き込み前に、SCO-M5SNRF9160 ファームウェア sipf-std-client_nrf9160 の最新版への更新を推奨します。 8-3. SCO-M5SNRF9160ファームウェアのFOTA実行方法

GitHub sakura-internet/sipf-std-client_sample_m5stack から最新ソースコードのZipファイルをダウンロードします。

画像ファイル

解凍したソースコードからサンプルのスケッチファイル「sipf-std-m5stack.ino」を開き、M5Stackボードに書き込みます。

ヒント

スケッチファイルは同階層に含まれるヘッダファイル(sipf_client.h)およびソースファイル(sipf_client.cpp)を使用するため、Arduino IDEで開く際にはスケッチファイルと同じ階層に両ファイルを配置するようにしてください。

Arduino IDEで正しく認識された場合、スケッチファイルに加えてヘッダファイルおよびソースファイルがタブとして表示されます。

画像ファイル

書き込みが完了し、SIPF Client for M5Stack画面がディスプレイに表示されていることを確認します。 合わせて、タイトル部の下に表示されるBootingおよびSetting auth modeがいずれもOKになっていることを確認します。

画像ファイル

ヒント

サンプルスケッチは随時更新されており、画像の表示が異なる場合がございます。

また、書き込みに失敗する場合、以下の3点が設定されていることを確認してください。

  • ボードに「M5Stack-Core-ESP32」が選択されている
  • シリアルポートに適切なCOMポートが選択されている
  • 「M5Stack」ライブラリがインストールされている

以上でサンプルスケッチの書き込みは完了です。

7. WebSocketサービスアダプタを使った動作確認

サーバーからモノプラットフォームに対して送受するためのサービスアダプタを使って動作を確認します。

Websocketサービスアダプタには簡易的に送受データを見たり送ったりする機能もあるので、 サーバーなしでも動作の確認が可能です。

ヒント

作成済みのWebsocketサービスアダプタで確認することもできます。その際にはサービスアダプタの作成は不要です。

7-1. Websocketサービスアダプタの作成

さくらのクラウドコントロールパネルメインメニューより「モノプラットフォーム」を選択し、左側のサイドメニューから「サービスアダプタ」をクリックします。

画像ファイル

作成するサービスアダプタのパラメータを設定し「作成ボタン」をクリックします。

  • 名前 : サービスアダプタを管理する名前を入力します。
  • プロジェクト : サービスアダプタを接続するプロジェクトを選択します。ここで選択したプロジェクトに所属するSIMとのみサービスアダプタ経由で通信できます。
  • サービスアダプタ : 作成するサービスアダプタの種類を選択します。 ここではWebsocketを選択します。
画像ファイル

7-2. 送信の確認

さくらのクラウドコントロールパネルメインメニューより「モノプラットフォーム」を選択し、左側のサイドメニューから「サービスアダプタ」をクリックします。

画像ファイル

「サービスアダプタ一覧」画面が表示されたら作成済みのサービスアダプタをダブルクリックするか、チェックボックスで選択したうえで右上の「詳細」をクリックします。

画像ファイル

詳細画面が表示されたら、左側もしくは真ん中ののボタンを押下し、ディスプレイ内RESULT欄にボタンが押されたこと、およびIoTクラウド側で正常に受信できたことを示すオブジェクト送信IDが表示されることを確認します。

画像ファイル

サービスアダプタの詳細画面にモノプラットフォームに届いたデータが表示されます。 M5Stackのディスプレイに表示されている送信したtagおよびvalue情報とWebSocketにより受信したデータが一致していることを確認します。

画像ファイル

7-3. 受信の確認

さくらのクラウドコントロールパネルメインメニューより「モノプラットフォーム」を選択し、左側のサイドメニューから「サービスアダプタ」をクリックします。

「サービスアダプタ一覧」画面が表示されたら作成済みのサービスアダプタをダブルクリックするか、チェックボックスで選択したうえで右上の「詳細」をクリックします。

画像ファイル

詳細画面が表示されたら、右上の「メッセージ送信」をクリックします。

画像ファイル

デバイスへ送信したいデータを設定し、「送信」ボタンをクリックします。

  • 宛先 : データを送信したい先のSIMの名前を選びます
  • タグ : TAG_IDとして16進数で0~FFの値を指定します(今現在数値のみの対応となっています)
  • タイプ : 送信したいデータの形式を選択します
  • 値 : 送信したいデータの値を入力します。タイプにより入力すべきフォーマットが異なります。
    • 各種符号付整数 : 符号付10進整数表記(+は省略可)
    • 各種符号無し整数 : 符号無し10進整数表記(+のみは付加することも可)
    • 各種浮動小数点形式 : 符号付10進小数表記(+は省略可)
    • 可変長オクテット列 : Base64エンコード後の文字列
    • 可変長文字列 : UTF-8で表せる文字の列(あくまで送信可能なだけでデバイス側で表示取り扱いできるかは別になります。またUIの都合上一部制御文字等は入力できない可能性があります。)
  • 現状制限事項1 : 各欄の入力値のエラー判定について : 現状暫定の処理となっているため誤判定が生じることがあります。ご了承ください。
  • 現状制限事項2 : 値欄の入力制限について値のエラー : 現状この簡易websocketUIの制限として30文字以下程度で表せるデータのみ取り扱い可能です。
  • 簡易のWebsocketのUIとなるため、全機能の利用が必要な場合は自前でWebsocketクライアントを用意されることを推奨します。

次にM5Stackの「RX」ボタンを押します。 モノプラットフォームに対して受信要求が発行され、サービスアダプタ経由でモノプットフォームに送られたデータがデバイスに対して送信されます。 M5Stackの画面で受信されたデータが表示されるので、サービスアダプタの送信画面で設定した値が受信されているか確認してください。

画像ファイル

ヒント

サービスアダプタ側からはデバイスがOFFだったりオフラインや圏外だったりを問わずデータをいつでも送信することができ、 送信されたデータはデバイス側から受信要求が来るまでモノプラットフォーム側で保持されます。 デバイス側が回線やアプリケーション、電力等の都合で受信可能になったときに、 明示的にモノプラットフォームに対して受信要求を出すことにより、モノプラットフォームからデバイスへのデータ転送が行われます。
このサンプルでは手動のボタンで受信要求を行っていますが、用途に合わせた間隔のポーリングや、何らかのトリガがあった場合など、 ユーザの目的に応じて受信要求を発行することでより便利にシステムを構築できます。

8. 参考資料

8-2. ファームウェア

8-3. SCO-M5SNRF9160ファームウェアのFOTA実行方法

SCO-M5SNRF9160のファームウェア sipf-std-client_nrf9160 には最新版のファームウェアへの更新が行えるFOTAの機能があります。

SIPF Client for M5Stackのコマンド中継機能を使用し、SCO-M5SNRF9160のFOTA機能を起動し更新を行います。

本項ではSIPF Client for M5StackでFOTAを実行する手順をご案内します。

PCとM5StackをUSBケーブルで接続し、Arduino IDEのシリアルモニター または 任意のターミナルソフトでM5StackのUSBシリアルポートを開きます。

M5Stack本体の赤いボタン押下によりリセットし、画面に +++ Ready +++ が表示されている状態にします。

rst:0x1 (POWERON_RESET),boot:0x16 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8
M5Stack initializing...OK
### MODULE OUTPUT ###
*** SIPF Client(Type00) v.0.1.0 ***
Trying to attach to LTE network (TIMEOUT: 60000 ms)
SEARCHING
REGISTERD
ICCID: 8981040000000xxxxxx
#####################
+++ Ready +++

ロックを外し更新コマンドを実行します。

$$UNLOCK UNLOCK
OK
$$UPDATE UPDATE
FOTA DOWNLOAD START
  1% DOWNLOADED
  2% DOWNLOADED
  3% DOWNLOADED
  4% DOWNLOADED
  5% DOWNLOADED
  7% DOWNLOADED
  8% DOWNLOADED
  9% DOWNLOADED

更新ファイルのダウンロードが始まります。

97% DOWNLOADED
98% DOWNLOADED
99% DOWNLOADED
99% DOWNLOADED
FOTA DOWNLOAD FINISHED
REBOOT & RUN UPDATE

ダウンロードが完了するとSCOがリブートします。

** Booting Zephyr OS build v2.4.99-ncs2  ***
I: Starting bootloader
I: Primary image: magic=good, swap_type=0x2, copy_done=0x1, image_ok=0x1
I: Secondary image: magic=good, swap_type=0x2, copy_done=0x3, image_ok=0x3
I: Boot source: none
I: Swap type: test
I: Bootloader chainload address offset: 0x10000
I: Jumping to the first image slot

リブート後、ブートローダーの機能によりダウンロードした更新ファイルでアップデートを行います。

アップデートが完了するとRTOSの起動メッセージが表示された後、sipf-std-client_nrf9160が起動します。

*** Booting Zephyr OS build v2.4.99-ncs2  ***
Flash regions           Domain          Permissions
00 02 0x00000 0x18000   Secure          rwxl
03 31 0x18000 0x100000  Non-Secure      rwxl

Non-secure callable region 0 placed in flash region 2 with size 32.

SRAM region             Domain          Permissions
00 07 0x00000 0x10000   Secure          rwxl
08 31 0x10000 0x40000   Non-Secure      rwxl

Peripheral              Domain          Status
00 NRF_P0               Non-Secure      OK
01 NRF_CLOCK            Non-Secure      OK
02 NRF_RTC0             Non-Secure      OK
03 NRF_RTC1             Non-Secure      OK
04 NRF_NVMC             Non-Secure      OK
05 NRF_UARTE1           Non-Secure      OK
06 NRF_UARTE2           Secure          SKIP
07 NRF_TWIM2            Non-Secure      OK
08 NRF_SPIM3            Non-Secure      OK
09 NRF_TIMER0           Non-Secure      OK
10 NRF_TIMER1           Non-Secure      OK
11 NRF_TIMER2           Non-Secure      OK
12 NRF_SAADC            Non-Secure      OK
13 NRF_PWM0             Non-Secure      OK
14 NRF_PWM1             Non-Secure      OK
15 NRF_PWM2             Non-Secure      OK
16 NRF_PWM3             Non-Secure      OK
17 NRF_WDT              Non-Secure      OK
18 NRF_IPC              Non-Secure      OK
19 NRF_VMC              Non-Secure      OK
20 NRF_FPU              Non-Secure      OK
21 NRF_EGU1             Non-Secure      OK
22 NRF_EGU2             Non-Secure      OK
23 NRF_DPPIC            Non-Secure      OK
24 NRF_REGULATORS       Non-Secure      OK
25 NRF_GPIOTE1          Non-Secure      OK

SPM: NS image at 0x1c200
SPM: NS MSP at 0x2001deb8
SPM: NS reset vector at 0x2297d
SPM: prepare to jump to Non-Secure image.
*** SIPF Client(Type00) v.0.1.0 ***
Trying to attach to LTE network (TIMEOUT: 60000 ms)
SEARCHING
REGISTERD
ICCID: 8981040000000xxxxxx
+++ Ready +++

以上でSCO-M5SNRF9160のファームウェア更新は完了です。

ヒント

SIPF Client for M5Stackの初期化処理を実行するため、M5Stack本体の赤いボタン押下によりリセットしてください。