sifp-std-client_nrf9160 v0.3.0/v0.3.1をリリースしました

現在βテスト中のさくらのモノプラットフォーム向け評価ボードのファームウェアと対応するサンプルプログラムをリリースしました。

評価ボード向けファームウェア

SCO-M5SNRF9160/SCM-LTEM1NRF向け標準ファームウェアsipf-std-client_nrf9160

バージョン: v0.3.0(v0.3.0_211119.113155)
  • $$TXコマンドで複数のOBJECTを送信できるように拡張
  • $$UPDATEコマンドでバージョン指定して更新できるように拡張
バージョン: v0.3.1(v0.3.1_211119.114714)
  • $$RXコマンドの応答に含まれる OBJECT のパラメータ順が$$TXのパラーメータ順と異なっていたので修正

サンプルプログラム

M5Stack対応LTEモジュール cat.M1 nRF9160向けサンプルスケッチ – sipf-std-client sample for M5Stack

バージョン: 211119
  • sipf-std-client_nrf9160 v0.3.1 の$$RXコマンド応答の変更に対応

sipf-std-client_nrf9160のバージョンを取得し$$RXコマンド応答の扱いを切り替えます。
そのため、v0.2.0、v0.3.0、v0.3.1のいずれのバージョンとの組み合わせでも動作します。

v0.3.0以降の$$TXコマンドの複数オブジェクト送信をお試し頂く場合は、Arduino IDEのシリアルモニタ等で直接$$TXコマンドを送信してください。

DIP型LTEモジュール基板 cat.M1 nRF9160向けNucleo F411REサンプルプログラム – sipf-std-client_sample_nucleo

バージョン: 211119
  • sipf-std-client_nrf9160 v0.3.1 の$$RXコマンド応答の変更に対応

sipf-std-client_nrf9160のバージョンを取得し$$RXコマンド応答の扱いを切り替えます。
そのため、v0.2.0、v0.3.0、v0.3.1のいずれのバージョンとの組み合わせでも動作します。

v0.3.0以降の$$TXコマンドの複数オブジェクト送信をお試し頂く場合は、NucleoのUSBシリアルに接続したターミナルソフト(Teraterm等)で直接$$TXコマンドを送信してください。

Continue Reading

デバイスにおける構成部品のEOLの内容とその対応

概要

一般的に、市場に存在する通信モジュールを始めとしたハードウェアにおいても、ソフトウェア同様バージョンやバージョンに対するEOL(End of Life:保守やサポートの終了)が存在します。
現在βテスト期間中のIoTプラットフォームサービスさくらのモノプラットフォームでサンプルとして無償配布中のLTEモジュール(SCO-M5SNRF9160およびSCM-LTEM1NRF)に搭載しているNordic社nRF9160にも複数のバージョンが存在します。

この度、Nordic社より該当のモジュールに含まれる部品のPDN、つまり製造中止製品の通知を受け取りました。
通常はPDN以前に後継となるハードウェアがリリースされた際にはPCNという代替品の通知がなされ、今回も事前にPCNを受けてさくらインターネットでも情報収集と対応を進めていました。
今回はこれらの通知を参考に、ハードウェアにおけるバージョン間にはどのような変更が含まれるのか、それによってIoTデバイスの開発側にはどのような影響があるのかをご説明したいと思います。
文書やWebサイト間でバージョン表記に揺れがあるため、本記事においては以下の表記に関してはそれぞれB0,B1という表記で行います。

nRF9160-SIXA / nRF9160-SIXA-B0A / Gen1 / Revision1 → B0
nRF9160-SIXA-B1A / Gen2 / Revision2 → B1

配布中のLTEモジュールに搭載されているnRF9160はB0となります。
なお今回の結論として、さくらインターネットではB0の保守終了(EOL)を受けて、今後LTEモジュールが必要になる場合はB1を採用する前提で検証および設計変更を行うことにしました。
※本記事公開時点ではB1を使ったサンプルは再設計中であり、B1に差し替えた情報公開をお約束するものではありません。

 

通知文書とその読み方

製品の変更に関する通知

今回、2020年3月および2020年7月の時点でNordic社からIN,PCNという2つの書面が公開されていました。
各社によって書面の名目は「PCN」「製品変更通知」「製品変更のお知らせ」など様々ですが、一般的には以下のような内容を製品の利用者に通知するものになっています。
一般的に、デバイスメーカーにおいてはこれらの通知を受け取るとまず対象の部品について案内される後継製品を選択して再設計を最小限に留めるか、はたまた再設計を前提に他社の類似製品に置き換えるかを検討します。

IN(Informational Notice:情報の通知)
IN145 Informational Notice v1.0

INは代替品の刻印情報を通知するものです。
この内容からいわゆる技適である工事設計認証と技術基準適合認定の番号が変更されていることがわかります。

InformationalNotice

PCN(Product Change Notification:製品変更の通知)
PCN134 Product Change Notification v1.0.1

PCNはEOL対象製品と代替品の間の変更内容を通知する文書です。
代替品との具体的な変更点と、変更が組み込まれた製品に与える影響が記載されています。
変更点としては消費電力が改善されたこと、新しい地域の認証を示すマーキングが追加されたことがわかります。
また、物理的な寸法やピン配置を示すFitを除き、刻印内容を示すForm、消費電力等の機能を示すFunction、信頼性を示すQuality or Reliabilityといった項目で変更があることが冒頭に記載されています。

ProductChangeNotification

さらに別ページには変更の根拠となるより詳細な情報が記載されています。

製品の提供終了に関する通知

いつまでも供給され続ける部品はごく一部であり、多くの部品は後継製品の有無によらずいつかは提供が終了されます。
今回、2021年10月の時点でNordicからLTEモジュールの提供終了がPDNという書面で通知されました。
一般的に、デバイスメーカーにおいてはPDNを受け取ると将来的な需要や生産計画を鑑み、最終的な発注数や時期を調整します。

PDN (Product Discontinuance Notification:製造中止製品の通知)
PDN037 Product Discontinuance Notification for nRF9160-SIxA-B0A

PDNは製品のEOLを通知する文書です。
対象製品の供給を続けられなくなった理由や利用者に推奨する行動、代替品の案内やEOL対象製品の最終的な入手タイミングが記載されています。
最終注文受付日は2021年11月30日、最終出荷日は2022年10月21日であることがわかります。

ProductDiscontinuanceNotification

 

主な変更点と対応の洗い出し

さくらインターネットでは、上記に加えてメーカーのWebサイトに公開される情報も確認し、重要な変更点と必要な対応について洗い出しました。

型番の変更

nRF9160-SIAA → nRF9160-SIAA-B1A (cat.M1のみ対応)
nRF9160-SIBA → nRF9160-SIBA-B1A (NB-IoTのみ対応)
nRF9160-SICA → nRF9160-SICA-B1A (cat.M1/NB-IoT対応 +GNSS)
βテストで提供しているLTEモジュールはnRF9160-SICAであるため、代替品としてはnRF9160-SICA-B1Aを採用するのが妥当なようです。

工事設計認証番号と技術基準適合認定番号の変更

代替品になったことでこれらの番号が変更されていることがわかりました。
提供しているLTEモジュールでは外装を含まないためモデム刻印の表示だけで問題なければ特に変更はありませんが、もしデバイスの外装等に別途刻印やラベル貼付を行っている場合、それらの変更が発生しそうです。

R 005-102122 → R 005-102592
T D19-0085005 → T D20-0081005

対応アンテナリストの変更

NordicのWebサイトを確認すると、技適取得済みアンテナリストも変更となっていることがわかりました。
提供しているLTEモジュールでは特に変更は必要ありませんでしたが、もし自分たちが製品に採用しているアンテナが含まれていない場合は設計の変更に合わせて選定し直す必要がありそうです。
Nordic nRF9160 certifications

消費電力の低下

利用するバンドによって異なりますが、概ね省電力化していることがわかりました。
設計には影響しませんが、仮に屋外でバッテリ運用されるような製品に組み込まれているならば稼働時間の延長が期待できそうです。

コンデンサ推奨容量の変更

DECピンのコンデンサの推奨容量が47uFから4.7uFに減りました。
これに伴い再設計においてコンデンサも変更する必要がありそうです。

GNSSのみちびき対応

nRF9160-SICAでもGNSS搭載モデルを使用していますがnRF9160-SICA-B1Aではその中で高精度を実現するみちびきにも対応したことがわかりました。
ただし、後述するモデムファームウェアをより新しいものにアップデートする必要もあるため、ソフトウェア的な改修が必要になりそうです。

モデムファームウェア利用可能バージョンの変更

B0ではv1.2.3を使用していたのに対して、B1はv1.3.0以降を使用することになります。
大きな変更は無いと期待したいですが、仮に製品として提供する場合は十分な検証を行う必要がありそうです。

 

まとめ

このように、デバイスの提供を行ううえで構成部品のEOLはつきものです。
影響が小さな部品であれば設計内容はそのままに部品の差し替えだけで済むケースもありますが、特にリッチな処理を行うデバイスにおいてはEOLが大きな設計変更に繋がることもあります。
また、デバイスは提供後の問題発生の対処が難しくリコール等重大なリスクに繋がるケースもあるため、Webサービスとは違ったレベルでの対応が求められます。
実際にデバイスの再設計を行う際には自社のデバイスに求められる要件を定義したうえで対応を検討してください。

この情報がIoTサービスを作る皆様の参考になれば幸いです。

また、さくらのモノプラットフォームではβテスト参加者を継続して募集しています!
今年10月にはリリースから複数機能を追加したβ2を公開するなど、正式サービス化に向けて積極的に機能拡充を行っています。
IoTを「事業のはじめやすさ」を担保しつつ「事業スケール後の取り回しの良さ」も持ったサービスで構成したい!というニーズがある方はぜひ以下URLよりお申し込みいただき、より便利なサービスにすべくフィードバックをいただければ幸いです。
さくらのモノプラットフォームβテスト無料申し込みフォーム



Continue Reading

さくらのモノプラットフォームβ2をリリースしました

現在クローズドβテスト中のさくらのモノプラットフォームのβ2をリリースしました。
7月のβ1で対応していたデバイスからクラウドへのアップリンク(上り)方向の対応に加え、β2ではクラウドからデバイスへのダウンリンク方向(下り)方向の通信にも対応しました。

β2の変更点

  • ダウンリンク(下り)方向の通信に対応しました
  • さくらのクラウドコントロールパネルから『プロジェクト』、『サービスアダプタ』が作成できるようになりました

上記の変更に対応した評価ボードのファームウェアとサンプルプログラムを公開しました。
βテスト時点では正式サービス提供に向けて大幅な改修を行う場合がありますが、事前にこのサービスによってどのようなことが実現できるかを検証いただくことができます。

さくらのモノプラットフォームについて

sakura.ioセキュアモバイルコネクトに続く3つ目のサービスとして現在開発中のサービスです。

さくらのモノプラットフォームは『IoTシステム開発に必要な道具箱』として、必要なモノを組み合わせて開発/利用できるプラットフォームを目指しています。
第一弾としてsakura.ioのようなメッセージベースの通信を行う『道具』を『道具箱』に入れてみました。
また、評価していただくための評価ボード、ファームウェア/サンプルプログラム(オープンソース:MITライセンス)を提供中です。
クローズドβテストに申し込みいただいたテスター様からこの『道具』がもっとこうなら使いやすいのに等のフィードバックを頂きつつ開発を続けています。

現在βテスターとして、開発に参加してみたい方を募集中です。
ご興味がありましたらぜひこちらのフォームからエントリーしていただければと思います。

Continue Reading

デバイス間通信機能をリリースしました

こんにちは、sakura.ioプラットフォーム開発を担当しています、潘です。
本投稿では「デバイス間通信」機能について、ご紹介したいと思います。

デバイス間通信とは

sakura.ioモジュール同士がメッセージをやり取りする機能で、従来のやり方と比べるとより簡潔で安全になっています。

今まで

  • ① モジュールAからプラットフォームにメッセージ送信
  • ② Outgoing Webhookで外部サーバにプラットフォームが受信したメッセージを転送し、モジュールAからの物だけ抽出
  • ③ Incoming Webhookでプラットフォームに「モジュールBに抽出したメッセージを送信する」様に指示
  • ④ プラットフォームからモジュールBにメッセージ送信

デバイス間通信を使用すると

  • ① モジュールAからプラットフォームにメッセージ送信
  • ② デバイス間通信設定の「モジュールAからのメッセージをモジュールBに送信する」という条件に該当したため、プラットフォームからモジュールBにメッセージ送信

※ 従来と比べてインターネット通信がなくなり、閉域網のみとなりましたので、より安全な通信になります。

利用シーン

利用シーンとしては複数のモジュールから特定のモジュールへ送信する仕組みです。

例えば、以下の様な状況が起きてしまいました。

  • モジュール搭載のトラップが害獣の捕獲を検知した時
  • モジュール搭載の監視カメラが異常を検知した時
  • モジュール搭載の自販機が地震を検知した時

すると、モジュールからプラットフォームにメッセージを送られ、モジュール搭載のパトライトを点滅させたりします。

最後に

今回はデバイス間通信機能の挙動と利用シーンについて紹介しました。
従来よりお客様が開発や運用の手間を減らし、本質な作業に集中できる様な機能を充実して行きたいと思います。

今後とも、sakura.ioをよろしくお願いします。

Continue Reading

新しいDataStore V2 APIへの移行について

sakura.ioのサービス開始時から提供していたデータストア機能がバージョンアップし、「DataStore API」はリニューアルして「DataStore V2 API」となります。旧バージョンのDataStore APIは段階的に廃止されるので、利用されている方はお手数ですがソフトウェアの書き換えを行って頂く必要があります。料金形態・API仕様にも大きな変更がありますので、この記事で紹介させていただきます。

変更の概要

新しい「DataStore V2 API」は、以下の部分を主に変更しています。

  • JSON一括ダウンロード
  • CSVダウンロード機能
  • メッセージ閲覧対象
  • API変更
  • クエリ速度改善
  • 料金

JSON一括ダウンロード機能の追加

ブラウザ・curlコマンド等で以下のようなURLにアクセスすると、ZIPファイルがダウンロード出来ます。ZIPファイルを解凍すると1つのテキストファイルが保存されており、1行につき1つのJSONメッセージが記述されていることが確認できます。

https://api.sakura.io/datastore/v2/messages-bulk?limit=100&encoding=FILE_ZIP&token=********-****-****-****-************

(トークン部分を自身のものに置き換えてアクセスを行ってください)

この機能の追加により、低頻度なバッチ処理・バックアップ用途にご利用いただきやすくなりました。

ZIPの他に、gzipなどでの取得も可能です。詳しくは、こちらのAPIリファレンスをご覧ください。 DataStore V2 APIリファレンス

CSVダウンロード機能

「DataStore V2 API」では、コントロールパネル上でCSVをダウンロードする機能が追加されました。JSON等のメッセージを扱うのが難しかったExcel等のソフトでも読み込みしやすくなりました。

サービス連携設定を追加した後に、サービス連携設定の詳細画面に移動し、ボタンをクリックすることで本機能が利用可能です。対象のモジュール・期間・件数・チャンネル番号等を指定してダウンロードが可能となっています。速度は環境や負荷状況に大きく依存しますが、10万件あたり10~20秒程度で取得が可能であることを確認しています。

なお、この機能は古いWebブラウザ(Internet Explorer等)では利用できませんのでご了承ください。

メッセージ閲覧対象の変更

旧機能の「DataStore API」は、新しく有償プランを契約した時点で、過去のメッセージも全て閲覧が可能でした。また、モジュールの譲渡・モジュールの所属プロジェクトの変更を行うと、過去のメッセージも全て新しい所有者・プロジェクトに移動していました。

新機能の「DataStore V2 API」では、プランの契約を行った時点からメッセージの保存が始まるように変更されました。また、モジュールの譲渡・モジュールの所属プロジェクトの変更を行ってもそれまでのメッセージは移動せず、メッセージがsakura.ioに届いた時点での参加プロジェクトに保存されます。

この変更によって、製造のフェーズによってモジュールの所有者が変わるようなケースでの使い勝手が良くなりました。例えば、製品の製造・テスト・エンドユーザで会員ID/所属プロジェクトが異なるような場合は、それぞれ過去のメッセージが見えることが無くより直感的になりました。

新しい仕様では、プロジェクトを削除すると過去のメッセージも削除され閲覧できなくなりますので十分にご注意ください。

APIの変更

利用状況・理解しやすさ等を考え、以下のように複数の仕様が変更されています。

パラメータの変更

新機能の「DataStore V2 API」では、今までと同様にメッセージの単位で取得する /messages チャンネルの単位で取得する /channels の2つのAPIを用意しています。ですが、パラメータの意味・指定する値が変更されています。

機能概要 対象API V1パラメータ名 V2パラメータ名 変更点
認証・プロジェクトの選択 全て token token 変更なし
対象モジュールの指定 全て module module V2では1つのみ指定可能。指定しなかった場合はプロジェクト内の全てのモジュールを対象に。
対象のメッセージの種別の指定 /messages type V2では廃止。
対象のチャンネル番号の指定 /channels channel V2では1つのみ指定可能。
1リクエストで取得する最大数 全て size limit 名称変更。
メッセージのソート順の指定 全て order order V2では大文字の ASC DESC のみ指定可能。
取得メッセージの開始日時の指定 全て after after V2では厳密なRFC3339形式 2020-03-02T12:00:00.000+09:00 のみ受付。
取得メッセージの終了日時の指定 全て before before V2では厳密なRFC3339形式 2020-03-02T12:00:00.000+09:00 のみ受付。
複数回に分けたリクエストに利用 /messages,/channels cursor cursor 変更なし
レスポンスの変更

旧機能「DataStore API」で提供されていた meta.count meta.match フィールドは廃止されました。新機能「DataStore V2 API」では、新たに meta.has_next フィールドを追加しました。カーソルを使用して再帰的に取得する際、全てのメッセージの取得が完了したことは meta.has_next のBoolean値が false で有ることを検証してください。

クエリ速度の改善

旧機能の「DataStore API」は、内部システムの都合で若干クエリ速度に時間がかかっていました。大量にメッセージを取得する際は、大きなボトルネックになることが有りました。新機能の「DataStore V2 API」では、機能を絞ってサービスを提供する事で大幅にクエリ時間が短くなりました。

旧 DataStore API 新 DataStore V2 API
1回あたりの処理時間 745.15ms 312.60ms

※最新1件のメッセージ取得を繰り返して20回行った際の平均レスポンス時間です。他のお客様からのアクセス状況・内部システムの負荷・お客様のネットワーク環境等、様々な要因でばらつきがありますので参考値としてお考えください。

料金の変更

旧機能「DataStore API」では、閲覧期間に応じて「フリー」「ライト」「スタンダード」が提供されていました。新機能「DataStore V2 API」ではよりきめ細かく閲覧期間の設定が可能になりました。

なお、DataStore V2 APIは2020年8月11日までβ版として提供します。期間中は上記のプランを全て無償で提供します。

メッセージはプロジェクトごとのメッセージ保存上限数に達するか、保存期間を経過すると旧いメッセージから順次削除される可能性があります。

移行スケジュール

本日から新機能「DataStore V2 API」はβ提供として無償でご利用いただけます。旧機能「DataStore API」はサービス終了まで無償利用が可能となります。

日付 項目
2020年5月12日 旧機能DataStore APIの無償化・新機能DataStore V2 APIの無償提供開始
2020年8月11日 新機能DataStore V2 APIの課金開始
2022年5月30日 旧機能DataStore APIの提供を終了

最後に

今回は新しい機能の紹介をさせていただきました。
今後も既存機能の改善などを行っていく予定です。

今後とも、sakura.io をよろしくお願いします。

Continue Reading

【セキュアモバイルコネクト】cat.M1のLTEモジュール(Quectel BG96)でドコモ回線に接続できることを確認しました

IoTチームの矢野です。

2月の記事でcat.M1対応LTEモジュールにセキュアモバイルコネクトを挿して通信できることをご紹介しました。当時はドコモ回線による接続を確認することができませんでしたが、現在は接続及び通信が行えるようになっています。
動作確認済デバイス一覧にもBG96を追加済です。

検証LTEモジュール:Quectel社 BG96MA-128-SGN
検証ファームウェアバージョン:BG96MAR03A04M1G_01.003.01.003

検証方法は過去の記事をご覧ください。

AT+COPSコマンドで基地局への接続状況を確認します。PLMN番号”44010″はドコモです。

AT+COPS=1,2,"44010"
OK

AT+COPS?
+COPS: 1,2,"44010",8

 

AT+QNWINFOコマンドで現在の接続状況をさらに詳しく確認できます。
実行結果から、cat.M1でオンライン、PLMNは44010(ドコモ)、バンド19で基地局に接続していることがわかります。

//ドコモの場合
AT+QNWINFO
+QNWINFO: "CAT-M1","44010","LTE BAND 19",6100

 

PINGで疎通確認をします。

//PING確認
AT+QPING=1,"google.com",1,10
OK
+QPING: 0,"216.58.197.206",32,472,255
+QPING: 0,"216.58.197.206",32,479,255
+QPING: 0,"216.58.197.206",32,523,255
+QPING: 0,"216.58.197.206",32,524,255
+QPING: 0,"216.58.197.206",32,484,255
+QPING: 0,"216.58.197.206",32,480,255
+QPING: 0,"216.58.197.206",32,469,255
+QPING: 0,"216.58.197.206",32,486,255
+QPING: 0,"216.58.197.206",32,475,255
+QPING: 0,"216.58.197.206",32,490,255
+QPING: 0,10,10,0,469,524,486

 

Continue Reading

sakura.ioモジュールファームウェア”Version1.4.4″公開のお知らせ

本日、sakura.ioモジュールファームウェアのVersion 1.4.4を公開しましたのでお知らせします。

Version 1.4.3までのファームウェアにおいて高頻度(数十ミリ秒間隔)で送受信を行った場合、稀に通信処理が継続できなくなる現象が確認されました。

対策として、送受信処理を監視し処理継続不能な状態に陥った場合にsakura.ioモジュールを再起動し復帰させる機能を追加しました。

今までのバージョン履歴はリリースノートをご参照ください。

sakura.ioをより便利により快適にご利用いただけるよう努めてまいりますので、今後ともよろしくお願いいたします。

Continue Reading

Windows向けツール sakura.io Test を公開しました

sakura.ioの機能を簡単に試すことができるWindows向けGUIツール sakura.io Test をリリースしました。

sakura.io Testを利用することで、管理用APIを用いてプロジェクトの一覧を取得したり、WebSocket連携サービスを経由して通信モジュールとの通信を行ったりがGUI上で簡単に行えるようになります。
OSSとして公開していますので、C#が書ける方なら改造して専用ツールに転用するなどの応用も可能です。

ダウンロード

GithubのReleaseページから実行ファイルをダウンロードできます。
Releaseページを開いたら、sakuraio-test-0.1.0.zipと書かれたリンクを探し、ダウンロードしてください。

Google Chromeを使用している場合、一般的にダウンロードされていないファイルとの理由でダウンロードがブロックされることがありますが、ドロップダウンメニューから 継続 を選択することでダウンロードが継続できます。

信用できないという方はGithubからソースコードをダウンロードし、内容を確認の上ご自身の環境でビルドすることをおすすめします。
Visual Studio 2017 Communityに .NET デスクトップ開発 機能がインストールされていればビルド可能です。

使用方法

ダウンロードしたZIPファイルを解凍し、 SakuraIOTest.exe を起動することでsakura.io Testが起動します。

最低限必要な準備として、sakura.io 管理APIのTokenをsakura.io Testに入力する必要があります。

 

管理API Tokenの取得・認証

管理APIのTokenは sakura.ioのコントロールパネル で作成・表示が可能です(ログインが必要です)。
sakura.io Testの画面に表示されている取得ページへのリンクをクリックすることでもアクセス可能です。

APIキーを作成して、表示画面まで進めると以下のような画面になります。このうち TokenSecret をコピーし、それぞれsakura.io Testの対応する欄に入力してください。

TokenとSecretを入力したら、 認証 ボタンを押すことで認証処理が実行されます。
認証ボタンの左、API state の表示が 認証済み となっていれば、プロジェクト一覧取得などの管理APIを用いた機能が使用できます。

(なお、本記事内で例として使用しているToken/Secretは記事公開時点で既に無効化してあります。)

プロジェクトやモジュールの一覧取得

事前に管理API Tokenの取得・認証の手順に従ってAPIの認証を行ってください。

プロジェクトの一覧を取得 ボタンを押すと、API Tokenを作成したユーザーが持っているプロジェクトの一覧が project ドロップダウンに表示されます。
ドロップダウンでプロジェクトを選択し、 モジュール一覧取得 ボタンを押すことで、プロジェクトに所属しているモジュールの一覧が module ドロップダウンに表示されるようになります。

通信モジュールのIDコピー

モジュール一覧のうち送信先としたいモジュールが選択された状態で、 送信対象モジュールとして設定 ボタンをクリックすると右ペインの送信メッセージキュー内の 送信先モジュールID の欄にモジュールIDがコピーされます。

WebSocket 連携サービスのトークンを自動設定する

project ドロップダウンの下にある WebSocket Token自動設定 ボタンを押すと、選択されているプロジェクトにWebSocket 連携サービスが紐付いているかをチェックして、紐付いていればそれを流用、紐付いていなければAPIを利用してWebSocket連携サービスを自動で作成した上でsakura.io TestでのWebSocketテスト用に使用できるように設定を行います。

自動設定が完了すると、API Tokenなどの入力欄下にある WebSocket Token 欄にWebSocket連携サービスのトークンがコピーされます。

 

WebSocketで接続を行う

WebSocket Token 欄にトークンが入力されている状態で、隣の 接続 ボタンをクリックするとWebSocket 連携サービスとsakura.io TestがWebSocketで接続され、双方向にメッセージのやりとりが可能な状態となります。

ウィンドウ左下のステータスバーに 通信中 と表示されていればWebSocketでの接続が確立しています。

WebSocketでメッセージ送信

事前にWebSocketで接続を行うの手順に従ってWebSocketの接続を行ってください。

送信したいデータを送信メッセージキューに追加し、 WebSocketで送信 ボタンを押すことでメッセージの送信が行えます。

channelは0~127までの値を取ります。valueに送出したいデータを入力し、typeを送りたいデータの型に合わせて選択します。
valueの表記方法についてはsakura.io メッセージ仕様をご覧下さい。
ただし、本記事の執筆時点(2019/05/13)ではbyte[8]の送信に対応していません。

通信モジュールからのメッセージを受信する

事前にWebSocketで接続を行うの手順に従ってWebSocketの接続を行ってください。

WebSocketでの接続が確立している状態でsakura.io モジュールからデータが送信された場合、sakura.io Testは自動でメッセージの受信を行います。
受信内容は 受信したメッセージ のリストボックスに追加されていきます。

受信したメッセージを選択して右クリックすることで、受信したデータをクリップボードにコピーすることができます。

0, f, 28.249817, 2019-05-13T03:43:58.24665214Z
1, f, 29.553223, 2019-05-13T03:43:58.25865214Z
2, I, 24138, 2019-05-13T03:43:58.27065214Z

のように、受信したデータをCSV形式でコピーできるので、メモ帳などに貼り付けてCSV形式で保存すればExcel等で開くことが可能になります。

無効化されているエクスポートボタン使わせてくれとかExcelに直接貼り付けるにはTSV形式でコピーする必要があるとか、いろいろ詰めが甘いところがありますがそれは今後の課題ということでお願いします。

注意点

sakura.io TestはApache License 2.0に基づき提供されているソフトウェアです。
Apache License 2.0の条件に従って、再頒布、商用利用、改造などを自由に行うことができます。

sakura.io Testに関して、一切のサポート及び保証を行いません。使い方や不具合などについてお問い合わせいただいても対応致しかねますのでご了承の上でご利用ください。
サポート等は行いませんが、PRやIssueなど、Github上でのコントリビュートは歓迎しております。
(実際の所未実装の機能が山盛りの状態でリリースしていますので、いろいろ突っ込み所はあると思います)

最後に

今までのサンプルコードがPythonなどに偏っていたので、反対に何も書かずに使えるサンプルとは何だろう、と考えた結果Windows向けGUIツールであるという結論に至りました。
コンソールアプリなどに抵抗がある方でもマウスでポチポチと手軽にお試しいただけるかと思います。

このようなサンプルコードやツールの提供をさらに推し進めていきたいと考えておりますのでご期待下さい。

Continue Reading

【セキュアモバイルコネクト】cat.M1のLTEモジュールで通信できることを確認しました

IoTチームの矢野です。
今話題のcat.M1対応LTEモジュールに、セキュアモバイルコネクトのSIMカードを挿して通信できることを確認しました。
検証時の設定と確認方法を紹介させていただきます。

cat.M1とは

LTE(4G)で通信するデバイスにはUEカテゴリという端末の通信性能を示す指標があります。この中でもcat.M1は特に電力消費量が少なく、LPWA(Low Power Wide Area)の通信方式として注目されています。通信速度を必要とせず、電池で動作するIoT機器に最適です。
cat.4 下り150Mbps/上り50Mbps
cat.3 下り100Mbps/上り50Mbps
cat.1 下り10Mbps/上り5Mbps 電力消費が少ない (sakura.io LTEモジュールなど)
cat.M1 下り0.375Mbps/上り0.375Mbps 電力消費が極めて少ない(BG96,SIM7000など)

動作を確認したLTEモジュール

どちらのモジュールも日本国内の技術基準適合証明及び技術基準適合認定を取得済みです。
・Quectel社 BG96MATEA-128-SGN 公式評価ボード(以下BG96)
→BG96のメーカーサイト
・SIMCOM社 SIM7000JC 公式評価ボード(以下SIM7000)
→SIM7000JCの国内代理店

検証方法

・PING疎通確認
・TCP折り返し通信
LTEモジュールとPCをUSBで接続し、ATコマンドポートをTeraTermで開いて手動でコマンド入力します。
検証はさくらインターネット東京支社(西新宿)で行いました。
セキュアモバイルコネクトを経由して、ソフトバンク回線及びKDDI回線で通信できることを確認しています。(セキュアモバイルコネクトは1枚のSIMで国内3つのキャリアの提供エリアおよびバンドに対応しています)

LTEモジュール毎の設定方法と通信の確認方法

セキュアモバイルコネクトのAPN名、ID、パスワードは次の通りです。
APN名:sakura
ユーザー名:なし
パスワード:なし

Quectel BG96の場合

モジュールの設定方法

AT+CGDCONTコマンドで通信方式を設定します。PDPタイプはIP、APN名はsakuraです。

AT+CGDCONT=1,"IP","sakura"
OK

 

AT+QICSGPコマンドでAPN名、ID、パスワードを設定します。APN名はsakura、ユーザー名とパスワードはなしです。

AT+QICSGP=1,1,"sakura"
OK

 

AT+COPSコマンドで接続可能な基地局をサーチします。
なおAT+COPSコマンドは、[=?]で基地局サーチ、[?]で接続状況の確認、[=]で基地局のセットを行うことができます。

AT+COPS=?
+COPS: (3,"KDDI","KDDI","44050",8),(2,"NTT DOCOMO","DOCOMO","44010",8),(1,"SoftBank","SoftBank","44020",8),(1,"KDDI","KDDI","44051",8),(1,"440 52","440 52","44052",8),,(0,1,2,3,4),(0,1,2)
OK

 

AT+COPSコマンドで接続したいキャリアを指定して接続します。オートモードに設定するとどこにも接続できないので、必ずマニュアルモードで接続先PLMN番号を指定する必要があります。モードは1(PLMNをマニュアル選択)、フォーマットは2(数字でPLMN番号を指定)、オペレータはPLMN番号を指定します。接続が成功してOKが表示されるまでEnterを押さないでください。(押すとCOPSコマンドがキャンセルされます)

AT+COPS=1,2,"44020"
OK

 

1回目のAT+COPSでエラーとなることが良くあります。2回目はほぼ成功します。(モジュール側の問題です)

AT+COPS=1,2,"44020"
+CME ERROR: 30

 

AT+COPSコマンドで基地局への接続状況を確認します。PLMN番号”44020″はソフトバンクです。
接続が成功していれば、COPSの結果に接続先のPLMN番号が表示されます。

AT+COPS?
+COPS: 1,2,"44020",8

 

AT+COPS?の結果が1になる場合は接続に失敗しています。SIMカードが正しく刺さっているか、セキュアモバイルコネクトのコントロールパネルで接続先のキャリアを許可しているかを確認してください。

AT+COPS?
+COPS: 1

 

AT+QNWINFOコマンドで現在の接続状況をさらに詳しく確認できます。
実行結果から、cat.M1でオンライン、PLMNは44020(ソフトバンク)、バンド1で基地局に接続していることがわかります。

//ソフトバンクの場合
AT+QNWINFO
+QNWINFO: "CAT-M1","44020","LTE BAND 1",475

//KDDIの場合
AT+QNWINFO
+QNWINFO: "CAT-M1","44051","LTE BAND 18",5900

 

PING疎通確認

AT+QPINGコマンドでPINGを打つことができます。この実行結果からDNSでIPアドレスが引けて、PINGが返ってきてることが確認できます。

AT+QPING=1,"google.com",1,10
OK
+QPING: 0,"172.217.27.78",32,93,255
+QPING: 0,"172.217.27.78",32,73,255
+QPING: 0,"172.217.27.78",32,79,255
+QPING: 0,"172.217.27.78",32,85,255
+QPING: 0,"172.217.27.78",32,75,255
+QPING: 0,"172.217.27.78",32,79,255
+QPING: 0,"172.217.27.78",32,79,255
+QPING: 0,"172.217.27.78",32,81,255
+QPING: 0,"172.217.27.78",32,79,255
+QPING: 0,"172.217.27.78",32,79,255
+QPING: 0,10,10,0,73,93,79

 

TCP折り返し通信

受信した文字列を返信するだけのサーバに文字列”SAKURA Internet”を送信して、同じ文字列が返ってくることを確認します。

AT+QIOPENコマンドで折り返し通信サーバーへ接続します。

AT+QIOPEN=1,0,"TCP","***.***.***.***",54321,0,1
OK
+QIOPEN: 0,0

 

AT+QISTATEコマンドでTCPコネクションを確認します。

AT+QISTATE=1,0
+QISTATE: 0,"TCP","***.***.***.***",54321,30356,2,1,0,1,"usbmodem"

 

AT+QISENDコマンドでサーバーに文字列を送信します。今回は”SAKURA Internet”で15文字送信しました。送信後に同じ文字列を受信したことを確かめます。

AT+QISEND=0,15
> SAKURA Internet
SEND OK

+QIURC: "recv",0,15
SAKURA Internet

 

AT+QICLOSEコマンドでTCPコネクションをクローズします。

AT+QICLOSE
OK

BG96の設定及び検証方法は以上になります。

 

SIMCOM SIM7000の場合

モジュールの設定方法

AT+CGDCONTコマンドで通信方式を設定します。PDPタイプはIP、APN名はsakuraです。

AT+CGDCONT=1,"IP","sakura"
OK

 

AT+CSTTコマンドでAPN名、ID、パスワードを設定します。APN名はsakura、ユーザー名とパスワードはなしです。

AT+CSTT="sakura"
OK

 

AT+COPSコマンドで接続可能な基地局をサーチします。
なおAT+COPSコマンドは、[=?]で基地局サーチ、[?]で接続状況の確認、[=]で基地局のセットを行うことができます。

AT+COPS=?
+COPS: (1,"440 10","440 10","44010",7),(2,"440 20","440 20","44020",7),(1,"440 51","440 51","44051",7),(1,"440 52","440 52","44052",7),(3,"440 50","440 50","44050",7),,(0,1,2,3,4),(0,1,2)
OK

 

AT+COPSコマンドで接続したいキャリアを指定して接続します。オートモードに設定するとどこにも接続できないので、必ずマニュアルモードで接続先PLMN番号を指定する必要があります。モードは1(PLMNをマニュアル選択)、フォーマットは2(数字でPLMN番号を指定)、オペレータはPLMN番号を指定します。接続が成功してOKが表示されるまでEnterを押さないでください。(押すとCOPSコマンドがキャンセルされます)

AT+COPS=1,2,"44020"
OK

 

1回目のAT+COPSでエラーとなることが良くあります。2回目はほぼ成功します。(モジュール側の問題です)

AT+COPS=1,2,"44020"
ERROR

 

AT+COPSコマンドで基地局への接続状況を確認します。PLMN番号”44020″はソフトバンクです。
接続が成功していれば、COPSの結果に接続先のPLMN番号が表示されます。

AT+COPS?
+COPS: 1,0,"440 20 SAKURA Internet",7

 

AT+COPS?の結果が1になる場合は接続に失敗しています。SIMカードが正しく刺さっているか、セキュアモバイルコネクトのコントロールパネルで接続先のキャリアを許可しているかを確認してください。

AT+COPS?
+COPS: 1

 

AT+CPSIコマンドで現在の接続状況をさらに詳しく確認できます。
実行結果から、cat.M1でオンライン、PLMNは44020(ソフトバンク)、バンド1で基地局に接続していることがわかります。

//ソフトバンクの場合
AT+CPSI?
+CPSI: LTE CAT-M1,Online,440-20,0x183C,10555906,372,EUTRAN-BAND1,475,4,4,-5,-79,-58,14

//KDDIの場合
AT+CPSI?
+CPSI: LTE CAT-M1,Online,440-51,0x1079,33909762,342,EUTRAN-BAND18,5900,3,3,-4,-55,-34,24

 

AT+CIICRコマンドで無線通信を有効化します。

AT+CIICR
OK

 

AT+CIFSRコマンドでIPアドレスを確認します。

AT+CIFSR
10.20.30.7

 

PING疎通確認

AT+CIPPINGコマンドでPINGを打つことができます。この実行結果からDNSでIPアドレスが引けて、PINGが返ってきてることが確認できます。

AT+CIPPING="google.com",10
+CIPPING: 1,"172.217.31.142",91,54
+CIPPING: 2,"172.217.31.142",68,54
+CIPPING: 3,"172.217.31.142",79,54
+CIPPING: 4,"172.217.31.142",79,54
+CIPPING: 5,"172.217.31.142",79,54
+CIPPING: 6,"172.217.31.142",79,54
+CIPPING: 7,"172.217.31.142",79,54
+CIPPING: 8,"172.217.31.142",79,54
+CIPPING: 9,"172.217.31.142",79,54
+CIPPING: 10,"172.217.31.142",79,54
OK

 

TCP折り返し通信

受信した文字列を返信するだけのサーバに文字列”SAKURA Internet”を送信して、同じ文字列が返ってくることを確認します。

AT+CIPSTARTコマンドで折り返し通信サーバーへ接続します。

AT+CIPSTART="TCP","***.***.***.***","54321"
OK

CONNECT OK

 

AT+CIPSENDコマンドでサーバーに文字列を送信します。今回は”SAKURA Internet”で15文字送信しました。送信後に同じ文字列を受信したことを確かめます。

AT+CIPSEND
> SAKURA Internet
SEND OK
SAKURA Internet

 

AT+QICLOSEコマンドでTCPコネクションをクローズします。

AT+CIPCLOSE
CLOSE OK

SIM7000の設定及び検証方法は以上になります。

最後まで読んで頂きありがとうございました。

Continue Reading

【sakura.io】イベントアラート機能をリリースしました

概要

sakura.ioのプラットフォーム開発担当の藤原です。
今回は先日リリースした「イベントアラート」機能の紹介をさせていただきたいと思います。

イベントアラートとは何か?

ユーザ様に

  • モジュールの接続が失われる
  • モジュールの通信回数が一定数を上回る

などの条件を定義していただき

  • メール
  • Slack

といった方法で通知を受け取ることができます。

なぜこの機能があると良いのか?

たとえば下記のようなことができるため、より簡単にモジュールの管理が可能です。

  • モジュールの電源が切れてオフラインになる
  • 異常な回数を通信しているモジュールを発見できる

イベントアラートが無かったらどうだったのか?

今までは、接続が切れた際に以下のいずれかの作業を行う、もしくはお客様側で通知の開発を行う必要がありました。

  • sakura.ioコントロールパネルから確認
  • モジュールの接続状態を物理的に確認
  • DataStore API で確認


イベントアラートを利用するとどうなるか?

イベントアラートを作成し、接続が切れた際に自動的にメールやWebhookを受け取ることができます。


設定画面

下記のような設定画面からイベントアラートを作成可能です。

その他の設定パターン

上記で例に挙げているのは、接続が切れたパターンのみですが、「一定時間内の通信回数の監視」も可能です。
具体的には下記のようなことが該当します。

  • モジュールAに対して、B時間(1 ~ 24)の中で、C回通信を行った場合に通知を送信

使い方について

詳細な設定方法については下記リンク先をご覧ください。

イベントの発生時に通知を設定

まとめ

今回はイベントアラート機能の紹介させていただきました。
sakura.ioは開発・運用の中でお客様の手間を減らし、本質的な作業に集中できる機能を今後も提供させていただたいと思います。

今後とも、sakura.ioをよろしくお願いします。

Continue Reading
Close Menu