ご利用の流れ(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)
- 部品の入手、実装につきましては
サンプル基板取扱説明書
の『3.1. 部材について』をご参照ください
- 部品の入手、実装につきましては
- 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の作成は完了です。
参考
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. ファームウェア¶
- SCO-M5SNRF9160 ファームウェア sipf-std-client_nrf9160
- nRF9160ファームウェア GitHubリポジトリ
- nRF9160ファームウェア リリース一覧 - ソースコードのアーカイブ、ビルド済みHEXファイルのダウンロード
- nRF9160ファームウェア Wiki - 仕様、コマンド等のリファレンス
- SIPF Client for M5Stack
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本体の赤いボタン押下によりリセットしてください。