我从 waveshare 订购了 SIM7020 NB-IoT HAT,并尝试使用 wiki 中的示例打开 HTTP 连接。
我使用以下AT命令将设备连接到NB-IoT网络:
AT+CFUN=0
AT*MCGDEFCONT="IP","iot.1nce.net"
AT+CFUN=1
AT+CBAND=8
AT+COPS=1,2,"26201"
AT+CIPPING="61.135.169.121"
命令
AT+CSQ
由 +CSQ: 9,0
应答,因此网络信号可用。我还在 SIM 卡提供商的在线门户中检查了 SIM 卡的在线状态,该卡显示为在线。
现在我使用 wiki 中的以下命令来打开连接:
AT+CHTTPCREATE="https://www.waveshare.com/"
+CHTTPCREATE: 0
OK
AT+CHTTPCON=0
ERROR
这里出了什么问题?我怎样才能找出问题所在?
更新
启用错误消息不会提供任何附加信息。
OK
AT+CHTTPCON=0
ERROR
我还添加了
CEREG
的输出:
AT+CEREG?
+CEREG: 0,5
更新2
SIM卡由1nce寄出。 APN 由 1nce 交付(SIM 包含一张带有 APN 的小卡)。
ping 的响应如下:
AT+CIPPING="61.135.169.121"
OK
+CIPPING: 1,61.135.169.121,5,40
+CIPPING: 2,61.135.169.121,5,40
+CIPPING: 3,61.135.169.121,7,40
+CIPPING: 4,61.135.169.121,5,40
SIM 卡也在门户中标记为在线
我也无法建立MQTT连接:
AT+CHTTPCON=0
ERROR
所以这看起来像是一个普遍问题...
正如已经提到的预览原因,主要问题是不存在对 SNI 的支持。
我建议您查看 1NCE 开发者中心。食谱部分提供了使用 SIM7000G 的示例,其工作方式非常相似,可以进行比较。您可以在这里找到所有食谱:https://help.1nce.com/dev-hub/recipes 并查找 SIM7000G。
显示 HTTP post 的完整 AT 命令的示例应该会有所帮助 -> https://help.1nce.com/dev-hub/recipes/sim7000g-http-post SIM7020 适用于
我已经对此进行了实际调查,至少在尝试使用 SNI 证书(如 www.waveshare.com)与基于 Cloudflare 的主机进行 TLS 连接时,会出现错误。
使用 TLS 命令而不是 HTTP,我们会收到错误代码:-30592 -“从我们的对等方收到致命警报消息”。导致这种情况的根本原因有很多,但 SIMCOM 模块没有给出进一步的信息。一个可能的原因并且很可能是握手失败。 Cloudflare 在 TLS 握手中需要 SNI。 7020手册中没有任何关于SNI的内容。 7000 和 7080 的手册提到了它,并且需要明确启用这些模块。
基于此部分信息,我将猜测问题的答案是SIMCOM 7020 不支持 TLS 握手中的 SNI,因此与需要 SNI 出现在 TLS 握手中的服务器不兼容。与非 SNI 服务器的 TLS/HTTPS 连接似乎按预期工作。
我已向 SIMCOM 发送了有关此问题的询问,如果收到回复,我会更新。编辑:SIMCOM 对我的查询的回答是
先生您好我选择不跟进。您可以从我们的网站下载应用说明
谢谢