6
6

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.

【作業メモ】Quectel社のLTE通信モジュールEC21の使用方法

Last updated at Posted at 2020-09-25

記事の概要

Quectel社LTE通信モジュールEC21-Jの使用方法のメモです。

EC25-Jや同社製の他通信モジュールについても適用できる点が多いと思います。

メモなので随時更新します。

モードの種類

  • Normal Operation
    • 待機
      • ネットワークを設定し、通信可能な状態
    • 通信
      • ネットワーク接続している状態。消費電力はデータ転送レートによる
  • Minimum Functionality Mode
    • 消費電力節約のために、RF機能とUSIM機能を無効にする
  • Ariplane Mode
    • 消費電力節約のために、RF機能を無効にする
  • Sleep Mode
    • 多くの機能を無効にして消費電力を最小にする
  • Power Down Mode
    • 電源を落とし、機能停止する

モードへの遷移方法

Sleep Mode

Sleep modeに遷移するには以下の手順に従う。

  1. AT+QSLK=1 コマンドをUART通信で送信して、Sleep modeを許可する
  2. DTR端子にHigh入力を保持する

Sleep modeから復帰するには以下のようにする。

  • DTR端子にLow入力を保持する

Minimum Functionality Mode

Minimum Functionality Modeに遷移するには以下の手順に従う。

  • AT+CFUN=0 コマンドをUART通信で送信する

Ariplane Mode

Ariplane Modeに遷移するには以下の手順に従う。

  • AT+CFUN=4 コマンドをUART通信で送信する

Minimum Functionality Mode / Ariplane Modeからの復帰

Minimum Functionality Mode もしくは Ariplane Modeから復帰するには以下の手順に従う。

  • AT+CFUN=1 コマンドをUART通信で送信する

再起動

設定を有効にしたまま再起動を行う。

  • AT+CFUN=1,1 コマンドをUART通信で送信する

電源ON/OFF

PWRKEY端子は電源のON/OFFスイッチになる。

  • PWRKEY端子に100msec以上のLOW期間を持つパルスを入力することで、電源がON/OFFする

もしくは、電源OFFにするだけならコマンド入力でもできる。

  • AT+QPOWD コマンドをUART通信で送信することで、電源OFFする
    • AT+QPOWD=0:緊急電源OFF
    • AT+QPOWD=1:通常電源OFF

電源ONしてから、ネットワークを使用可能になるまでは13秒待たされる。

リセット

  • RESET_N端子に150msec以上、460msec以下のLOW期間を持つパルスを入力することで、リセットする

リセットは、AT+QPOWD コマンドもしくはPWRKEY端子による電源OFFが失敗した場合に行うこと。

UTC時刻の取得

  • AT+QLTS コマンドをUART通信で送信する
$ AT+QLTS
+QLTS: "2020/09/15,05:03:56+36,0"
  • AT+CCLK? コマンドをUART通信で送信する
$ AT+CCLK?
+CCLK: "20/09/15,05:04:39+00"

GNSS

GNSSはGPSを含む衛星測位システムの総称です。
GPSだけではなく、みちびきなどを併用することで、GPSだけでは位置測定できない場所でも位置測定が可能になります。

GNSS起動

  1. AT+QGPSCFG コマンドでGNSSの設定を行う
  2. AT+QGPS=1 コマンドでGNSSを起動する

GNSS終了

  • AT+QGPS=0 コマンドでGNSSを終了する

もしくは

  • AT+QGPSEND コマンドでGNSSの設定を行う

AT+QGPS コマンドで<fixcount>を設定することで、設定時間経過時に自動終了させることもできる

GNSS位置計測

  • AT+QGPSLOC? コマンドで位置情報を取得できる。

GNSS起動時間

GNSSの起動時間は、GNSSがCold startかWarm startかHot startかで異なる。
Cold startなどの意味は以下のQ2を参照。
https://www.gpsdgps.com/qa.htm

また、XTRA Dataをダウンロードしているか、していないかでもGNSS起動時間は異なる。
qualcomm社の提供するXTRAデータをダウンロードすることで、起動後の位置計測に要する時間が短縮される。
XTRAの詳細は以下を参照。
https://www.qualcomm.com/news/releases/2007/02/12/qualcomm-introduces-gpsonextra-assistance-expand-capabilities-standalone

  • Cold Start
    • XTRAなし:35秒
    • XTRAあり:18秒
  • Warm Start
    • XTRAなし:26秒
    • XTRAあり:2.2秒
  • Hot Start
    • XTRAなし:2.5秒
    • XTRAあり:1.8秒

XTRAデータダウンロード

XTRAデータをダウンロードしてからのGNSS起動するには、例えば以下のように行う。

AT+QGPSXTRA=0
AT+QHTTPCFG="contextid",1 or  AT+QHTTPCFG="requestheader",0
AT+QHTTPURL=40,80
http://xtrapath1.izatcloud.net/xtra2.bin
AT+QHTTPGET=80 
AT+QHTTPREADFILE="UFS:xtra2.bin",80
AT+QGPSXTRA=1
AT+QGPSXTRATIME=0,"2020/11/11,11:11:11",1,1,5
AT+QGPSXTRADATA="UFS:xtra2.bin"
AT+QGPSXTRADATA?
AT+QGPS=1

実際のファームウェアでは、AT+QGPSXTRATIME を実行直前に、AT+QGPSCFG を実行し、それで取得した時刻データを使用している。

状態

SIMの確認

  • AT+CPIN? コマンドをUART通信で送信する
$ AT+CPIN?
+CPIN: READY

OK

デバイス情報の確認

  • ATI コマンドをUART通信で送信する

電波強度の確認

  • AT+CSQ コマンドをUART通信で送信する

1番目の引数はRSSI、2番目の引数はdBm。
値が99の場合は、検出不可を意味している。

$ AT+CSQ
+CSQ: 22,99

OK

ネットワーク

ローミングの有効化

  • AT+QCFG=“roamservice”[,<roammode>[,<effect>]] コマンドをUART通信で送信する

  • roammode:roam serviceのモード

    • 1:roam service無効
    • 2:roam service有効
    • 255:自動
  • effect:いつ有効化するか

    • 0:UE reboot後に有効化
    • 1 :コマンド実行直後に有効化

例)直ちにroam serviceを有効にする場合

$ AT+QCFG="roamservice",2,1
OK

有効な基地局の検索

  • AT+COPS=? コマンドをUART通信で送信する
$ AT+COPS=?
OK
+COPS: (3,"441 00","441 00","44100",7),(1,"440 00","440 00","44000",7),(1,"KDDI","KDDI","44051",7),(1,"KDDI","KDDI","44050",7),(1,"JP DOCOMO","DOCOMO","44010",7),(3,"440 11","440 11","44011",7),(1,"SoftBank","SoftBank","44020",7),,(0-4),(0-2)

結果は以下のフォーマットを持つ。

+COPS: (<stat> ,<oper (in <format>=0)>,””,<oper (in <format>=2)>)

+COPS: [list of supported (<stat> ,<oper (in <format>=0)>,,<oper (in =2)> )s][,,(list of supported <mode>s),(list of supported<format>s)]

  • <stat>:operator availability
    • 0 - unknown:不明な基地局
    • 1 - available:利用可能な基地局
    • 2 - current:現在の基地局
    • 3 - forbidden:使用できない基地局

基地局の登録

自動登録

  • AT+COPS=0 コマンドをUART通信で送信する

手動登録

  • AT+COPS=1[,<format>[,<oper>[,<Act>]]] コマンドをUART通信で送信する

operは基地局(Operator)。

  • mode
    • 0:自動モード。 <oper>は省略
    • 1:手動モード。 <oper>に<Act>で指定した形式で基地局を設定
    • 2:登録解除
    • 3:<format>のみを設定
    • 4:自動で登録し、それに失敗した場合に、手動で登録する。
  • format
    • 0:<oper> は16文字
    • 1:<oper>は短縮形
    • 2:<oper>は識別番号

例)手動かつ番号で基地局を指定

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

MQTT通信

1例として、SORACOM Beamサービスを利用してGCPサーバとMQTT通信でPub/Subしてみる

OPEN

AT+QICSGP=1,1,"soracom.io","sora","sora",0
AT+QIACT=1
AT+QMTOPEN=0,"beam.soracom.io",1883 
AT+QMTCONN=0,"projects/vigilant-router-xxxxxx/locations/asia-east1/registries/xxxx/devices/SOMENAME" 

SUBSCRIBE

AT+QMTSUB=0,1,"/devices/SOMENAME/commands/#",0

PUBLISH

文字数を指定しない場合

AT+QMTPUB=0,0,0,0,"/devices/SOMENAME/events"
{"Hello":"World1"}

最後にCtrl+zでPublish開始する。
マイコンなどでは、0x1aを送信すれば、Ctrl+zを入力したことになる。

文字数を指定する場合

AT+QMTPUBEX=0,0,0,0,"/devices/SOMENAME/events",18
{"Hello":"World2"}

Configuration

GCPなどに登録したデータを読み出す場合にはsubscribeコマンドと類似した以下のコマンドを用いる。

AT+QMTSUB=0,1,"/devices/SOMENAME/config",0

このコマンドを実行すると、例えば以下のように設定したデータTestConfiguration,01234567890が受信できる。

AT+QMTSUB=0,1,"/devices/SOMENAME/config",0
OK

+QMTSUB: 0,1,0,0

+QMTRECV: 0,0,"/devices/SOMENAME/config","TestConfiguration,01234567890"

一度データを受信すると、コマンドを再送信してもデータ受信できないのでご注意すること。
Configurationのデータに更新があるか、一度サーバと切断して、再接続すると、コマンド送信によりデータを再受信できるようになる。

GCPのConfiguration設定は、IoT Coreでデバイスの「レジストリ詳細」を開き、「構成を編集」からデータ入力画面に進むことができる。

デバイスの編集.png

参照

追記メモ

  • 2021/07/19
    • Configuration追加
6
6
0

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
6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?