【您想要实现什么功能?】:
单片机通过WH-LTE-7S4模块和外网服务器进行4G通信
【您是如何连接和设置的?】:
我还不太清楚如何设置
【您遇到什么问题?】:1、你们网站上介绍的都是用你们公司专用的软件来设置4G模块TCP连接的外网地址和端口号,但是我需要在单片机程序中用C语言设置。我看你们的教程上用如下方法进行设置:
(1)、AT+WKMOD=NET
(2)、AT+SOCKAEN=ON
(3)、AT+SOCKA=TCP,test.usr.cn,2317
(4)、AT+SOCKASL=LONG
(5)、AT+Z
请问:用这种方式设置完毕,如果系统断电重启(单片机断电重启+7S4模块断电重启),设置后是永久生效还是系统重新上电后还需要再次重复上述设置?
2、 我的外网没有域名,只有IP地址,假如外网IP地址为192.168.1.6,端口号为5000,
是不是单片机给7S4模块发送如下字符串 AT+SOCKA=TCP,192.168.1.6.5000
就可以配置7S4模块和我的外网进行TCP连接(进入透传状态)呢?
3、我如何知道7S4模块已经和外网服务器TCP连接成功(进入透传状态)了呢?
我之前用的是移远的EC20模块,当我给EC20模块发送如下字符串 AT+QIOPEN=1,0,\"TCP\",\"10.37.19.86\",5000,0,2\r\0
如果移远EC20模块返回字符串\r\nCONNECT\r\n,就表示模块和外网服务器TCP连接成功(进入透传状态)
请问:
我如何知道7S4模块什么时候和外网服务器TCP连接成功(进入透传状态)呢?判断的依据是什么呢?是不是只能依据引脚LINKA来判断TCP连接成功呢?
4、单片机运行一段时间后,有可能需要更换外网IP地址和端口号,我想用手机APP进行设置,请问:
如果当前正在TCP连接状态时(但是7S4模块当前没有处于发送报文状态),也可以通过如下方法进行设置新的IP地址吗?
(1)、AT+WKMOD=NET
(2)、AT+SOCKAEN=ON
(3)、AT+SOCKA=TCP,test.usr.cn,2317
(4)、AT+SOCKASL=LONG
(5)、AT+Z
5、当前7S4模块正在TCP连接状态(透传状态),要想更新7S4模块的IP地址和端口号, 是不是一定要先发送+++,等到7S4返回OK后,再
通过如下方法进行设置新的IP地址吗?
(1)、AT+WKMOD=NET
(2)、AT+SOCKAEN=ON
(3)、AT+SOCKA=TCP,test.usr.cn,2317
(4)、AT+SOCKASL=LONG
(5)、AT+Z
6、我怎么知道发送的报文是往SOCKETA发送还是往SOCKETB发送呢?
7、我怎么往指定的SOCKETA发送呢?
8、我怎么往指定的SOCKETB发送呢?
9、我想同时开2个SOCKET(SOCKETA和SOCKETB),应该如何给7S4发送命令呢?如何知道SOCKETA的TCP连接成功(进入透传状态)呢?
如何知道SOCKETB的TCP连接成功(进入透传状态)呢?
设置软件的设置方法您可以看一下案例http://www.usr.cn/Faq/369.html
1、只要不恢复出厂参数就不会失效
2、不可以,必须是公网IP的服务器地址
3、是否建立socket连接可以用指令查询AT+SOCKALK也可以通过link引脚的电平判断,建立后输出高电平 (1.8V),未建立连接时输出低电平.
4、可以,但是需要进入配置状态才能发指令
5、是的
6、串口的数据会同时发往两个服务器
但是WH-LTE-7S4 V2 支持套接字分发协议,可以通过特定的协议将数据发往不同的 Socket,也可以将不同 Socket 接收的数据增加包头包尾进行区分
7、8 同6
9、同3 AT+SOCKALK AT+SOCKBLK,默认都是开启的
可以看一下附件的参考demo,没有其他的C语言相关资料抱歉
附件:
基于7s4AT指令设置-V1.0.rar [4.7 MB]
1、我有外网IP地址和外网端口号,但是我没有外网域名
假如我的外网IP地址为192.168.1.6,外网端口号为5000,
是不是单片机给7S4模块发送如下字符串 AT+SOCKA=TCP,192.168.1.6.5000
就可以配置7S4模块和我的外网服务器进行TCP连接(进入透传状态)呢?
2、我的单片机每隔10分钟断电重启1次(特殊需要,采集完1次传感器数据,发送给服务器后就断电,目是省电,10分钟后会自动重启【有重启电路支持】)
每次单片机启动时,我希望按照以下步骤进行工作:
(1)、先读取网络状态(希望检测网络是否有4G信号,目的是上传给服务器进行观察分析)
(2)、然后读取信号强度(目的是上传给服务器进行观察分析)
(3)、然后让7S4和服务器进行TCP连接
请问:
是否每次都要按照如下步骤初始化7S4模块呢?
第一步:发送AT+SYSINFO
第二步:发送AT+CSQ
第三步:
(1)、AT+WKMOD=NET
(2)、AT+SOCKAEN=ON
(3)、AT+SOCKA=TCP,192.168.1.6,5000
(4)、AT+SOCKASL=LONG
(5)、AT+Z第四步:等待LINKA引脚变成高电平或者通过AT+SOCKALK指令查询
第五步:当TCP连接成功,发送数据到服务器
3、7S4模块的TCP连接断开后自动重连时间默认是多少呢?
4、是否可以在给7S4配置IP地址的时候,配置自动重连时间呢?
1、您这是一个局域网
公网IP是无论在哪个电脑上都可以ping通的
2、不恢复出厂就不用重新配置,但是需要发指令以前进入配置状态
3、默认是5S
4、重连时间是一条单独的指令比如:设置/查询 socketA 超时重连时间 AT+SOCKATO 范围1-100S
具体您看一下软件设计手册https://www.usr.cn/Down/WH-LTE-7S4%20V2_software_V1.0.4.pdf
1. 串口设备给模块发送“+++”,模块收到“+++”后,会给设备发送一个‘a’。 在发送“+++”之前的打包时间内不可发送任何数据。
2. 当设备接收‘a’后,必须在 3 秒内给模块发送一个‘a’。
3. 模块在接收到‘a’后,给设备发送“+OK”,并进入“临时指令模式”。
4. 设备接收到“+OK”后,知道模块已进入“临时指令模式”,可以向其发送 AT 指令。
5.完成at指令配置后 ,串口设备给模块发送指令“AT+ENTM”退出配置状态,或者不使用AT+ENTM而直接发送“AT+Z”重启模块时参数生效。
405tf系列socket套接字分发协议http://www.usr.cn/Faq/433.html
总结:
过了几天,亲自在STM32F407上进行了验证,单片机和LTE-7S4模块进行4G通信全过程如下
(1)、LTE-7S4模块上电复位,等待大约10秒钟。(注:如果等待LTE-7S4时间过短,当单片机给LTE-7S4模块发送“+++"指令时,LTE-7S4模块不会应答,造成以下流程无法继续走下去)
(2)、单片机给LTE-7S4模块发送“+++"指令,LTE-7S4会返回字符串“a”(注:如果没有收到字符串“a”,1秒钟内单片机不允许发送任何指令给LTE-7S4)
(3)、单片机如果收到字符串“a”,然后给LTE-7S4模块发送“a"指令,LTE-7S4会返回字符串"+ok\r\n"
当单片机收到字符串"+ok\r\n",表示LTE-7S4模块已经进入AT模式。
(4)、单片机如果收到字符串"+ok\r\n",然后给LTE-7S4模块发送"AT+WKMOD=NET\r\n"指令,LTE-7S4会返回字符串"\r\nOK\r\n\r\n"
(5)、单片机如果收到字符串"\r\nOK\r\n\r\n",然后给LTE-7S4模块发送"AT+SOCKAEN=ON\r\n"指令,LTE-7S4会返回字符串"\r\nOK\r\n\r\n"
(6)、单片机如果收到字符串"\r\nOK\r\n\r\n",然后给LTE-7S4模块发送"AT+SOCKA=TCP,218.6.144.60,5000\r\n"指令,LTE-7S4会返回字符串"AT+SOCKA=TCP,218.6.144.60,5000\r\n"
(7)、单片机如果收到字符串"AT+SOCKA=TCP,218.6.144.60,5000\r\n",然后给LTE-7S4模块发送"AT+SOCKASL=LONG\r\n"指令,LTE-7S4会返回字符串"\r\nOK\r\n\r\n"
(8)、单片机如果收到字符串"\r\nOK\r\n\r\n",然后给LTE-7S4模块发送"AT+HEARTEN=OFF\r\n"指令,LTE-7S4会返回字符串"\r\nOK\r\n\r\n"
(9)、单片机如果收到字符串"\r\nOK\r\n\r\n",然后给LTE-7S4模块发送"AT+Z\r\n"指令,LTE-7S4会返回字符串"\r\nOK\r\n\r\n"
当单片机收到字符串"\r\nOK\r\n\r\n",表示LTE-7S4模块已经退出AT模式返回到透传模式。
(10)、开始检测LINKA引脚电平,如果LINKA引脚点亮,表示TCP连接成功,单片机可以给服务器发送报文啦。
注:WORK指示灯也必须点亮(表示LTE-7S4模块工作正常)
NET灯闪烁2次,表示检测到2G网络
NET灯闪烁3次,表示检测到3G网络
NET灯闪烁4次,表示检测到4G网络
还参见如下博文: