本人在校大学生一枚,前段时间参加校内大学生创新创业比赛,项目需要让手机控制单片机进行控制,捣鼓了很久,在网上找了很多资料,发现做单片机嵌入式的有很多,做移动开发的也有很多,但把他们结合起来的很少,所以现在我把我做项目的经验分享出来
Step1:配置ESP8266
通过USB转TTL模块把ESP8266模块和电脑连接起来,如
图
把ESP8266模块的
VCC,
GND,
CH_PD,UTXD,URXD口分别接USB转TTL模块的
3.3v,
地,
3.3v,RXD,TXD
连接好后,就准备用电脑用串口调试助手向ESP8266发送AT指令。
串口调试助手下载地址:百度云盘
或者下载 咸鱼ESP8266配置 提取码:hiuy
设置好串口调试助手的串口和波特率,ESP8266默认波特率为115200,把串口调试助手的波特率调为115200
,勾选左下角的发送新行
。在输入框中输入 AT+RST 然后点击发送:
如果前面的配置都没错的话,串口调试助手会接收到esp8266返回的信息,AT+RST是复位命令,ESP8266会返回一堆乱码,这时候就说明ESP8266配置成功了。
配置好ESP8266之后就可以更改模块的信息了,按照以下顺序向模块发送AT指令:
AT+CWMODE=2
AT+CWSAP="esp8266","0123456789",11,3 //更改wifi名称,名字最好不要乱改,有些特别的名字是显示不出来的。
AT+RST //配置完AT+CWMODE要重启以下模块使配置生效
AT+CIPMUX=1
AT+CIPSERVER=1,8080 //8080为端口号,之后手机和单片机进行通讯要用到,可以自己修改。
前面三条绿 {MOD}的指令配置一次就够了,断电重连配置的信息也不会改变,后面两条红 {MOD}的指令要每次重启模块之后都要配置一遍。
按顺序配置完之后就可以用手机进行连接,如果手机发现wifi并且输入密码成功连接了,就证明上面的配置成功了。
下载手机网络调试助手:
手机网络调试助手
打开手机网络调试助手,把协议类型设置为"TCP Client",IP地址设置为用AT+CIFSR指令查询到的ESP8266的IP,端口号就是前面设置的端口号。
配置好之后点连接(手机要连接好ESP8266的wifi),然后输入任意信息(如:123),点击发送。和ESP8266连接的电脑上的串口调试助手就会收到信息:
+IPD,0,3:123(不同的ESP8266收到信息的格式可能会不同)从左到右的数字中,0是代表客户的索引,3是代表收到信息的大小,至于是字节数还是什么的就不清楚了,冒号后面是收到的信息,到时候把ESP8266连接到单片机上面的时候,单片机收到的和电脑一样的字符串,我们需要编写程序解析字符串,把其中需要的信息提取出来(如:+IPD,0,3:123,把123提取出来,单片机就可以得知手机发送了123,就可以在程序里面进行对应的动作)
Step2:连接单片机和ESP8266
上面的配置只是电脑和ESP8266的连接,确保ESP8266运行正常,现在要进行单片机和ESP8266的连接了。
因为51单片机通讯的波特率为9600,所以ESP8266要与单片机进行连接通讯,就要先用电脑吧ESP8266的波特率设置为9600;
AT+CIOBAUD=9600 发送一下指令就可以设置ESP8266波特率为9600了,AT+RST重启一下ESP8266,不要忘了把电脑串口调试助手的波特率也改为9600了,不然电脑连接ESP8266就会出现错误的了。
之前说过ESP8266有些指令配置一次就可以,有些重启之后要重新配置,这些指令是下面这两条:
AT+CIPMUX=1
AT+CIPSERVER=1,8080 //8080为端口号,之后手机和单片机进行通讯要用到,可以自己修改。
这些指令之前是用电脑给ESP8266发送的,但现在ESP8266和单片机连接起来的,这时要用单片机向ESP8266发送AT指令了。
在单片机程序中加入以下代码:
void connect_init()
{
char *a="AT+CIPMUX=1
";
char *b="AT+CIPSERVER=1,8080
";
while(*a!='