51单片机与ESP8266WIFI模块控制灯的亮灭(细节描述)

51单片机与ESP8266WIFI模块控制灯的亮灭(细节描述)

前言:
通过这几天对ESP8266的学习,总结并记录一下整个学习的历程,给后学的小白提供一些避坑小妙招!

ESP8266带烧录的模组
别问为啥是这个模组,问就是8266-01S烧坏了,下面有讲原因····

 一.学习的步骤:

(1). 给自己下个决心,一定要学会(接二连三的踩坑,差点让我自闭了,所以决心很重要)

(2).巨坑一号:稍微看下ESP8266的规格书,主要看下引脚接线供电要求AT指令(尤其注意供电,建议3-3.3v
别迷信3.3-4V这个区间,是真的会烧毁IC,本人亲测,痛失8266一枚)
8266工作参数
我的模组直接插上4线USB即可,分离的可参考下面8266-01S的,是一样的接线.
这个是8266与USB烧录的接线方式
在这里插入图片描述
PCB丝印
烧录事项:
1.接3V3前,建议最好用万用表测试一下电压

2.UTXD,URXD和其它的TXD,RXD交叉连接,URXD–TXD, UTXD–RXD

3.如果接错供电,WIFI模块会很烫,正常接的话,WIFI模块只会轻微发热

(3).接线好WIFI模块后,电脑安装CH340串口驱动,连接串口调试工具,推荐下面这个

在这里插入图片描述

在这里插入图片描述

(4).在电脑端串口调试工具操作AT指令,生成WIFI
AT指令那么多,是不是迷茫不知道要具体操作哪几个?别急,我都给你们整理好了操作指令内容,顺序,及各指令操作后的响应内容(本人也是小白,最懂小白的心思了~此处应该有掌声)
在这里插入图片描述
在这里插入图片描述

关于AT指令,有几点说明下:
1.因为版本不同,有可能会出现AT指令无效的,官方说要升级固件,因为我目前使用正常,所以就不写升级固件的步骤了,官方资料都有描述,很nice。
2.上图红色方框内的AT指令都是要用的,这里只说明一下模式设置,AP模式就是8266这个模块当成热点,手机去连接它的ip地址和端口
3.把 红色方框内的指令 从上往下依次执行,就可以在手机端看到这个热点WIFI名称,我这个开始WIFI 名称是 “FaryLink_8051CA”,但我改成了’ESP8266’.

(5).掏出全身最值钱的家当–手机。下载网络调试的APP,由于我的黑白诺基亚没这功能,只能祭出平板了(华为队友)

**巨坑二号:**特别注意,关闭数据网,然后把刷抖音的WIFI不要设置成自动连接,不然,还没来得及连接8266的WIFI,手机又自动连接了家里的WIFI(我在这里就踩了坑,当时手机的网络调试助手APP怎么都连接不上8266的IP端口)


在这里插入图片描述
这样,手机就连接上了8266的WIFI了,到这里基本成功一大半了。
在这里插入图片描述
在这里插入图片描述

(6).连接成功后,就能平板发送内容,然后电脑上串口助手就会收到内容
这是操作的AT指令界面
在这里插入图片描述

如图,已显示连接成功,这时,我们可以在手机上发送一些数字试下效果··

电脑上的串口工具显示如下:
在这里插入图片描述

+IPD,0,X: 这里的0表示设备id号,表示第0台设备发送过来的信息,然后X表示信息包含的字符数量。

至此,只剩3件事,第一,修改波特率,这个是重点,ESP8266出厂默认的是115200,因为51单片机工作在4800或者9600相对稳定一点;;第二写代码;;第三,调试看效果。
在这里插入图片描述
重置完波特率后,把上面的AT指令再走一遍,都返回ok即可。
**巨坑三号:**当时跟着规格书跑AT+UART_DEF=4800,8,1,0,3,,简直坑死人!这个设置后,也会提示OK,然后把串口改成4800,但是再发送AT指令就没响应了,换成其他波特率就是显示全部乱码,当时网上找了一下,说什么的都有,什么升级AT固件,重启,其实就是把3改成0就搞定了。
在这里插入图片描述

(7).程序(官方给的很多例程文件,大家可以根据需要自行修改,控制灯亮灭的基本是一样的)
在这里插入图片描述

#include <reg52.h>
#include "intrins.h"
sbit LED1=P1^0;
typedef unsigned int u16;
typedef unsigned char u8;
u8 receive[2];
u8 sign=0;
void delay1s(void)   //?? 0us
{
    u8 a,b,c;
    for(c=46;c>0;c--)
       for(b=152;b>0;b--)
           for(a=70;a>0;a--);
    _nop_();  //if Keil,require use intrins.h
}
//?????
void Init()
{
       SCON = 0x50;      //????1,????
       TMOD = 0x20;    //T1????2,????
       PCON = 0x80;      //?????
       REN = 1;
                                         //??????
  //TH1 = 0xfa;          //???9600(11.0592)
      // TH1 = 0xf3;          //???4800(12.0000)
  TH1 = 0xf4;          //???4800(11.0592)
       TL1 = TH1;
       RI=0;
       EA = 1;
       ES = 0;
       TR1 = 1;
}
//????
void send(u8 value)
{
       ES=0; //??????
       TI=0; //????????????
       SBUF = value; //??
       while(!TI); //??????
       TI=0; //????????????
       ES=1; //??????
}

void wifi_init()
{
          u8 j=0;
          u8 a[]="AT+CWMODE=2\r\n";        //1=station 2=ap 3=station+ap          
          u8 b[]="AT+CIOBAUD=4800\r\n";//BAND
                   
          u8 d[]="AT+CIPMUX=1\r\n";                  
          u8 e[]="AT+CIPSERVER=1,5000\r\n";
          j=0;        
         while(a[j]!='\0')
        {
               send(a[j]);
            j++;
        }
          j=0;                                
         delay1s();
          while(b[j]!='\0')
        {
            send(b[j]);
            j++;
         }
         delay1s();
         j=0;                                
               
         while(d[j]!='\0')
        {
            send(d[j]);
            j++;
        }
        delay1s();
        j=0;                                
        while(e[j]!='\0')
       {
           send(e[j]);
           j++;
       }
       delay1s();
}

void wifi_data()
{
       if(receive[0]=='A')     LED1=0;    //?
       if(receive[0]=='B')    LED1=1;    //?
}   
void main()
{
       Init();
       wifi_init();
       while(1)
       {
                wifi_data();
       }
}
//????,?????+IPD,x,x:????????receive???
void ZD() interrupt 4
{
       if(RI)
       {
                RI=0;
                if(sign==1)
                {
                        receive[0]=SBUF;
                        sign=0;                    //??receive[0]???
                }
                if(SBUF==':')       sign=1;
       }
}

(8).将WIFI模块和51开发板连接在一起,注意供电3V3!注意供电3V3!注意供电3V3!注意供电3V3!注意供电3V3!注意供电3V3!在这里插入图片描述
(9).我这里直接点亮和关闭一个LED,上视频看效果
在这里插入图片描述
在这里插入图片描述
附:手机端APP操作
在这里插入图片描述
安卓下载网络调试精灵
在这里插入图片描述
在这里插入图片描述
设置IP地址:192.168.4.1 和 端口号:5000

二 . 总结
好好学习,天天向上!

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

i只喝怡宝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值