1.ESP8266在STA模式下作为TCP客户端(client)使用
AT+CWMODE=1 设置成STA模式
AT+CWLAP 罗列出附近可以连接的WIFI,如果是确定的热点,就不需罗列,如STM配置
AT+CWJAP=“WIFI名称”,“WIFI密码”
如果之前已经连接过WIFI,可以忽略罗列WIFI和连接WIFI这两步,因为之前连接过的WIFI再次上电之后会自动连接。
AT+CIPMUX=0 设置成单一连接模式,因为多连接模式下不可以开启透传模式
AT+CIPMODE=1 进入透传模式,这个模式下,发送的数据不作任何处理原样发送出去
AT+CIPSTART="TCP","10.58.1.47",8080 !!端口号不能用双引号括起来!!
解释:AT+CIPSTART="TCP或UDP","要连接的IP地址","要连接的端口号"
注意:这个在器件重新上电之后不会保存上一次的连接的IP和端口号,跟自动连WIFI不一样,
所以每次上电之后要重新对所需要连接服务器的IP和端口号重新配置连接,
2.ESP8266在STA模式下作为TCP服务器(serve)使用
AT+CWMODE=1 设置成STA模式
AT+CWLAP 罗列出附近可以连接的WIFI,如果是确定的热点,就不需罗列,如STM配置
AT+CWJAP=“WIFI名称”,“WIFI密码” 这两点跟上面的一样
AT+CIFSR 因为这里是将模块作为服务器使用,因此是要别的客户端来连接这个模块,所以要看一看模块的IP地址和端口是多少,(如果有路由器,会自动分配,我们读一下就好)
AT+CIPMUX=1
!!注意:作为服务器时,只能设置为多连接模式,并且不可以开启透传模式
AT+CIPSERVER=1,8080 设置端口为8080(缺省值为333)
!!因为不可以开启透传模式,因为我们必须用AT指令来发送数据
3.下面介绍不开透传模式如何发送数据和解析接收到的数据
发送数据:
AT+CIPSEND<id>,<length>
现在我们用串口助手来看看怎么发送:
利用AT+CIPSEND,在每次发送数据之前要先规定发送数据的长度,比如上面规定数据长度为5,那么你就只能发5个长度的数据,情况1:如果你发送的数据比你规定的要多,那么多的那一部分就会丢失掉。情况2:如果你发送的数据比你规定的要少,那么它会先存起来,直到你发送的数据长度达到了你规定的长度才会发送出去。
接收数据:
+IPD,<id>,<length>:<data>
现在我们用串口助手看看:
总结:
1.·服务器不可以开启透传模式,客户端可以开启。
2.关闭透传后,每次传输数据都要使用一次AT+CIPSEND,并且规定长度
3.STA和AP只是硬件上的连接方式,模块作为客户端还是作为服务器是根据软件来定的