ESP8266总结
Esp8266是一个无线wifi模块。有三种模式:AP模式、STA模式和AP、STA两种模式共存,可以用uart串口通信。
Esp8266有40多个AT指令,但是常用的没几个,这里就不介绍了。需要注意的是;配置好了参数后一般都需要复位一下设置才能生效。
直接来几个栗子吧。每个实验前恢复出厂设置是为了避免各个实验相互干扰,毕竟设置是可以掉电记忆的。这几个实验都没用到单片机。都是把ESP8266通过USB-TO-TTL和电脑连接,然后用串口助手向ESP8266发送指令。
- esp8266设置为station模式,手机开热点,然后esp8266连接手机的热点;
- Esp8266设置为AP模式开启热点,然后手机开wifi去连接ESP8266;
- ESP8266作为TCP服务器,手机作为TCP客户端,相互通信;
- ESP8266作为TCP客户端,手机作为TCP服端,相互通信;
- 手机通过云服务器远程控制ESP8266;
实验一、esp8266设置为station模式,手机开热点,然后esp8266连接手机的热点;
- 恢复出厂装置;AT+RESTORE
- 设置为station模式;AT+CWMODE=1
- 查询可用热点;AT+CWLAP
- 连接热点,ssid=热点名,password=密码;AT+CWJAP=<ssid>,<password>
- 断开当前热点的连接,(如果不想断就不用执行这个指令);AT+CWQAP
实验二、Esp8266设置为AP模式开启热点,然后手机开wifi去连接ESP8266;
- 恢复出厂装置;AT+RESTORE
- 设置为AP模式;AT+CWMODE=2
- 设置热点名字和密码,ssid=热点名字,password=密码,chl=通道,默认通道就好,end=这个不懂是干嘛的,用它原来的参数就好,如果查询这个参数的话会返回5个参数,不懂多出来的那个参数是干嘛的;AT+CWSAP=<ssid>,<password>,<chl>,<end>
- 复位让设置生效,好像这里不用复位也可以;AT+RST
- 打开手机wifi搜索ESP8266创建的热点,输入密码连接就可以了
实验三、ESP8266作为TCP服务器,手机作为TCP客户端,相互通信;
- 恢复出厂设置;AT+RESTORE
- 设置为AP模式;AT+CWMODE=2
- 开启多连接;AT+CIPMUX=1
- 配置服务器端口号并开启服务器,mode=1为开启服务器,0为关闭,port=端口号;AT+CIPSERVER=<mode>[,port]
- 打开手机wifi,把手机调试助手设置为TCP客户端,并且把TCP客户端的ip地址设置为和esp8266在同一个局域网内的ip,端口号设置为和ESP8266一致。然后点击连接就可以连接上了。
- 在手机上发送数据,esp8266接收到数据并通过串口传输到串口助手上打印出来
- 此时esp8266还是在AT模式,不能直接向手机TCP客户端发数据。可以通过非透传模式发送指令,id=id号,id号由TCP服务器按TCP客户端连接的先后顺序从0-4自动分配,最多只能同时连5个TCP客户端。len=数据长度;AT+CIPSEND=<id>,<len>。
8、好像ESP8266作为服务器的自身是话开不了透传模式的,因为开透传模式就必须关闭多连接AT+CIPMUX=0,而只能在多连接开启时才能开启服务器,这就矛盾了,也是心累。
实验四、ESP8266作为TCP客户端,手机作为TCP服端,相互通信;
- 手机开启热点,并开启TCP服务器
- 老规矩,恢复出厂设置;AT+RESTORE
- 设置为station模式;AT+CWMODE=1
- 把ESP8266设置为单连接,如果是多连接好像连接不上手机的TCP服务器;AT+CIPMUX=0
- 查找手机热点并连接,这个指令要执行两次,第一次是查找第二次是连接,具体使用格式看手册(这个连接只是提供数据传输的通道,如果把ESP8266设置为AP+STA模式,然后手机开启wifi,8266开热点,连接上后也是可以的);AT+CWLAP
- ESP8266连接手机TCP服务器,type是服务器类型,这里是TCP,addr是服务器地址,其实也就是ip,port是服务器的端口号;AT+CIPSTART=<type>,<addr>,port,
- 现在手机上的服务器可以直接向ESP8266发送数据。
- 如果在非透传模式,esp8266向手机TCP客户端发送数据,其中len是数据长度;AT+CIPSEND=len
实验五、手机通过云服务器远程控制ESP8266;
- 这个,,,,,,,,,,,,,,,,呵呵
- 待续