51单片机通过ESP8266模块与手机进行通讯(单片机)

2019-04-15 12:38发布

 本人在校大学生一枚,前段时间参加校内大学生创新创业比赛,项目需要让手机控制单片机进行控制,捣鼓了很久,在网上找了很多资料,发现做单片机嵌入式的有很多,做移动开发的也有很多,但把他们结合起来的很少,所以现在我把我做项目的经验分享出来  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!='