4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SPRESENSE LTE拡張ボードをはじめてみよう

Posted at

Spresenseボードと拡張ボードは以前から使っていたのですが、前々から気になっていたSpresense LTE拡張ボードを新たに購入しました。SIMカードの選定や初めて動かしたときのメモを導入編として書き記しておきます。結論から言うと、公式マニュアル通りに動かせば特に何もハマることなくあっさり動きました:->

SIMカードの購入

公式サイトのLTE-M 動作確認SIM Listを参考にしつつ、いくつか調査した上でこちらを購入しました。
IIJ アイアイジェイ IM-B281 [Japan Travel SIM 1.5GB タイプ I]
https://www.yodobashi.com/product/100000001005357527/
ヨドバシ.comで2-3日で届きます。ナンカガイコクジンニナッタキブンデース。

SIM.jpg

SIMカードの登録

https://tr.iijmio.jp/login/
SIMカードに同封のPASSCODEを入れてログインします。トラベルSIMなので、登録にはパスポート番号が必要です。

早速動かしてみる

LTEチュートリアルにまとまっているのでこれをなぞるだけですぐに使えました。
https://developer.sony.com/develop/spresense/docs/arduino_tutorials_ja.html#_tutorial_lte

examples 内容
LteTestModem バージョン表示
LteScanNetworks ネットワーク開通確認
LteWebClient HTTPクライアント
LteHttpSecureClient HTTPSクライアントTLS通信
LteNtpClient NTP通信
LteGnssTracker MQTT通信

モデムの情報を取得する(LteTestModem.ino)

スケッチそのままビルドして動かすとIMEIとVersionが繰り返し表示されます。

ネットワークの情報を取得する(LteScanNetworks.ino)

SIMカードに合わせてLteScanNetworksスケッチのAPN情報を書き換えます。

LteScanNetworks.ino

// APN data
#define LTE_APN       "iijmio.jp"
#define LTE_USER_NAME "mio@iij"
#define LTE_PASSWORD  "iij"

初回の接続には1分ぐらいかかりました。(2回目以降は20秒ぐらい)
LTE拡張ボードのLED(D3)がゆっくり点滅-->その後点灯-->その後attach succeeded.のログが現れます。

シリアルモニタに以下のように表示されました。正しく接続できているようです。

IP address: 100.79.9.54
Current carrier: IIJ
Signal Strength: -104 [dBm]

HTTP GETメソッドをサーバに送信してデータを取得する(LteWebClient.ino)

さきほどと同様にLteWebClientスケッチのAPN dataを書き換えます。

LteWebClient.ino
// APN data
#define LTE_APN       "iijmio.jp"
#define LTE_USER_NAME "mio@iij"
#define LTE_PASSWORD  "iij"

シリアルモニタにココと同じArduinoロゴが表示されたら成功です!(あっさり)

TLSプロトコルを使用したHTTP Clientの動作を確認する(LteHttpSecureClient.ino)

Arduino HTTP Clientライブラリをインストールします。
さきほどと同様にLteHttpSecureClientスケッチのAPN dataを書き換えます。

LteHttpSecureClient.ino
// APN data
#define LTE_APN       "iijmio.jp"
#define LTE_USER_NAME "mio@iij"
#define LTE_PASSWORD  "iij"

https://developer.sony.com/develop/spresense/docs/arduino_tutorials_ja.html#lte_howtoexport_cert
ここの手順通りにルート証明書を取得してSDカードのCERTSフォルダに保存します。
CERT_FILEKEY_FILE はデフォルトでは使用しないので ROOTCA_FILE のみ以下の通りに書き換えます。

LteHttpSecureClient.ino
#define ROOTCA_FILE "CERTS/httpbin-org.pem"   // Define the path to a file containing CA 
                                       // certificates that are trusted.
#define CERT_FILE   "path/to/certfile" // Define the path to a file containing certificate
                                       // for this client, if required by the server.
#define KEY_FILE    "path/to/keyfile"  // Define the path to a file containing private key
                                       // for this client, if required by the server.

mbedTLSが裏で動いているようです。これもあっさり動作します。

UDPプロトコルを使用したNTP Clientの動作を確認する(LteNtpClient.ino)

Arduino NTP Clientライブラリをインストールします。
さきほどと同様にLteNtpClientスケッチのAPN dataを書き換えます。

LteNtpClient.ino
// APN data
#define LTE_APN       "iijmio.jp"
#define LTE_USER_NAME "mio@iij"
#define LTE_PASSWORD  "iij"

NTPから取得された時刻が秒単位で表示されます。時報(117)と比べると表示が1秒近くズレているような気がします。loop()関数のsleep(1);をコメントアウトすれば1秒ほどのズレはなくなりますが、それでも若干表示されるまでのタイムラグがありそうです。

AWSサーバにGNSS位置情報をPublishする(LteGnssTracker.ino)

AWSアカウントの作成は後日にします。

その他

ボードのハードウェア情報はこちらにまとまっているようです。
https://developer.sony.com/develop/spresense/docs/hw_docs_lte_ja.html

IIJのサイトにログインすればデータ利用料/残量などを確認することができます。従量課金ではなく容量制限付きなので使いすぎることもなくて安心ですが、1.5GBでどれくらい使えるのか検証していきたいと思います。LTE-Mですし1ヶ月は余裕(というか使い切れずに残ってしまいそう)です。
https://tr.iijmio.jp/support/
image.png

4
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?