Posted at

Wio LTE 開発で知っておいた方がいい話と、EC21-JへATコマンドを送る方法

More than 1 year has passed since last update.

先日から発売が開始された Wio LTE の開発で知っておいたほうがいい話と、載っている LTE Cat.1 モデム EC21-J をチョットいじりたい人向けのエントリーです。


Wio LTE について

Wio LTE は Seeed Studioさん が作っている


  • STM32F4マイコン

  • LTE Cat.1 モデム && nanoSIMスロット && 技適OKアンテナ

  • Grove コネクタ 6つ (Digital:2 Analog:2 I2C:1 UART:1)

を搭載しているIoTのプロトタイプ向けデバイスです。

※「Wio Tracker」や「Wio Node」じゃないです。お間違いなく。


Wio LTE 開発で知っておいたほうがいい事


シリアルコンソールの使い方

Arduino UNO では Serial を使って、例えば Serial.println(String); のようにシリアルコンソールに出力していましたが、Wio LTE は SerialUSB を使います。

SerialUSB.println(String); というように、メソッドは同じモノが使えます。


LTE Cat.1 モデム(EC21-J)の扱い方

EC21-J は Serial1 として扱うことができます。電源ONの後、初期化処理を行った後であればATコマンドを入れることができます。(それまでは受け付けてくれません)

初期化処理は https://github.com/SeeedJP/WioLTEforArduino で定義されているメソッドを使うのが一番楽です

また、上記二つのメソッドを実行するとエコーバックがOFFになるため ATE1 でエコーバックをONにしておくと色々捗ります

ATコマンドリファレンスはQUECTELさんから入手してください(たぶんIDとか作る必要がある...かな?)


上記をやってくれるスケッチ

用意しておきました。


WioLTE-J_EC21-J_AT_debug.ino


#define BAUDRATE 9600

#define CONSOLE SerialUSB
#define EC21J Serial1

#include <WioLTEforArduino.h> /* https://github.com/SeeedJP/WioLTEforArduino */
WioLTE Wio;

void setup() {
CONSOLE.begin(BAUDRATE);
Wio.Init();
Wio.PowerSupplyLTE(true);
delay(5000L);
if (!Wio.TurnOnOrReset()) {
CONSOLE.println(F("### ERROR! ###"));
return;
}
delay(3000L);
EC21J.write("ATE1"); // echo back ON
EC21J.write(0x0d); // send CR
CONSOLE.println(F(">> Waiting for AT command"));
}
void loop() {
if (EC21J.available()) {
CONSOLE.write(EC21J.read());
}
if (CONSOLE.available()) {
EC21J.write(CONSOLE.read());
}
}


同じもの → https://gist.github.com/ma2shita/8a3a977223fd7f3154d4f38c75e29e49


実行結果サンプル

モデム内に格納されているAPN一覧を見る AT+CGDCONT? を実行した時の様子

>> Waiting for AT command

+CPIN: READY

+QUSIM: 1

+QIND: SMS DONE

+QIND: PB DONE

OK
AT+CGDCONT?
+CGDCONT: 1,"IPV4V6","internet","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0
+CGDCONT: 2,"IPV4V6","","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0
+CGDCONT: 3,"IPV4V6","ims","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0
+CGDCONT: 4,"IPV4V6","","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,1

OK

※Waiting for AT command の後の +CPIN... とかを抑制できないものか。。。ちょっとカッコ悪いですよねぇ。。。


あとがき

今日は土曜日。