一、准备
之前在网上找了很多关于ESP8266模块和单片机互联的资料,但是看完都一头雾水,直到向买的店要了实例代码后,才完成这一功能。对于我这样的新手,单单看模块说明书就写出单片机中的相关代码不要太难。本帖仅用于临时使用却找不到方法,而不是探究原理的爱好者们。需要准备的模块有:ESP8266-01模块、USB转TTL模块、单片机开发板或单片机学习板、LED灯、蜂鸣器、杜邦线,其他的可以自己加。
二、串口调试ESP
首先要用ESP8266模块和USB转TTL模块进行串口调试,看你的wifi模块是不是正常工作的。具体教程百度很多,我就不过多说明了。但是记得串口调试时候要把ESP8266的波特率改为9600,因为51单片机最大也就9600,而且试验证明用单片机发送指令去修改波特率会有问题,保险点还是串口调试就修改好。除了波特率,其他的可以在单片机程序中设置。
上图是ESP8266-01的接脚说明,在官方给的资料里有。串口调试时候接线方法为:CH_PD和VCC接3.3伏接口(模块工作电压3.3V,过高容易烧坏),esp的TXD接口接转换模块的RXD,esp的RXD接TXD,也就是读接写,写接读。不要接反。GND接GND,串口调试不是烧录,不用接烧录用的口。而且自己烧录不熟练容易成板砖。
接好后,电源指示灯亮,串口的驱动玩单片机的应该都装好了,打开串口调试软件sscom42,sscom其他版本也差不多。如果串口没接好或者驱动不正常,软件打开会提示无法找到串口,找到就正常进入。然后点击软件的打开串口按钮,在“字符串输入框”输入:“AT”发送,返回“OK”,正常。然后输入“AT+RST”发送,重启。其他指令可以百度AT指令查看,或者在我的附件里有ESP8266的官方文件。
测试后一定要记得把波特率在串口调试中修改了,发送“AT+CIOBAUD=9600”,返回OK后修改波特率成功。
三、接入单片机
接入单片机的接线和串口大致一样。CH_PD和VCC接3.3V,CH_PD最好先串联一个10k电阻再接电源防止烧坏,如果单片机工作电压是5V,最好再接一个三端稳压降压模块,把5V输入,输出3.3V给wifi模块。在STC89C52RC单片机中,P3.0是RXD口,接Wifi模块的TXD口。P3.1是TXD口,接Wifi模块RXD口。记住度对写,写对读。(烧录单片机程序的时候要把wifi模块接的P3.0和P3.1接线拔了,因为烧录用的模块接口也是P3.0和P3.1,烧录完再接上,不然会发现烧录软件没反应)
接好了后,把LED灯和蜂鸣器也接好就行了。下面是程序。其中有几个点注意,接收到的数据是字符串,不能直接进行整数的判断,要转换或者判断字符再赋值整数。代码中可以设置端口号,这里是8080,。IP地址我没有改,是官方默认的192.168.4.1。下载一个手机的串口调试助手,你也可以自己写一个,用E4A中文编码很适合初学者。选择TCP调试。连接小车的wifi,(wifi名字一般带ESP8266,也可以串口调试时候自己改)然后输入IP和端口,连接,发送字符“0”、“1”、“2”进行测试。
单片机源程序如下:
|