前一阵买了一个esp8266,使用了一段时间之后感觉物有所值,很是值得拿来学习使用,记录下使用的过程,以及期间遇到的一些错误,希望对于大家有帮助。

首先上图,就是这么个东西
esp8266
确实比较小,跟大拇指大小差不多,做一些嵌入式的小设计不占空间又很好用。esp8266有几个管脚,vcc3.3v供电,gnd接地,rxd、txd接串口(注意反接),,ch_pd接高电平,rst以及gpio那几个管脚无需接电路。这是一个直观的连接方式。
guanjiao

一.容易出的错

esp8266的指令网上很多,也都解释的很详细,就是有时候有些过程介绍的不太细致,或者说有点模糊,让人容易出错,在此记录下来。
1.管脚的连接方式,由于usb-ttl进行串口通信时电压不是太理想,在进行调试的时候最好使用外接电源,即使用外接3.3进行供电。这就容易导致一个问题,只把usb-ttl的rxd和txd接到wifi模块上,电源和地都没有接。但是进行串口调试的时候必须要共地,不然数据肯定会传输错误。只需要把usb-ttl的gnd接到外接电源的地就好了。并且比较旧的模块波特率是9600bps,而不是115200bps,如果选用过高的波特率,会出现错误。
2.改变模块工作状态一定要重启。很多时候设置为ap模式或者station模式忘了重启,结果模式没有生效,后面的一系列操作都进行不了。
3.进行tcp等通信一定要在同一个子网下面。学过计算机网的一看就知道了,如果不在同一个子网下面,并且server所在主机没有外网地址,肯定会连接出错。住需要用路由器或者电脑开个热点进行处理就好了。

二.常用的指令介绍

esp8266主要用的指令就是AT+***,指令名称也都比较容易记忆,即使记不住官网上也有说明文档,一查便知。
1.正常启动的时候esp8266串口会返回乱码+ready。如果没有ready的话就查一下电路连接波特率等是不是正确吧。
2.AT,这个就是单纯测试链接的通常与否的,不会对esp8266做任何更改。如果联通正常,会返回“OK”。
3.AT+RST,重启模块,有时候设置了一些模式等需要输入重启来使设置生效。
4.AT+CWMODE=2,这个是设置工作模式,1是station模式,即只能连接别人的wifi。2是ap模式,创建热点,别人连上esp8266.3是station+ap模式,在创建热点的同时连接别人的wifi。
5.AT+CIPMUX=1,这个是设置多链接模式,是esp8266与其他设备建立多个tcp(udp)连接,不过设置了这个就无法开启透传模式。
6.AT+CIPSERVER=1,8080,开启服务器,服务器端口是8080,这样其他设备就可以将其作为tcp或者udp服务器,进行连接以及数据的处理。
7.AT+CWSAP='TXINR.TOP','12345678',1,3,这个看着参数多点,实际也很简单,第一个是热点的名称,第二个是密码,第三个是信道号,第四个是加密方式(3对应的是wpa2),具体加密方式可以看官方文档。
8.AT+CIPSEND=0,4,这个是向tcp的客户端发送数据(实际服务器也是一样的)。0代表设备号,4代表发送的内容大小,这个地方设置4个字节。
9.AT+CIFSR,这个是显示esp8266的ip地址,建立连接的时候必须要有ip地址啊!
还有一些常用的命令,不过我们项目没有使用到或者使用不是很多,就不再赘述了。

三.实战测试

1.esp8266接上usb串口线,连接电脑,注意共地。电脑打开串口调试助手,会收到乱码+ready。

b试篅k...
[Vendor:www.ai-thinker.com Version:0.9.2.4]
ready

有这个提示就证明开启成功了。
2.串口输入AT+CWMODE=2,注意<font color='red'>勾选发送新行</font>。如果模式本来就是ap模式,会提示no change,否则会提示重启以便生效。如果提示no change直接跳到第5步就好了。也可以一步一步进行下去。
3.串口输入AT+CWSAP='ESP8266','12345678',1,3,创建热点成功。
4.串口输入AT+RST重启,回复信息跟第一步一样。
5.串口输入AT+CIPMUX=1,开启多链接模式。如果正确了返回一个OK,继续下一步就好了。
6.串口输入AT+CIPSERVER=1,8800,开启服务器,端口为8800,如果正确了仍然返回一个OK
7.电脑调试的话连上esp8266的无线网,本测试是"ESP8266",打开tcp调试助手,ip地址为"192.168.4.1",貌似esp8266的ip地址都是这个。连接测试就好了。
esp8266_wifi
8.多说一句,由于开启了服务器模式,所以无法关闭透传模式。非透传模式会在接收到的消息前面加上前缀"+IPD:1,4:CONTENT",其中1是指设备号,4值接收数据的大小。
懒得拆分图片了,全部截下来看下吧。
set1
set2
tcp
实际上本次仅仅测试了非常简单的一些功能,用它来实现更大的更强的功能也是可以的,比如连上外网的服务器获取天气,使用单片机进行数据解析,然后控制一些东西,都不是很难实现。期待大家的努力。
在官网上也有挺多人做了很高级的程序,大家可以去看看。没了防止打广告的嫌疑,就不直接说了。实际上上面也已经有地址了。

c esp8266

发表新评论