ESP8266-3种模式用法

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40504976/article/details/84283320

ESP8266有三种工作模式:
1.Station (客户端模式)
2.AP (接入点模式)
3.Station+AP (两种模式共存)
就是说模块可以当成一个设备(client)连接区域网内的路由,也可以设置成是一个路由(sever),也可以既作为局域网里面的client同时又是其他client的sever。
    下面我们可以尝试一下配置ESP8266的指令(注意:每条AT指令后面都要加一个回车键再发送!!!输入用串口软件输入,相当于把电脑想象成单片机来用。):

一、先玩玩AP(sever)模式
1.输入:AT+CWMODE=2
 响应:OK
说明:指令原型为:AT+CWMODE=<mode>;其中<mode>:1-Station模式,2-AP模式,3-AP兼Station模式。
2.输入:AT+RST
 响应: OK
说明:配置好模式后需要重启生效。
3.输入:AT+CWMODE?
 响应:+CWMODE:2
       OK
说明:这条指令可以不要,这是查询当前模式的指令,模式返回是2,说明是AP模式。

4.输入:AT+CWSAP="ESP8266","0123456789",11,0
 响应:OK
说明:指令原型为:AT+ CWSAP=<ssid>,<pwd>,<chl>, <ecn>;其中<ssid>:字符串参数,接入点名称;<pwd>:字符串参数,密码最长64字节,ASCII;<chl>:通道号;< ecn >:0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK。
然后现在就可以在你的手机或者是电脑通过无线网卡连接到ESP8266上了。
5.输入:AT+CIPMUX=1
 响应:OK
说明:开启多连接模式,因为只有在开启多连接模式的时候才能开启服务器模式。注意:透传只能在单连接模式下进行。
6.输入:AT+CIPSERVER=1,8080
 响应:OK
说明:设置端口为8080。
最后,我们就可以通过网络调试助手来通过“TCP Client”模式下添加“IP:192.168.4.1(模块默认的IP),端口8080(第6步设置的)”值得一提的是,ESP8266当服务器的时候,客户端如果没有数据传输,隔一段时间会自动断开连接,可通过AT+CIPSTO=<time>命令设置超时时间(说明:<time>:服务器超时时间,0~2880,单位为s)。

7.输入AT+CIPSEND=0,10
             返回:OK
              >
 输入字符串,就可以发到手机上了,0是通道号,10是数据长度。

二、再玩玩Station(client)模式
1.输入:AT+CWMODE=1
 响应:OK
说明:指令原型为:AT+CWMODE=<mode>;其中<mode>:1-Station模式,2-AP模式,3-AP兼Station模式。
2.输入:AT+RST
 响应: OK
说明:配置好模式后需要重启生效。
3.输入:AT+CWMODE?
 响应:+CWMODE:1
       OK
说明:这条指令可以不要,这是查询当前模式的指令,模式返回是1,说明是Station模式。再看电脑或者手机wifi连接窗口,刚才的热点已经消失了,说明已经把模式转换为了客户端模式。
4.输入:AT+CWLAP
 响应:+CWLAP:(4,"呭摜",-84,"78:eb:14:f3:9c:1a",1)
+CWLAP:(4,"509509",-53,"20:dc:e6:d0:3b:3c",1)
+CWLAP:(4,"bing2014",-73,"ec:88:8f:63:40:d4",1)
+CWLAP:(3,"瀵嗙爜鏄?883125",-80,"7e:2f:68:6b:df:5e",11)
OK
说明:可以让模块搜索周围的信号了,列出可以连接的热点(中文显示为乱码)。
5.输入:AT+CWJAP="509509","ldzldz509" 
     响应:OK
说明:指令原型为:AT+CWJAP=<ssid>,<pwd>),ssid就是wifi的名字,pwd就是wifi的密码。
6.输入:AT+CWJAP?
 响应:+CWJAP:”509509”
       OK
说明:这条指令可以不要,这是查询一下当前连接的AP。
7.输入:AT+CIFSR
 响应:192.168.1.104
       OK
8.输入:AT+CIPSTA_CUR=”192.168.6.100”,"192.168.6.1","255.255.255.0"
     响应:OK
说明:这条指令可以不要,这是分配固定ip。

说明:通过路由器查看下模块的IP地址。如果模块之前我们设置成了AP和Station共存模式,则会出现两个IP,上面的APIP是作为无线AP的IP地址。下面的STAIP是它作为客户端从路由器获取到的IP 地址。
ESP8266是有寄存器的,所以即使重启连接信息也不会丢失,重启后再查询,发现会自动连接。使用电脑ping一下这个ip,ip是可以ping通的,说明连接正常。
C:\Users\Administrator>ping 192.168.1.104

正在 Ping 192.168.1.104 具有 32 字节的数据:
来自 192.168.1.104 的回复: 字节=32 时间=65ms TTL=255
来自 192.168.1.104 的回复: 字节=32 时间=95ms TTL=255
来自 192.168.1.104 的回复: 字节=32 时间=102ms TTL=255
来自 192.168.1.104 的回复: 字节=32 时间=18ms TTL=255

192.168.1.104 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 18ms,最长 = 102ms,平均 = 70ms
通过路由器管理界面查看到模块的MAC地址为:18-FE-34-9C-8B-9D
可以调整一下路由器的IP分发策略,让这个mac地址获得固定的ip,这样每次连接路由器之后就不用查看ip了。配置后提示要重启路由器才生效,没关系以后有时间再重启。
8.输入:我们用来调试的这台电脑(电脑也需连接同一个路由器)上建立一个TCP服务器,然后用我们刚刚连接到路由器的ESP8266模块连接到我们建立的这个TCP服务器上,然后在这个模块与服务器之间转输数据。用到的工具是网络助手NetAssist.exe,运行后在网络协议类型:TCP Server ,然后点“连接”按扭,成为一台TCP服务器。
3.png
9.输入:AT+CIPSTART="TCP","192.168.1.100",8080
 响应:CONNECT
       OK
说明:192.168.1.100为服务器IP地址;8080为端口。
10.输入:AT+CIPSEND=4  
 响应:OK
说明:意思是发送四个字节的数据。
11.输入:ABCD 
 响应:SEND OK
说明:NetAssist会收到ABCD四个字母。

4.png

这里他以十六进制显示出来了。
12.把网络助手的“连接对象”选择成我们的模块IP地址,在下面输入:CDEFG,点发送,会在串口工具收到+IPD,5:CDEFG。意思是接收到的数据长度为5个字节,CDEFG为数据内容。

 

三、Station(client)模式下与手机通信
1.输入:AT+CWMODE=3
 响应:OK
说明:指令原型为:AT+CWMODE=<mode>;其中<mode>:1-Station模式,2-AP模式,3-AP兼Station模式。
2.输入:AT+RST
 响应: OK
说明:配置好模式后需要重启生效。
3.输入:AT+CWMODE?
 响应:+CWMODE:3
       OK
说明:这条指令可以不要。
4.输入:AT+CWSAP="ESP8266","0123456789",11,0
 响应:OK
说明:指令原型为:AT+ CWSAP=<ssid>,<pwd>,<chl>, <ecn>;其中<ssid>:字符串参数,接入点名称;<pwd>:字符串参数,密码最长64字节,ASCII;<chl>:通道号;< ecn >:0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK。
然后现在就可以在你的手机或者是电脑通过无线网卡连接到ESP8266上了。
打开手机上的有人网络助手,TCP server→配置→激活→能看到此时手机的IP和端口号,要记下,下面要用。
5.输入:AT+CIPMODE=1
 响应:OK
说明:开启透传模式。
6.输入:AT+CIPMUX=0
 响应:OK

说明:开启单路模式。
 7.输入:AT+CIPSTART="TCP","192.168.4.2",8080
 响应:CONNECT
       OK
说明:192.168.4.2为服务器IP地址;8080为端口。填刚才记下的手机IP和端口号
这时手机已经能向模块发信息了,但模块不能发。 
8.输入:AT+CIPSEND
 响应:OK
说明:ESP8266发送数据至手机。

 

这个模块还有很多玩法,就不一一列出了。比如外网通信:
模块连接路由器后,然后就是设置路由器了。路由器上要做端口映射。意思是:路由器才是挂在外网的电脑,它有一个外网IP,在任何地方都能访问的外网IP。假设你的外网IP是 111.222.333.444. 你连接这个IP就是连接你的路由器。好。
但路由器通常是作为你从内网连接外部网络,上网用的。如果你直接从外部连接路由器,路由器也不知道你要连接什么服务。于是你要设置路由器,告诉路由器,如果有人访问路由器的某个端口,就把这个访问转嫁到内网的某个设备的某个端口,这就是映射。比如你设置路由器的8008端口映射到内部的192.168.0.1的80端口。当你访问111.222.333.444:8008(打开IE浏览器,输入http://111.222.333.444:8008)时,就如同在内网访问192.168.0.1:80一样。端口映射功能在路由器设置界面有时会叫虚拟服务,虚拟主机服务等等。
你要把收发两端的都做映射设置,然后就可以调转来也可以连接。只映射一边,你只能固定从未映射的一边去连接已做映射的一边。
温馨提示:要做外网通信测试,不要使用常用端口,如80,8080等等,可能已经被如来佛组屏蔽了。

展开阅读全文

没有更多推荐了,返回首页