最近开始玩ESP8266(下面简称ESP),写一篇文章来理清一下思路,如果能给到读者一些帮助就更好了。
ESP有三种工作模式:STA,AP,AP+STA。
简单介绍一下这三种模式:

STA :就是用来连接其他热点的,可以是AP模式下的ESP,也可以是路由器,手机电脑开热点。
AP  :模块自己就是热点,可以理解为路由器,别人来连接它。
STA+AP:就是上面两种模式的结合。

ESP8266 UDP热点 esp8266开热点_字符串

  1. 用AT+CWMODE可以设置工作模式,1是STA,2是AP,3是AP+STA,
    AT+CWMODE?可以查询工作模式
  2. 我这次用的AP+STA,开启了服务器模式,在连接上我的路由器。这样就有两条通讯路线,这样做的目的只是为了学习它的两种工作模式而已。

    STA不能开启服务模式,只可以连接在其他热点上,可以挂在路由器上面,电脑通过网络远程访问。
    AP不能挂在别的热点上,只能让其他机器连接他。当作服务器,别的机器通过它来中转。
    你们要根据自己的需求去选择对应的模式。
  3. 先配置ESP:
//设置成AP+STA模式
AT+CWMODE=3
//重启
AT+RST
/*配置热点参数,重启后生效
第一个参数热点名字
第二个参数密码,取长一点,短了可能通过不了
其余两个参数一个是通道号,一个是密码加密模式
*/
AT+CWSAP="esp8266","123456789",1,3
AT+RST
//查看可以连接的热点以及信号强度,如下
AT+CWLAP
//连接热点
AT+CWLAP="wifiname","password"
//这样配置一次就可以了,掉电了在开启也不会变,并且还会自动连接WiFi。
//下面的每次上电要重新配一次
//开启多连接,不然不能开启服务模式
AT+CIPMUX=1
/*开启服务模式
第一个参数为0就是关闭服务模式,并且不要第二个参数,需要重启
第二个参数对外开发端口号,连接TCP的时候需要用
*/
AT+CIPSERVER=1,8000
  1. 这样就配置完成了,可以在电脑上面看到一个叫esp8266的wifi名字,连接上去,在写一个tcp客服端程序就可以进行通信了;也可以与路由器连接;但是要注意IP地址要对应,要让他们都在同一个局域网下面。 APIP就是连接ESP的时候使用的,如果连的路由器就用STAIP的,可以体会一下。
    这是把ESP当作服务器。

ESP8266 UDP热点 esp8266开热点_ESP8266 UDP热点_02

//电脑端的可以按WIN+R输入CMD按回车,打ipconfig查看。
/*查询连入设备ip,返回的4个参数
	<id>:连接的 id 号 0-4
	<type>:字符串参数,类型 TCP 或 UDP
	<addr>:字符串参数,IP 地址
	<port>:端口号
	<tetype>: 0-本模块做 client 的连接,1-本模块做 server 的连接
*/
AT+CIPSTATUS
//查看模块的IP
AT+CIFSR
/*发送数据
1)单路连接时(+CIPMUX=0),指令为:AT+CIPSEND=<length>
2)多路连接时(+CIPMUX=1) ,指令为:AT+CIPSEND= <id>,<length>
响应:收到此命令后先换行返回”>”,然后开始接收串口数据
	当数据长度满 length 时发送数据。
	如果未建立连接或连接被断开,返回 ERROR
	如果数据发送成功,返回 SEND OK
说明:
	<id>:需要用于传输连接的id号,上面查到的
	<length>:数字参数,表明发送数据的长度,最大长度为 2048
*/
AT+CIPSEND

ESP8266 UDP热点 esp8266开热点_服务器_03

6 把电脑当作服务器,ESP当作客户端,如果是用路由器,连接的ESP和电脑,就用路由器分配给电脑的IP,如果是电脑直接与ESP连接,就用ESP分配给电脑的IP

/*建立TCP连接
指令:
	1)单路连接时(+CIPMUX=0),指令为:AT+CIPSTART= <type>,<addr>,<port>
	2)多路连接时(+CIPMUX=1),指令为:AT+CIPSTART=<id>,<type>,<addr>,<port>
响应:
	如果格式正确且连接成功,返回 OK,否则返回 ERROR
	如果连接已经存在,返回 ALREAY CONNECT
说明:
	<id>:0-4,连接的 id 号
	<type>:字符串参数,表明连接类型,”TCP”-建立 tcp 连接,”UDP”-建立 UDP 连接
	<addr>:字符串参数,远程服务器 IP 地址
	<port>:远程服务器端口号
*/
AT+CIPSTART
//发送数据
AT+CIPSEND

透传模式就是把接收的信号直接发给串口,不加任何修饰,
非透传模式会提示是发了多少个字节,是那个发的。
格式是:+IPD,,<字节数>,<数据>
透传只有在单连接的时候。