LILYGO® TTGO T-PCIEを購入

概要

LTEモジュール搭載可能なESP32のTTGO T-PCIEがやっと届いたので、紹介したいと思います。この商品はPCIEソケットを採用しているため、LTEモジュールを差し替えて利用することができます。発売当初に、日本の技適付きモジュールも発売してほしいとリクエストしたところ、公式サイトの人が検証して追加してくれました!

商品

上記のもので、本体が千円、LTEモジュールが4千円ちょっとに送料で6千円ぐらいです。比較的このてのLTEモジュール搭載マイコンだと安いと思います。

似たようなものだとWio LTEがありますが、あっちは1万円ぐらいですね。

中国からなので、上記みたいな荷姿で届きました。

他にもいろいろ購入したので、検証が終わったら紹介したいと思います。TTGOはシンガポールポスト経由で配送して、今回は2ヶ月弱かかっています。少し早くなったと思ったのですがシンガポールポストがまた遅くなってきています。

付属品と注意点

今回、LTEモジュールを1つと、基板のみを2つ購入しました。LTEモジュールが固定された状態と基板のみでとどきましたが、基板のみではLTEモジュールと止めるためのネジが付属していません。そして、リポバッテリーのケーブルは基板のみのほうにしか入っていませんでした、、、

LTEアンテナとGPSアンテナはLTEモジュールに付属していますが、このLTEアンテナが本当に技適取得時のアンテナかは謎です、、、

技適の申請資料をみても、添付がないのでアンテナがわからないです、、、

このへんものすごくグレーな感じなので、正式に使う場合にはLTEモジュールの製造元であるSIMComに確認をする必要があります。もしくは国内代理店経由で購入したほうが安全だと思いますが、個人だと難しいかな?

情報

オフィシャルの情報は上記になります。ただし、このサンプルスケッチでは動きませんでした。データシートを元にある程度解析しながら動かす必要がありそうです。

検証用スケッチ

#define SerialMon Serial
#define SerialAT Serial1

#define PIN_TX                  27
#define PIN_RX                  26
#define UART_BAUD               115200
#define PWR_PIN                 4
#define LED_PIN                 12
#define POWER_PIN               25
#define IND_PIN                 36

void setup()
{
  // Set console baud rate
  SerialMon.begin(115200);
  delay(10);

  // Onboard LED light, it can be used freely
  pinMode(LED_PIN, OUTPUT);
  digitalWrite(LED_PIN, LOW);

  // POWER_PIN : This pin controls the power supply of the SIM7600
  pinMode(POWER_PIN, OUTPUT);
  digitalWrite(POWER_PIN, HIGH);

  // PWR_PIN : This Pin is the PWR-KEY of the SIM7600
  // The time of active low level impulse of PWRKEY pin to power on module , type 500 ms
  pinMode(PWR_PIN, OUTPUT);
  digitalWrite(PWR_PIN, HIGH);
  delay(500);
  digitalWrite(PWR_PIN, LOW);

  delay(3000);

  SerialAT.begin(UART_BAUD, SERIAL_8N1, PIN_RX, PIN_TX);
}

void loop()
{
  while (Serial.available()) {
    String command = Serial.readStringUntil('\n');
    Serial.print(">");
    Serial.println(command);
    SerialAT.println(command);
  }
  while (SerialAT.available()) {
    Serial.write(SerialAT.read());
  }
}

スケッチ例から最低限必要そうな初期化を実施し、その後シリアルモニタよりATコマンドを実行するためのスケッチです。あとは実際にATコマンドを投げてみて、動作を確認していきます。

接続の流れ

初期化待ち

最初にモジュールのリセットを行いますので、起動するまで待つ必要があります。

RDY

+CPIN: READY

SMS DONE

PB DONE

上記の文字が表示されたら初期化が終了しています。使っているのはドコモのNANOサイズのデータ専用SIMでMVNOブランドのものになります。

[動作確認]AT

AT

OK

ATコマンドは確認用で、とりあえずOKが返って来ないとちゃんと利用することができません。

[情報表示]ATI

ATI

Manufacturer: SIMCOM INCORPORATED
Model: SIMCOM_SIM7600JC-H
Revision: SIM7600JC-H_V1.1
IMEI: 8639490405482??
+GCAP: +CGSM

OK

とりあえず情報を表示するATコマンドを実行して、つながっているモジュールを確認してみます。

[電場番号確認]AT+CNUM

AT+CNUM

+CNUM: "","080870337??",129


OK

SIMが認識されているのかを確認します。

[電波状況確認]AT+CSQ

AT+CSQ

+CSQ: 23,99

OK

この値が低い場合にはアンテナがちゃんと接続されていませんので確認します。ちなみにMAINと書かれている場所に接続されるはずです。

[基地局確認]AT+COPS=?

AT+COPS=?

+COPS: (2,"NTT DOCOMO","DOCOMO","44010",7),...

ちょっと時間がかかりますが、周りの基地局がみえます。

[APN設定]AT+CGDCONT=1,”IP”,”APN名”

AT+CGDCONT=1,"IP","APN名"

OK

接続先のAPNを設定します。

[認証追加]AT+CGAUTH=1,3,”アカウント名”,”パスワード”

AT+CGAUTH=1,3,"アカウント名","パスワード"

認証情報を追加します。1,3の3でPAP or CHAPを指定しています。通常この設定であれば大抵のSIMが接続するはずです。

[接続確認]AT+CPSI?

AT+CPSI?

+CPSI: LTE,Online,440-10,...

これでオンラインになっていれば接続されています。

[DNS確認]AT+CDNSGIP=”www.google.com”

AT+CDNSGIP="www.google.com" 

+CDNSGIP: 1,"www.google.com","172.217.174.100"

OK

DNSを引くことができました!

[PING確認]AT+CPING=”www.baidu.com”,1,4,64,1000,10000,255

AT+CPING="www.baidu.com",1,4,64,1000,10000,255

OK

+CPING: 1,119.63.197.139,64,54,255

+CPING: 1,119.63.197.139,64,60,255

+CPING: 1,119.63.197.139,64,53,255

+CPING: 1,119.63.197.139,64,53,255

+CPING: 3,4,4,0,53,60,54

最後の行がわかりにくいですが、これで成功のようです。

HTTP通信をしてみる

上記にデータシートがたくさんあったので、HTTPをためしてみます。他に使うのはMQTTぐらいかな?

AT+HTTPINIT

OK
>AT+HTTPPARA="URL","http://httpbin.org/ip"
AT+HTTPPARA="URL","http://httpbin.org/ip"

OK
AT+HTTPACTION=0

OK

+HTTPACTION: 0,200,33
AT+HTTPHEAD

+HTTPHEAD: DATA,224
HTTP/1.1 200 OK
Date: Thu, 10 Sep 2020 14:08:03 GMT
Content-Type: application/json
Content-Length: 33
Connection: close
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true


OK
AT+HTTPREAD=0,100000

OK

+HTTPREAD: DATA,33
{
  "origin": "??.??.??.??"
}

+HTTPREAD:0

結果だけですが、HTTPINITで初期化してからHTTPPARAでURLをセット。HTTPACTIONでGETを実行して、HTTPHEADでヘッダーを表示。HTTPREADで取得した内容を0バイト目から最大100000バイトまで表示しています。

今回利用したURLは接続しているIPアドレスを表示するページになります。

まとめ

自分のIPアドレスを表示するAT+CNETIPADDR?というATコマンドがあるのですが、動きません、、、

現状のところTTGO T-PCIE自体は非常に安いのでおすすめですが、安心して使えるモジュールがありません。PCIE接続のLTEモジュールが全部使えるのかというと使えず、UARTのピン互換のものだけになると思います。

SIM7600JCと確実に技適に対応しているアンテナをどこかで販売してくれればいいのですが、この手の商品を個人に売ってくれるお店ってほとんどないんですよね。

コメントする

メールアドレスが公開されることはありません。

管理者承認後にページに追加されます。公開されたくない相談はその旨本文に記載するかTwitterなどでDM投げてください。またスパム対策として、日本語が含まれない投稿は無視されますのでご注意ください。