完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一直要不断的向前进步啊。之前有一段时间学习了ESP8266模块,当时也是一顿折腾,捣鼓了好几天,虽然实现了简单的通信,但是脑子里还是一片浆糊,对它的原理还是不太理解。最近凑着寒假有时间,又重舒旧情再来一遍,现在把整个过程的经验分享给大家,希望能够帮助到你们。
本篇博客借鉴了两位大佬的经验: 1.https://blog.csdn.net/qq_38410730/article/details/86538288 2.https://blog.csdn.net/qq_41821562/article/details/85339678?utm_source=app 整个过程我想分3篇博客说明: ①ESP8266简单测试,让你体验测试成功的快感。 ②STA模式 <电脑——路由器——模块>,也就是以路由器为中介实现电脑和模块之间的通信。 ③通过ESP8266实现电脑与单片机的通信(代码实现)。 ESP8266三种工作模式 我们知道ESP8266 模块支持 STA/AP/STA+AP 三种工作模式: STA模式:通过连接路由器进行模块和电脑(手机)之间的通信。 AP模式: ESP8266为热点,实现电脑(手机)与模块之间的直接通信。 STA+AP模式:即两种模式同时存在。 进一步的说 STA模式 <电脑——路由器——模块> 也就是路由器为中介实现电脑和模块之间的通信。 STA模式下,模块也可以作为TCP服务器(Server)、TCP客户端(Client)、UDP三种模式。 透传模式 透传就是指不需要关心wifi协议是如何实现的。所需要做的就是A通过串口发数据,B通过串口收数据,整个过程中A串口和B串口就像是用导线直接连接起来了一样。则对于开发人员来看,就是完全透明的。 更简单地理解就是: 如果不开启透传模式,我们怎么发送数据呢?在每次发送数据前都必须先发送指令 AT+CIPSEND=(我们要发送的数据) 那么透传模式如何设置那? 下面我们测试模块在STA模式下的透传设置 1)设置WIFI模式: AT+CWMODE=1 //设置为STA模式 响应:OK 2)重启生效 AT+RST 响应:OK 3)连接路由器 AT+CWJAP=”E201”,”1234567890” //连接对象路由器的名称和密码(不要连接手机热点,我也不知道为什么,但是连接手机热点连接不上。)如果这一步失败,尝试连接其他路由器。 响应:OK 4)AT+CIPMUX=0 //设置单路连接模式 响应:OK 注:下面的操作是以电脑作为服务器,即通过串口调试助手发送数据,电脑通过网络调试助手接收数据。(关闭防火墙,一定要关闭防火墙)电脑和模块连接的是同一个路由器。 5)在电脑上使用一个网络调试助手,创建一个server,(本地IP即你电脑的IP地址) 注:这里笔者有几点说明一下 网络调试助手怎么用那?又有什么功能那? ①你可以不加任何外设,只是仅仅打开两个网络调试助手,一个选择TCP Serve,另一个选择TCP Client, 那IP地址和端口号又怎么设置那?接着往下看 ②IP地址:当你的电脑连接上WIFI,便会自动分配一个IP地址,这个不可认为更改。 ③端口号:端口号可自行定义,什么意思那? 就比如说我遇到的情况,我打开一个网络调试助手,设置为TCP Server,端口号默认为8080,但是当我连接的时候没有反应,连接不上。后来在网上一顿查才知道,当你创建的Server连接不上的时候,是因为你现在的端口号被占用了,因为端口号可以自行定义,所以你可以设置个别的啊。话说过来,怎么知道哪些端口号被占用了那? 打开cmd命令提示符,输入netstat –ano,就可以看到8080端口已被占用 所以我就设置一个8082端口,连接成功。 接下来我两个网络调试助手都设置端口为8082,连接成功,在Client窗口中发送消息,Server便可以接收到相应的消息。如下图: 当然也可以互相发送信息,如果你勾选了十六进制显示,它显示的便是转换后的十六数。 6)模块连接到server AT+CIPSTART=”TCP”,”192.168.1.115”,8080 //输入你自己的IP和端口号 响应:CONNECT OK 如果此时显示错误的话,原因有以下两点 ①没有关闭电脑防火墙。 ②模块和电脑连接的不是同一Wifi。 ③如果还是显示错误的话,尝试连接别的路由器(小白当初上面①②选项都没有问题但是就是连接不上,偶然一次机会在亲戚家,模块和电脑连接了另一个wifi,没想到连接成功)。 所以:如果还是连接不成功,不要灰心,慢慢找原因,你一定可以。 7)开启透传模式 AT+CIPMODE=1 响应:OK 8)开始透传 AT+CIPSEND 响应:OK > 现在就可以相互发送数据了。 9)退出透传 +++(注意此时取消勾选“发送新行”选项) 发送完之后,没有任何显示,此时再次勾选“发送新行”选项,发送AT,则返回OK。 上面是只是用AT指令对模块就行测试,并没有用到任何代码,接下来实现模块与单片机连接,实现单片机给服务器发送数据。 |
|
|
|
只有小组成员才能发言,加入小组>>
2548 浏览 0 评论
1144浏览 2评论
744浏览 1评论
497浏览 0评论
262浏览 0评论
424浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 08:42 , Processed in 1.188173 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号