NB-IoT 上的 UDP 数据包

问题描述

我正在尝试使用 SIM7020E 芯片上的 AT 命令通过 t-mobile nb-iot 网络发送 UDP 数据包。我使用 the product wiki 作为参考。我的sim卡的入门版本不支持TCP,但如果我可以成功地使用UDP进行通信,我打算稍后使用它。

我使用“nc -u -l 9999”在 RaspBerry Pi 上创建了一个 UDP 套接字。我在我的托管服务提供商上设置了 A 记录,将 dev.mydomain.com 引用到 RaspBerry Pi 的 IP 地址。我通过使用“nc -u dev.mydomain.com 9999”从我的笔记本电脑在另一个网络上发送 UDP 数据包并输入一些测试字符串来验证 portforward 和 A-record 设置,所以这一切正常。

在 4G 芯片上,我使用以下 AT 命令:

// Check network
AT+CSQ
+CSQ: 21,0

AT+CGREG?
+CGREG: 0,5

AT+copS?
+copS: 0,2,"20416",9

AT+CGCONTRDP
+CGCONTRDP: 1,5,"iot.t-mobile.nl","x.x.x.x.255.255.255.0" <-- crossed out my ip

// Create UDP socket
AT+CSOC=1,1
+CSOC: 0

// Connect socket 0 to the listening port on the RaspBerry Pi
AT+CSOCON=0,9999,"dev.mydomain.com"
OK

// Send "test"
AT+CSOSEND=0,"test"

此时我希望在 RaspBerry Pi 的命令行中看到“test”,但没有任何反应。在 T-mobile 门户中,它显示 PDP 上下文已成功激活。 此外,使用 AT*MCGDEFCONT="IP","username","password" 手动设置 APN 不起作用。

解决方法

你帮汉斯解决了吗?按照 https://www.waveshare.com/wiki/Pico-SIM7020E-NB-IoT 代码示例,我一直在忙着使用 SIM7020E。通过 CHTTPCREATE/CHTTPCON/CHTTPSEND AT cmds 成功地将 HTTP GETS 发送到服务器(而不必使用 micropython 的可怜的 urequests 库),这似乎能够通过 LTE 将数据包发送到服务器,而无需指定 TCP/UDP 等或使用一个插座。也许试一试?

遗憾的是,我有一个聪明的想法,那就是在 uart 上尝试“AT+POWD=1”cmd(本来应该关闭 7020E 的电源),现在该模块现在除了 echo AT cmds 什么也不做(仍然自动连接到 LTE网络和网络指示灯缓慢闪烁,只是不会做任何其他事情。)真可惜,否则不错的小模块。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...