【セキュアモバイルコネクト】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

【セキュアモバイルコネクト】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

QRコードでの通信モジュール登録

こんにちは、sakura.io プラットフォーム開発を担当しています、潘です。

本投稿ではコントロールパネルでsakura.ioモジュールを一括登録する機能について、ご紹介したいと思います。

なぜ一括登録が必要なのか

購入した通信モジュールを登録する事で、初めてIoTプラットフォームとデータ通信できる様になります。これまでの登録フォームは、以下の様になっていました。

見たと通り、登録に必要な情報を都度入力し、一回の登録で一つのモジュールしか登録できません。
それでは大量のモジュールを登録する時は大変手間になるので、一括で登録できる様に機能追加を行いました。

一括登録する方法

こちらは機能追加したモジュールを一括登録するフォームです。

登録に必要な情報はすべて SER:Serial,ID:ModuleId,PASS:Password の様な文字列でモジュールに載せていますので、こちらを登録する際に使います。この文字列は、通信モジュールにあるQRコードをスキャンすることで、同じ文字列が取得できます。

  1. 最初は、モジュールの追加ページにある 一括 タブを選ぶと、一括登録のフォームが表示されます。
  2. そして、モジュールのQRコードから取得したデータを QRコードデータ 項目に一行ずつ記入します。
  3. 最後に、合計金額が モジュール一括追加の際の注意点 へ表示されます。よろしければ 追加 ボタンをクリックして完了します。

なお、一括登録にかかる時間は 100モジュール につき、おおよそ 5秒間 ほどです。

最後に

今回はモジュールの一括登録機能に関する背景・使用方法を説明しました。
これから、モジュールを大量にご購入のお客様は、より簡単に利用開始できるのではないかと思います。

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

Continue Reading

【セキュアモバイルコネクト】SIMルート機能をリリースしました

IoTチームの川畑です。セキュアモバイルコネクトにて新機能をリリースしましたので、その概要から使い方・利用例をご紹介します。

SIMルートで実現できること

SIMルート機能では、SIMカードのICCID(固有識別番号)をNext-Hopとした静的IPルーティングができるようになりました。利用感覚はルータに静的IPルートを設定する事と同じように、CIDR表記の宛先ネットワークアドレス(e.g. 192.168.0.0/24)と、そのNext-HopになるSIMカードをコントロールパネル上から投入するだけで簡単に利用可能です。

使い所

昨今のLTEデバイスでは、EthernetやWiFi(IEEE802.11)の機能も持つような製品がリリースされ、携帯電話のみならず様々な場面でLTEネットワークを活用できるようになっています。

所謂M2MルータやIoTゲートウェイと呼ばれるこれらの製品は、特徴としてEthernet/LTE間のL3ルーティング機能が挙げられ、Ethernetポートに設定されたネットワークと、その先のLTEネットワークをNAPTを噛まずに直接接続可能です。一般的なポケットWiFiや携帯電話のテザリング機能でも、LTEデバイス自身の配下の端末をモバイルネットワークに接続することができますが、その多くはNAPTで実現されています。ここで問題なのは、そのLTEデバイス配下の端末にLTE外の通常ネットワークから直接アクセスできないことが挙げられるでしょう。

通常のインターネット専用MVNOと違い、我々のサービスはクラウドとモバイル端末を完全に閉域で相互接続できることにあります。インターネット専用MVNOではセキュリティ上懸念されていた LTEデバイスがPort LISTENしてサーバとして動作する ような構成が安全に取れるようになるのはもちろんの事、今回のSIMルート機能では更にその配下の端末がサーバとして動作しても安全に接続できるようになりました。

モバイルネットワークの利用形態

MNOやMVNOとの契約によって、利用可能な構成が全く異なります。弊社のセキュアモバイルコネクトを使った場合も含め、SIMが入っているデバイスへのアクセスを大きく4パータンにまとめてみました。(クリックで拡大)

パターン1: 通常のMNO/MVNO

一般的に契約可能なMNOやMVNOのLTEネットワークの構成です。LTEデバイスにはプライベートIPアドレスが割り当てられ、端末からインターネットにアクセスしようとすると2段でNAPTがかかります。通常のブラウジングのような動作には全く問題無い構成ですが、LTEデバイスやその配下の端末に直接アクセスしたい場合には不向きな構成です。

パターン2: グローバルIPオプションのついたMNO/MVNO

オプション料金を支払えば、グローバルIPアドレスがLTEデバイスに割り当てられるサービスです。直接グローバルIPアドレスが付くので、LTEデバイスがPort ForwardingやDMZに対応しているものであれば、配下の端末へのアクセスはある程度可能そうです。ですが、インターネットに直接晒されているため、直接DoS攻撃に遭うなど安全性に欠ける面が多く見られます。(DoSに遭ったとき、そのまま下り通信として計算された時には大変なことに…)

パターン3: 閉域網接続可能なMNO/MVNO

コンシューマ向けではなく、法人契約をターゲットにしたプランを打ち出しているMNOやMNVOが存在します。モバイル端末をお客様のネットワーク(データセンタやオフィス)まで直接閉域網で安全にデータ通信ができる仕組みで、インターネットからのリーチや他のお客様からの攻撃を受けることはありません。この場合ですと、 NAPTだけではなくL3 Routingできるデバイスでも使えるのでは? と思いがちですが、LTE網にデバイスをアタッチしたときに割り当てられるプライベートIPアドレスは、基本的に動的です。加えて、通常はパケットの宛先がLTEデバイスに付与したIPアドレスのときのみに通信が成立するようになっており、それ以外(ここではデバイス配下のネットワーク)の宛先のパケットは捨てられてしまいます。

パターン4: セキュアモバイルコネクト


弊社のサービスですが、上記3パターンの問題を解消しています。モバイルゲートウェイ(お客様のLTEデバイスを収容するアプライアンス)をキャリアと同じ感覚でお客様に操作して頂けるように作っており、端末に割り当てるIPアドレスをSIMカード毎に好きな値に固定できますし、インターネット接続も任意(デフォルトはOFF)に可能です。 今回リリースしたSIMルート機能についても、IPアドレスではなくICCIDをNext-Hopとすることで、端末(SIM)に割り当てるIPアドレスが変更されても、必ずそのSIMカードの先にStatic Routeが設定された状態が担保されます。

まとめ

SIMへのアクセスを観点に、簡単に表にまとめてみました

パターン メリット デメリット
パターン1 安価でキャリア選択肢が豊富 キャリア側でNAPTされる
SSH Reverse TunnelもしくはIPsecが必要
パターン2 安価でキャリア選択肢が豊富
デバイスに直接アクセス可能
インターネットからの攻撃に巻き込まれやすい
IPアドレスが変動する可能性が高い
パターン3 インターネットからの攻撃に巻き込まれない
デバイスに直接アクセス可能
IPアドレスが変動する可能性が高い
パターン4 IMSIとIPアドレスの1:1対応が可能
デバイスに直接アクセス可能
デバイスを超えてのルーティング設定が可能
特になし

最後に

今回リリースしたSIMルート機能の概要と、その使い方やモバイルネットワークの特徴・利用例をお伝えしました。SIMルートについては、その独自性について特許出願中です!本機能の具体的な設定方法については公式ドキュメントに掲載しておりますので、SIMルートドキュメントを御覧ください。今後とも、sakura.ioならびにセキュアモバイルコネクトを宜しくおねがいします!

Continue Reading

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

sakura.ioモジュールのファームウェア開発を担当しています奥原です。
本日、sakura.ioモジュールファームウェアのVersion 1.4.2を公開しましたのでお知らせします。

Version 1.4.0から1.4.1が動作しているモジュールでSPIの推奨クロックである350kHzを超える設定で使用した際にパリティエラー等が発生し通信が不安定になっていました。
本バージョンでは1MHz以上のクロックで動作させた際のSPI通信の安定性が改善しました。

Version 1.4系でSPIをご利用されている場合は更新をお勧めいたします。

あわせてArduinoライブラリの更新を行いVersion 1.1.4になっておりますので更新をお勧めいたします。

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

Continue Reading

通信量の可視化機能をリリースしました

こんにちは、 sakura.io のプラットフォーム開発を担当しています、上條です。

コントロールパネルのリニューアルによって、モジュールの通信量が分かりやすく表示されるようになりました。通信量を確認するページは、モジュールごと・アカウント全体の2種類用意されています。

アカウントの使用通信量

アカウント毎の通信量を確認するためには、ヘッダの アカウントの使用通信量 リンクをクリックします。 アカウントの使用通信量 のページでは、アカウントに登録されているモジュールの通信量を合算して確認することが出来ます。

モジュールの使用通信量

モジュールごとの通信量を確認するためには、モジュールが登録されているプロジェクトの詳細画面から、グラフボタンをクリックします。 モジュールの使用通信量 のページでは、月毎・日毎の通信量が確認できます。

最後に

今回のリリースによって、通信量・ポイントの消費がより直感的に分かるようになったのではないかと思います。
また、大量のモジュールをお使いのお客様は、APIをご利用いただくことで同様の情報が取得可能です。
今後とも、sakura.ioをよろしくおねがいします。

Continue Reading

sakura.io のコントロールパネルが新しくなりました

こんにちは、 sakura.io のプラットフォーム開発を担当しています、藤原です。
本投稿では、sakura.io コントロールパネルのリニューアルについてお知らせいたします。
以下が新しいコントロールパネルです。

何故リニューアルを行ったのか?

理由としては「表示が遅くなる場合があるから」 です。
旧コントロールパネルは、仮に特定のプロジェクトに 5万個モジュールなどの大量のデータが登録されていた場合に、全てのモジュールを取得するようになっておりました。

新コントロールパネルでは、同様の条件で 分割して モジュールの情報を返すように変更されました。
一般的に言われる「ページネーション」の適用になります。

ページネーションにより

  1. サーバサイド側の SQL の削減、オブジェクト生成
  2. クライアントサイドのオブジェクトの生成

が、削減され体感描画速度が向上しました。

ページネーションによる管理 API の利用方法

ページネーションの導入により、管理 API の v2 を今回開発しました。
もちろん、以前の 管理 API v1 は今後もご利用いただけます。
これから管理 API v2 の実際の利用方法について示します。
管理 API 呼び出しに際する API Token と API Secret の取得は、管理API 利用ガイド を参考にしてください。
今回はモジュールのリストを取得してみることにします。

管理 API v1

$ curl -XGET  --header 'Accept: application/json' --user '{api token}:{api secret}'   'https://api.sakura.io/v1/modules/'

このようなリクエストを送ると、下記のようなレスポンスデータが返却されます。

[
{
"id": "1",
"name": "",
"project": 1,
"is_online": false,
"serl_number": "*********",
"model": "test-model"
},
{
"id": "2",
"name": "",
"project": 1,
"is_online": false,
"serial_number": "*********",
"model": "test-model"
},
...
]

管理 API v2

次に、ページネーションを用いた場合のデータの取得方法について解説します。
変更点としては、下記になります。

  1. アクセスする URL
  2. cursor を用いてリクエストを送信

アクセスする URL

アクセスする URL は下記のように変更になります。

https://api.sakura.io/v1/modules/ => https://api.sakura.io/v2/modules/

cursor を用いてリクエストを送信

こちらは実例を交えながら後述します。
それでは実際にアクセスして情報を取得してみましょう。

$ curl -XGET  --header 'Accept: application/json' --user '{api token}:{api secret}'   'https://api.sakura.io/v2/modules/'

このとき、以下のような結果が表示されます。

{
"meta": {
"per_page": 100,
"links": {
"next": "https://api.sakura.io/v2/modules/?cursor=bbbbbbbbbb",
"previous": null
}
},
"results": [
{
"id": "1",
"name": "",
"project": 1,
"is_online": false,
"serial_number": "*********",
"model": "test-model"
},
...
]
}

このとき、 1 ~ 100件目が表示されました。
101 件目以降を表示したい場合には、 先程前述した 「cursor を用いてリクエストを送信」 を利用します。
レスポンスの next の URL にリクエストを投げます。

$ curl  -XGET --header 'Accept: application/json' --user '{token}:{secret}' "https://api .sakura.io/v2/modules/?cursor=bbbbbbbbbb"

実際に投げると、下記のようにレスポンスが帰ってきて、101 件目以降が表示されました。

{
"meta": {
"per_page": 100,
"links": {
"next": "https://api.sakura.io/v2/modules/?cursor=aaaaaaaaaaa",
"previous": "https://api.sakura.io/v2/modules/?evcursor=ccccccccc"
}
},
"results": [
{
"id": "101",
"name": "",
"project": 1,
"is_online": false,
"serial_number": "********",
"model": "test-model"
},
...
]
}

cursor を用いてリクエストを送信」を繰り返しますと、最終ページにたどり着きます。
最終的に next が null になると、最終ページとなります。
具体的には下記のようなレスポンスが帰ってきた場合です。

{
"meta": {
"per_page": 100,
"links": {
"next": null,
"previous": "https://api.sakura.io/v2/modules/?cursor=yyyyyyyyyyy"
}
},
"results": [
{
"id": "50000",
"name": "",
"project": 1,
"is_online": false,
"serial_number": "********",
"model": "test-model"
},
...
]
}

 

最後に

コントロールパネルのリニューアルとその背景について解説させていただきました。
今回のリニューアルにより、大量のモジュールやプロジェクトをご利用のお客様も安心してご利用いただけます。
今後とも sakura.io をよろしくお願いいたします。

Continue Reading

sakura.ioモジュール(LTE)の省電力機能

sakura.ioモジュールのファームウェア開発を担当しています奥原です。
5/7にリリースしましたファームウェアversion 1.4.0にて、実装予定機能となっていました『省電力管理機能』を追加いたしました。
既存の電力モードに『省電力管理機能』が加わり省電力機能の関係が少々複雑になりましたので、改めてsakura.ioモジュールの省電力機能についてご紹介いたします。
また、省電力機能を使用した際の実測値もご紹介いたします。

sakura.ioモジュールの電力モード

sakura.ioモジュールの電力モードは以下の図のようになります・
sakura.ioモジュール電源モード
sakura.ioモジュールには、ActiveモードとDeepSleepモードがあります。
ActiveモードとDeepSleepモードは外部のマイコンからWAKE_IN端子を制御することで切り替えます。

モード名 WAKE_IN端子 説明
Active Hi 動作状態です。
LTE経由でsakura.ioプラットフォームと接続します。
不意の切断があった場合を接続状態を維持するために自動的に再接続を行います。
データの送受信などモジュールの機能が使用できる状態です。
DeepSleep Lo 停止状態です。
消費電力は最小にするため、WAKE_IN端子の監視以外の機能を停止します。
sakura.ioプラットフォームとの接続が切断されていますので送受信は一切行えません。

さらにファームウェアのVersion 1.4.0ではSCM-LTE-01を対象にActiveモード時の待機消費電力を制御する省電力管理機能を追加しました。
省電力管理機能には

  • 省電力制御を行わない『省電力制御無効モード』
  • 無通信時にLTEモデムのスリープ機能を有効にする『自動スリープモード』

の2つのモードがあります。
モジュールの電源投入後は『省電力制御無効モード』になります。
追加された『省電力モード設定コマンド』でモードを選択します。

省電力モード名 設定値 説明
省電力機能無効 0x00 省電力制御を行いません。
従来のファームウェアと同等の振る舞いとなります。
オートスリープ 0x01 無通信時にLTEモデムをスリープさせます。

省電力機能の使い方

Arduino、python、mbedの各ライブラリに『省電力モード設定コマンド』と『省電力モード取得コマンド』を追加しました。

最新版のライブラリをご使用ください。
また、実例としてsakura.io評価基板で動作するmbedのサンプルプログラムを作成しました。
省電力機能をご使用の際のご参考になさってください。

消費電流の計測

SCM-LTE-01の電流計測
開発バージョンのsakura.io評価ボードを電流計測用に改造し、SCM-LTE-01に流れる電流を以下の機材で計測しました。

デジタルマルチメータ
KEYSIGHT 34465A
安定化電源
KIKUSUI PAK20-18A

計測の都合上、安定化電源のフィードバックを有効にしていません。
そのため、電源電圧の変化があり厳密な電流値とはなっていません。
参考値として見ていただければと思います。

DeepSleepモード

待機状態

平均電流は約10μAです。

Activeモード復帰から送信

実際の利用を想定して、DeepSleepモード→Activeモード→接続→データ送信→DeepSleepモードと遷移させたときの消費電流のグラフを以下に示します。
DeepSleepモードの電流グラフ
Activeモードに復帰してから128Byteのデータ送信を終えDeepSleepに入るまで約57秒かかっています。
この間の平均電流は約117.1mAです。
57秒のうち接続待ちが約55秒データ送信に約2秒かかっています。
Activeモードとは違い接続を維持していませんので、電源投入時と同様にLTE接続とsakura.ioプラットフォームへの接続の時間がかかります。

Activeモード(省電力制御無効)

電源投入から待機状態

モジュールの電源投入から待機状態で30分経過するまでの電流値のグラフです。
省電力制御無効モード30分待受
平均電流は71.5mA、最大電流は408.6mAです。
グラフの10分および20分周辺の消費電流の増加は、10分間隔でsakura.ioプラットフォームに送信している死活監視パケットの送信によるものです。
省電力制御無効 定常
死活監視パケット送信間の定常状態の平均電流は68.2mA、最大電流は119.0mAです。

送信

データ送信開始から定常状態に戻るまでのグラフです。
省電力管理無効 送信
約10.3秒かかっており、平均電流は131.8mA、最大電流は285.0mAです。

受信

受信開始から定常状態に戻るまでのグラフです。
省電力制御無効 受信
約10.4秒かかっており、平均電流は129.6mA、最大電流は366.2mAです。

Activeモード(オートスリープ)

電源投入から待機状態

モジュールの電源投入から待受状態で30分経過するまでの電流値のグラフです。
自動スリープモード30分待受
平均電流は14.1mA、最大電流は399.2mAでした。
オートスリープ 定常
死活監視パケット送信間の定常状態の平均電流は9.6mA、最大電流は95.0mA消費しています。

送信

送信開始から定常状態へ戻るまでのグラフです。
オートスリープ 送信
約11.2秒かかっており、平均電流は100.0mA、最大電流は375.3mAです。

受信

受信開始から定常状態へ戻るまでのグラフです。
自動スリープ 受信
約11.4秒かかっており、平均電流は106.1mA、最大電流は407.0mAです。

さいごに

sakura.ioのリリース時より、将来実装機能としていた『省電力管理機能』をお届けすることができました。
今後もより便利で使いやすいプラットフォームになるように機能追加、機能改善を続けて参りますのでよろしくお願いいたします。

Continue Reading

sakura.io 評価ボードではじめるIoT開発

本記事は、sakura.ioの利用者で、電鍵とsakura.ioを組み合わせを試みて頂いたりしている、伊勢羽様からご寄稿頂いたものになります!
こういった記事は本当にありがたいので、「何か書いてみたい!」という方がおられましたら、ぜひご連絡ください〜
※本記事内で触って頂いている検証用ボードは、これからみなさまにご提供できるかなぁ〜どうかなと言う段階のものをテストして頂いたもので、開発中のものになります。ご提供に向けて進めておりますので少々お待ちください!

導入

とあるC++プログラマのつぶやき

“最近「IoT」という言葉が流行っていて、興味はあるけど調べてみたら見たことない基板や、やったことのない電子工作の話ばかりが出てくる。いったいどこから始めればいいのだろう・・・”

はい、そんなあなたにはsakura.io Evaluation Boardがおススメです!

はじめに

mbedベースの、C++言語でIoT開発が可能なsakura.io Evaluation Board(以下、評価ボード)のリリースに先駆けまして、mbed開発未経験ながらも評価ボードを初めて手にして開発環境構築からサンプルプログラム作成まで試用させていただきましたIseba’s Laboの伊勢羽です。趣味で電子工作とC++プログラミングをしている一般的なユーザーですが、今回評価ボードでの開発過程や考えた事、作ったものについてお話をしたいと思います。

Continue Reading
  • 1
  • 2
Close Menu