2755|7

9809

帖子

24

TA的资源

版主

楼主
 

ESP32 AT模式下使用IPV6以及使用AT+CIPSEND遇到的问题 [复制链接]

 

    ESP32是一款非常不错的无线SOC,在很多成熟的产品上都能看到它的身影,不过对于它的开发环境我用起来总是磕磕绊绊, 为了减少对ESP32开发环境的依赖可以使用ESP32的ESP-AT固件。刷好ESP-AT固件的ESP32可以通过串口与单片机通信,这样就可以在自己熟悉的单片机上开发相应的应用了。

    在一些需要通过广域网通信的应用里,我更习惯使用IPV4,不过因为IPV4需要跨运营商的路由,一个ESP32的模块不可能得到一个IPV4的公网IP,如果想和其它设备建立连接只能选择服务器中转(一搬情况下路由器端口映射也很难实现)。为了解决联网的问题,同时减少对服务器的依赖可以尝试使用现在主推的IPV6协议,正好ESP32也支持IPV6,下面将分享一下我通过ESP-AT使用IPV6和其它设备连接的过程。

    首先需要将对应的ESP32模组烧录ESP-AT固件,相应手册:下载指导 - ESP32 - — ESP-AT 用户指南 latest 文档 (espressif.com),下载好ESP-AT后通过单片机或USB转串口和ESP32通信,通过发送AT指令来实现相应的功能。

    我这里使用USB转串口在PC上使用串口助手进行测试,打开串口助手输入“AT+CIPV6=1”启用IPV6,输入“AT+CWJAP="SSID","password"连接到对应的路由器上,目前新出的路由器都支持IPV6,可以在PC或手机上打开www.ip138.com查看是否支持IPV6,华为手机也可以在手机的”关于手机“->"状态信息”里看IP地址里有没有IPV6地址。如果ESP32获得到了IPV6公网地址会在连接完路由器后返回 “WIFI GOT IPv6 GL”。此时输入“AT+CIPSTA?”就能看到ESP32获得到的公网IPV6地址。

CIPSTA:ip6gl:后边那个比较长的就是公网IPV6地址。

    

 

在得到公网IPV6地址后就可以和其它支持IPV6的设备进行通信,ESP32可以作为服务端也可以作为客户端,这里先通过配置ESP32为服务端进行测试。

如果希望服务端支持多连接可以在开启服务前输入“AT+CIPMUX=1”。然后输入“AT+CIPSERVER=1,7890,"TCPv6",0”开启IPV6 TCP Socket服务端。

开启服务后在其它设备上使用IPV6 TCP Socket客户端连接ESP32的公网IPV6地址和端口就能和ESP32建立连接。

我这里使用Csharp写了一个客户端程序,通过ESP32的公网IPV6地址和ESP32建立连接。连接成功后发送"www.eeworld.com.cn" ESP32的串口会输出相应信息。

   

如果ESP32要向其它设备发送信息需要先输入AT+CIPSEND=len指令,len是要发送数据的长度。比如我要发送“www.eeworld.com.cn",先输入”AT+CIPSEND=0,18“,等号后的0是多连接时的第几个连接设备,18是要发送的数据长度。

接着发送“www.eeworld.com.cn"会收到”Recv 18 bytes SEND OK“的提示,提示发送成功,不过此时Csharp写的程序并没有收到信息。

 

重复执行”AT+CIPSEND=0,18“和“www.eeworld.com.cn"多次后会一次收到所有之前未收到的数据。

 

查看ESP32的官方文档会发现有这么一句话”如果所有数据被成功发往协议栈(不代表数据已经发送到对端)“......,也就是说之前的数据可能只是发到协议栈了,具体什么时候发送并没有说明,如何强制数据发送到对端也没有找到相应指令,这是一个比较遗憾的地方。

 

通过上述步骤即可实现ESP32通过IPV6公网地址与其它设备互联,不过需要注意的是个人用户的IPV6地址也是动态分配的,它会隔一段时间变化一次,所以想实现真正的互联还需要服务器配合,当然它只需要将服务端的IPV6地址报告给客户端即可,不需要处理太多数据。IPV6地址的交换除了使用服务器也可以使用其它方式交换,比如短信或者发送邮件等等。

 

最新回复

允许你装,但是不要过分。   详情 回复 发表于 2023-8-29 13:04
点赞 关注(1)
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

回复
举报

3416

帖子

0

TA的资源

纯净的硅(高级)

沙发
 

IPV6?

移动固网表示是不可能有的。

点评

移动宽带不支持IPV6吗?  详情 回复 发表于 2023-8-28 10:41
个人签名

So TM what......?

 

 
 

回复

7311

帖子

2

TA的资源

版主

板凳
 

IPV6是不是会定期更新?

点评

会  详情 回复 发表于 2023-8-28 10:41
 
 
 

回复

9809

帖子

24

TA的资源

版主

4
 
ljj3166 发表于 2023-8-27 22:31 IPV6? 移动固网表示是不可能有的。

移动宽带不支持IPV6吗?

点评

技术层面上肯定支持。但是个人用户大多数情况下就能获得一个NAT的LAN地址,除非加钱挤入专线或者是spuer pro extreme final VIP。  详情 回复 发表于 2023-8-28 13:38
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

9809

帖子

24

TA的资源

版主

5
 
wangerxian 发表于 2023-8-28 09:27 IPV6是不是会定期更新?

个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

3416

帖子

0

TA的资源

纯净的硅(高级)

6
 
littleshrimp 发表于 2023-8-28 10:41 移动宽带不支持IPV6吗?

技术层面上肯定支持。但是个人用户大多数情况下就能获得一个NAT的LAN地址,除非加钱挤入专线或者是spuer pro extreme final VIP。

点评

spuer pro extreme final VIP 这是啥?高深莫测!  详情 回复 发表于 2023-8-28 19:49
个人签名

So TM what......?

 

 
 

回复

7676

帖子

2

TA的资源

五彩晶圆(高级)

7
 
ljj3166 发表于 2023-8-28 13:38 技术层面上肯定支持。但是个人用户大多数情况下就能获得一个NAT的LAN地址,除非加钱挤入专线或者是spuer ...

spuer pro extreme final VIP 这是啥?高深莫测!

点评

允许你装,但是不要过分。  详情 回复 发表于 2023-8-29 13:04
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

3416

帖子

0

TA的资源

纯净的硅(高级)

8
 
freebsder 发表于 2023-8-28 19:49 spuer pro extreme final VIP 这是啥?高深莫测!

允许你装,但是不要过分。

个人签名

So TM what......?

 

 
 

回复
您需要登录后才可以回帖 登录 | 注册

开源项目 更多>>
    随便看看
    查找数据手册?

    EEWorld Datasheet 技术支持

    相关文章 更多>>
    关闭
    站长推荐上一条 1/10 下一条

     
    EEWorld订阅号

     
    EEWorld服务号

     
    汽车开发圈

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表