1
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 1 year has passed since last update.

[IoT] esp32 + SIM7600 + TinyGSMでhttps通信

Last updated at Posted at 2022-09-05

問題

TinyGSM v0.11.5 時点ではSIM7600でHTTPS通信はできない

Screen_Shot_2022-09-05_at_10_55_01.png

解決

ATコマンドで直接やる

製造元のページよりユーザー登録してログインして、PDFをダウンロードする

  • SIM7500_SIM7600_Series_HTTP(S)_Application Note_V3.00
// 通常通りここまででIPアドレスを振られてネットに繋がる状態にしておく

// まず初期化
modem.sendAT(GF("+HTTPINIT"));
modem.waitResponse();

// URL設定(PDFにはないが、256byte分しか設定できないので注意)
modem.sendAT(GF("+HTTPPARA=\"URL\","), "\"", url, "\"");
modem.waitResponse();
// get (=0) 送信
modem.sendAT(GF("+HTTPACTION=0"));
//////////////////////////////////
// +HTTPACTION=0からの期待する返答
//////////////////////////////////
// OK
//                        <- modem.stream.available()がすぐに来ないので注意
// +HTTPACTION: 0,200,9999 // 9999はページのbyteサイズ

// response待ち
if (modem.waitResponse() != 1) { // 「OK」のパート
  // ダメなら終了
  modem.sendAT(GF("+HTTPTERM"));
  modem.waitResponse();
}

// 「modem.stream.available()がすぐに来ないので注意」パート
for (auto c = 0; c < 5000; c++) {
  if (modem.stream.available()) {
    break;
  }
  delay(1);
}

// 「+HTTPACTION: 0,200,9999」のパート
// lineを加工するなりしてステータスコードを読んだり、bodyを読み込むためのbyte lengthを確保
std::string line = "";
line.reserve(50);
while (modem.stream.available()) {
  line += (char)modem.stream.read();
}

// length は上の結果から抽出したとして
modem.sendAT(GF("+HTTPREAD=0"), ",", length);
//////////////////////////////////
// +HTTPREAD=0からの期待する返答
//////////////////////////////////
// OK
//                <- modem.stream.available()がすぐに来ないので注意
// +HTTPREAD: 9999
// GETした内容...
// +HTTPREAD: 0

// 「OK」のパート
modem.waitResponse();

// 「modem.stream.available()がすぐに来ないので注意」パート
for (auto c = 0; c < 5000; c++) {
  if (modem.stream.available()) {
    break;
  }
  delay(1);
}

// 上下を +HTTPREAD: に挟まれた形になるのでどうにか加工して中身だけ取る
std::string body = "";
body.reserve(length);
while (modem.stream.available()) {
  body += (char)modem.stream.read();
}
1
1
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
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?