gpt4 book ai didi

ssl - 如何使用 SSL 将 sim800l 连接到代理?

转载 作者:行者123 更新时间:2023-12-04 22:35:00 24 4
gpt4 key购买 nike

我正在尝试连接到托管在 AWS 上的蚊子经纪人,在端口 8883 上,但到目前为止我还没有成功。
我正在使用 TinyGSM 和 PubSubClient 库。
GSM 模块连接到互联网,并且在没有 SSL 的代理中完美运行。但是当我尝试切换到 SSL 时,他无法连接,并且 MQTT 客户端返回 -2。但是这个错误不是很清楚,可以看到here在 PubSub 文档中。

#define MQTT_CONNECT_FAILED -2


这些是它为尝试连接到代理而执行的 AT 命令
AT+CIPRXGET=4,0

+CIPRXGET: 4,0,0

OK
AT+CIPSTATUS=0

+CIPSTATUS: 0,0,"TCP","3.13.162.221","8883","CLOSED"

OK
* Trying to connect to the MQTT Broker: <broker_url>
AT+CIPCLOSE=0,1

ERROR
AT+CIPSSL=1

OK
AT+CIPSTART=0,"TCP",<broker_url>,8883

OK
Failed to reconnect to the broker.
Status: -2
代码中一些有用的部分
void setupGSM() {
SerialMon.println("Setup GSM...");

modem.sendAT("+SSLOPT=1,1");
if (modem.waitResponse() != 1) {
SerialMon.printf("modem +SSLOPT=1,1 failed");
}
while (!modem.gprsConnect(APN, APN_USER, APN_KEY)) {
SerialMon.println("GPRS Connection Failed");
modem.restart();
delay(1000);
}
SerialMon.println("GPRS Connection Success");
}

void reconnectMQTT() {
while (!MQTT.connected()) {
SerialMon.print("* Trying to connect to the MQTT Broker: ");
SerialMon.println(BROKER_MQTT);
initMQTT();

if (MQTT.connect(ID_MQTT, MQTT_USERNAME, MQTT_KEY)) {
SerialMon.println("Successfully connected to the MQTT broker!");
MQTT.subscribe(RECEIVED_CREDITS);
}
else {
SerialMon.println("Failed to reconnect to the broker.");
SerialMon.print("Status: ");
SerialMon.println(MQTT.state());
delay(2000);
}
}
}
问题是,如何使用 sim800l 模块通过 SSL 连接到 MQTT 代理?
信息 :
调制解调器:SIMCOM_SIM800L R14.18
主处理器板:TTGO-T-Call ESP32
TinyGSM 版本:0.10.5

最佳答案

AWS IoT 代理需要使用 SSL 客户端证书。

关于ssl - 如何使用 SSL 将 sim800l 连接到代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63307495/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com