单片机通过WH-LTE-7S4和外网服务器进行4G通信

【您想要实现什么功能?】:

                     单片机通过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网络

还参见如下博文:

      https://blog.csdn.net/ba_wang_mao/article/details/109319593?utm_medium=distribute.pc_relevant.none-task-blog-title-1&spm=1001.2101.3001.4242

 

     

 

 

 

            

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值