人生就是一列开往坟墓的列车,路途上会有很多站,很难有人可以自始至终陪着走完。当陪你的人要下车时,即使不舍也该心存感激,然后挥手道别。
宫崎骏《千与千寻》
一般来说,ESP8266 模块默认的波特率是115200,指令以\r\n
结尾,所以本文的所有指令都要使用\r\n
,后面就不重复了。
还有,发送AT命令后,返回OK
即认为设置成功。
一、测试指令
AT
(这里应该输入 AT\r\n
,为了不繁琐,后面就省略了\r\n
,应用时一定要自己加)
返回 OK
,说明模块正常。
二、开启/关闭回显(关系到模块是否回发发送的内容)
ATE1
– 打开回显ATE0
– 关闭回显
三、设置 WIFI
模式
3.1、AP 模式(可以理解为热点,别的设备可以连接)
首先,设置为AP 模式: AT+CWMODE=2
。
配置热点信息: AT+CWSAP="Eureka1024","123456789",1,3
---- 热点名为 Eureka1024,密码为 123456789,使用通道 1,加密方式为 WPA2_PSK。
这时候别的设备就可以连接该模块了,以下是连接信息:
+STA_CONNECTED:"04:b1:67:07:ce:bc" //连接到的设备的 MAC 地址+DIST_STA_IP:"04:b1:67:07:ce:bc","192.168.4.2" //后面的IP地址是ESP8266模块给连接设备分配的IP地址12
设备断开连接后,会有断开连接的提示:
+STA_DISCONNECTED:"04:b1:67:07:ce:bc"1
3.2、Station 模式(最常用的模式,用来连接热点,从而接入外部网络)
设置为Station 模式:
AT+CWMODE=1
。
连接到指定路由器:AT+CWJAP_DEF="PiWiFi","12345678"
。//wifi名
和wifi密码
获取 IP 地址:
AT+CIPSTA?
如果遇到同名的热点,可以通过增加MAC地址
(下面命令的最后一串字符) 的方式,比如AT+CWJAP_DEF="PiWiFi","12345678","db:d7:18:d5:a7:54"
1
设置模块开机自动连接热点:
AT+CWAUTOCONN=1
,模块上电后就会自动连接之前连接过的路由器(存储过名字和密码)。扫描附近的 AP 热点信息:
AT+CWLAP
,包括的信息有(热点名,热点 MAC 地址,加密方式等),由于串口助手显示中文乱码,所以显示很奇怪,不过还好,都不用打码了,哈哈。断开连接:
AT+CWQAP
四、 简单的网络通信
4.1、简单的实现连接
打开网络调试助手,选择 TCP Server
,会自动生成本地主机地址和本地主机端口号,点击打开,如下图所示:
接着使用串口助手对 ESP8266
模块进行操作。(前提是模块已经连接 wifi
成功)
首先,建立 TCP 连接,(可能会失败,可以按这个来设置ESP8266 TCP ERROR CLOSED的常见原因及解决办法,连手机的热点就可以,连电脑生成的热点就失败,不知道为啥,最好多试几次)
串口助手输入如下指令:AT+CIPSTART="TCP","192.168.0.107",8080
连接成功:
之后,使用键入指令: AT+CIPSEND=10
,其中10指的是这次发送数据的长度。
串口助手界面显示 >
,然后发送数据即可:
这是网络调试助手会接收到数据:
此时再通过 TCP Server 发送“hello,boy”,
串口接收端会打印 Client 收到的数据,结果如下图:
4.2、透传模式
前面在使用 TCP 进行数据发送时,在每次发送数据之前都要指定发送数据的长度,这样很不方便进行数据的处理。
使用透传模式可以解决这个问题。
使用 AT+CIPMODE=1
指令开启透传模式,开启透传模式后只需要在第一次发送数据时使用 AT+CIPSEND
指令来告诉 ESP8266 开始透传发送,随后我们直接发送想要的数据即可,如下操作所示:
此时你会看到接收到的数据:
若要结束透传模式,要有两个步骤:
1、发送 +++
这三个字符,值得注意的是该命令没有换行符,不然后失败。
2、接着发送 AT+CIPMODE=0
命令即可退出透传模式,即回到正常的模式。
4.3、使用 SmartConfig 为设备配网
未成功,后补充
4.4、获取网络时间
先使用 AT+CIPSNTPCFG=1,8
来设置时区,这里设置的是 东八区
。
然后使用 AT+CIPSNTPTIME?
来获取网络时间,如下所示: