【ESP8266之AT开发】二、ESP8266的三种工作模式认识,AP模式下ESP8266建立TCP服务器,建立TCP客户端(解决防火墙)

PC版本的服务器客户端模拟器记得以管理员身份运行,本节使用固件可从百度云下载,<这里,密码:ojoi>


###ESP8266的三种工作方式

  • AP模式
  • STA模式
  • AP+STA模式

AP模式就仅仅相当于路由器功能可以发出信号。 当然我们知道路由器不仅仅能发出信号,当然可以接受信号的,所以就有了STA模式的基站功能就是接受信号。

接受完信号是不是还能广播出去呢?当然可以了!所以就有了AP+STA模式的工作方式

###ESP8266建立TCP服务器

Step1

AT+CWMODE=2 //配置ESP8266模块为AP模式(即路由器模式,可以发出WiFi)

出现 no change的字样也无所谓,只要再用AT+CWMODE? 看一下是不是处于AP模式就OK

模式:
AT+CWMODE=?    //响应返回当前可支持哪些模式

AT+CWMODE?     //响应当前处于哪种模式

AT+CWMODE=2   //1-Station 模式,2-AP 模式,3-AP 兼 Station 模式

Step2

AT+RST  //重启模块使AT+CWMODE=2模式生效

这里写图片描述

这里写图片描述
对应ESP8266的WiFi打开

Step3

AT+CIPMUX=1 //启动多连接

这里写图片描述

多路连接

  • 多个客户端连接

  • ESP8266最多允许5个客户端进行连接,每个客户端根据连接先后顺序对应分配id 0~4

通信方式呢是TCP/UDP通信

UDP

  • 接收端和发送端ServerClient
  • 面向无连接的通信,速度较TCP
  • 向指定的IP 和“指定的端口”发数据到指定的电脑和指定的软件下

TCP

  • 分为服务端和客户端ServerClient
  • 面向有连接的通信,速度较UDP慢
  • 需要配置远程主机服务器IP地址及端口
  • ESP8266做服务器时,IP固定为192.168.4.1
  • 不放心可通过**AT+CIFSR**查看模块IP

注意:

  • TCP连接通信的时候,相应设备必须处于同一个网络中,即处于同一个局域网中!!!!
  • AP模式下ESP8266做服务端时就是,手机和电脑必须连在ESP8266的WiFi

Step4

AT+CIPSERVER=1,8080 //模块开启服务器模式,端口号8080

这里写图片描述

这里写图片描述

远程主机地址AT+CIFSR指令查看一下。
模块的自身ip地址是192.168.4.1

这里写图片描述

这里写图片描述

创建PC以及手机版的客户端

再次提醒一下,务必连接到ESP8266产生的WIFI客户端才能成功连接到服务器

这里写图片描述
这里写图片描述
客户端连接成功的ID号貌似在这个版本中不显示,怎么知道它的ID呢?

可以这样用客户端给服务器发信息,服务器接收到的信息中就包含ID

这里写图片描述

客户端向服务器发字符没有限制呢!

服务器怎么向客户端发送信息呢?(记得这里把“加回车换行”这个选项给去掉)
先发送

AT+CIPSEND=×,× //第一个×是对应的ID号,第二个×是对应的字符个数

这里写图片描述

注意对应的字符个数问题,如果个数少了就不发,个数多了就只发前对应的个数。总结为:少不多退

这里写图片描述

这里写图片描述

手机端也连进去

注意:连之前先连入8266的WIFI

手机端发送123

这里写图片描述

电脑端发送456
这里写图片描述

此时由于操作时间有点长,电脑端断了,又重新连了。手机端的ID变为0,后来连入的电脑端ID为1

###ESP8266做客户端,PC做服务器

先来道开胃菜,单连接模式,这之前务必先办好两件事情:

务必

1. AP模式下PC连接ESP8266的WiFi

2. 去除防火墙的影响

①、关闭防火墙
最快捷的cmd+R->services.msc->windows firewall ->双击后自动改为禁用
注意,如果出来什么警告的话记得选择允许!!!
②、把网络调试助手加入防火墙的白名单,具体做法看<这里>

步骤:

1,还是设置模块的工作模式为AP模式AT+CWMODE=2

2,复位一下AT+RST

3,发送AT+CIPMUX=0 启动单连接,

4,AT+CIPSTART="TCP","192.168.4.100",8080
TCP说明是tcp连接,如果写UDP就是udp连接
192.168.4.100连接的ip地址,电脑的ip,端口号8080

关于这个IP地址的事情,要特别注意一下。

当你打开网络调试助手的,选择TCP Server后会自动出来IP地址,因每个新建的TCPsever的IP地址不相同,需把刚才的对应的IP更新

这里写图片描述

这里写图片描述

单发通信指令

这里写图片描述

AT+CIPSEND=× //对应的就是个数了

这里写图片描述

最后再来一下服务器往客户端发!!!
这里写图片描述

正式佳肴,多路连接

步骤

看多路连接(首先提醒一下一个模块可以做到5路连接

1,还是设置模块的工作模式为ap模式AT+CWMODE=2

2,复位一下AT+RST

3,发送AT+CIPMUX=1 启动多连接

4,AT+CIPSTART=0,"TCP","192.168.4.2",8080

5, AT+CIPSEND=0,20

6,随便打些东西

7,发送

这里写图片描述

是否真的像API文档一样ID只有0~4?试一下5就知道

这里写图片描述

不言而喻!

当服务器选择向客户端发的时候,因为是多发要选择相应的IP+port!

这里写图片描述

这里写图片描述

ReCclay CSDN认证博客专家 视觉/OpenCV 图像处理 深度学习
生活不能等待别人来安排,要自己去争取和奋斗;而不论其结果是喜是悲,但可以慰藉的是,你总不枉在这世界上活了一场。有了这样的认识,你就会珍重生活,而不会玩世不恭;同时,也会给人自身注入一种强大的内在力量。
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页