LoginSignup
1
0

teratermマクロとマイコンを使ってUARTでコマンドを送る

Last updated at Posted at 2024-01-24

目的

LTEモデムやGPSモジュールなどをUART接続しコマンドを送るテストをする際の手順をまとめておきます
USBシリアル変換モジュールが手元にあれば直接つないでも良いですが、今回はM5AtomLiteを中継に使います 

マイコンのスケッチ

ここではESP32内蔵のM5AtomLiteを使ってPCとUSBケーブルで繋いだSerialと
GroveケーブルでUART接続機器(例えばLTEモデムやGPSモジュールなど)と繋いたSerial1間の通信を中継します

[PC] -(USBケーブル)- [M5Atom] - (groveケーブル) - [LTEモデム M5 CAT-UNIT]

SerialPassthrough.ino
void setup() {
  Serial.begin(115200);  
  Serial1.begin(115200, SERIAL_8N1, 32,26); //M5atomlite
  delay(1000);
}
void loop() {
  while (Serial1.available()) {
    Serial.write(Serial1.read());
  }
  while (Serial.available()) {
    Serial1.write(Serial.read());
  }
}

teraterm設定

設定 ‐ シリアルポート 
‐ ポート:接続してるCOM番号
‐ スピード:115200

マクロファイル

毎回直接コマンドを入力するのは面倒なのでteratermのマクロを使います
https://teratermproject.github.io/
https://teratermproject.github.io/manual/5/ja/macro/index.html
まずメモ帳等で ATtest.ttl ファイルを作成する

ATtest.ttl
timeout=5
sendln 'AT'
wait 'OK'
; コメントはセミコロンで
sendln 'AT+CPIN?'
wait 'OK'
sendln 'AT+CNACT=0,0'
wait 'OK'
sendln 'AT+CGDCONT=1,"IP","povo.jp"'
wait 'OK'
sendln 'AT+CNCFG=1,1,"povo.jp"'
wait 'OK'
sendln 'AT+CFUN=1'
wait 'OK'
sendln 'AT+CNMP=38'
wait 'OK'
sendln 'AT+CGATT?'
wait 'OK'
sendln 'AT+COPS?'
wait 'OK'
sendln 'AT+CSQ'
wait 'OK'
sendln 'AT+CPSI?'
wait 'OK'
sendln 'AT+CNACT=0,1'
wait 'OK'
sendln 'AT+CNACT?'
wait 'OK'

マクロ実行

teraterm 
‐ ファイル ‐ 新しい接続 ‐ シリアル ‐ ポート:マイコンに繋いだCOMを選択 ‐ OK
‐ コントロール ‐ マクロ ‐ 作成したATtest.ttlファイルを選択 ‐ OK

log
AT

OK
AT+CPIN?

+CPIN: READY

OK
AT+CNACT=0,0

OK

+APP PDP: 0,DEACTIVE
AT+CGDCONT=1,"IP","povo.jp"

OK
AT+CNCFG=1,1,"povo.jp"

OK
AT+CFUN=1

OK
AT+CNMP=38

OK
AT+CGATT?

+CGATT: 1

OK
AT+COPS?

+COPS: 1,0,"KDDI",7

OK
AT+CSQ

+CSQ: 23,99

OK
AT+CPSI?

+CPSI: LTE CAT-M1,Online,(略)

OK
AT+CNACT=0,1

OK

+APP PDP: 0,ACTIVE
AT+CNACT?

+CNACT: 0,1,"**.***.***.****" (IPアドレス)
+CNACT: 1,0,"0.0.0.0"
+CNACT: 2,0,"0.0.0.0"
+CNACT: 3,0,"0.0.0.0"

OK

証明書等の転送にはsendfileコマンドを使うとよさそう
(SSL接続のテストは未検証)

sendln 'AT+CFSINIT'
wait 'OK'
sendln 'AT+CFSWFILE=3,"RootCA.crt",0,1970,10000'
wait 'DOWNLOAD'
sendfile 'C:\RootCA.crt' 1
wait 'OK'
sendln 'AT+CFSRFILE=3,"RootCA.crt",0,1970,0'
wait 'OK'
sendln 'AT+CFSTERM'
wait 'OK'
sendln 'AT+CSSLCFG="convert",2,"RootCA.crt"'
wait 'OK'

バイナリーデータの送受信

こちらの記事を参照

1
0
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
1
0