OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2492|回复: 12

ESP8266 用AIRKISS一键配网,无法连接到wifi

[复制链接]

6

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2019-4-15
在线时间
39 小时
发表于 2019-12-3 15:38:10 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 zzh188065 于 2019-12-3 15:50 编辑

我把esp8266恢复出厂设置,然后按照指令来,如图,但是就是得不到无线名和密码。  图片发不上来   。之前连接成功过但是没用串口看过,所以就恢复出厂设置,重新配网试试看看

AT+CIPSTATUS
STATUS:5
OK
AT+CWQAP
OK
AT+CWMODE_DEF=1
OK
AT+CWAUTOCONN=1
OK
AT+CWSTARTSMART=3
OK
[2019-12-03 15:41:25.590]# RECV ASCII>
smartconfig type:AIRKISS


[2019-12-03 15:42:04.879]# RECV ASCII>
smartconfig type:AIRKISS


[2019-12-03 15:42:21.049]# RECV ASCII>
AT+CWSTOPSMART
OK
AT+RST
OK


最佳答案

查看完整内容[请看2#楼]

好吧这东西神经,经过我不屑的努力,无线名和无线密码又出现了。啥东西没改。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2019-4-15
在线时间
39 小时
 楼主| 发表于 2019-12-3 15:38:11 | 显示全部楼层
好吧这东西神经,经过我不屑的努力,无线名和无线密码又出现了。啥东西没改。
回复

使用道具 举报

6

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2019-4-15
在线时间
39 小时
 楼主| 发表于 2019-12-3 15:44:41 | 显示全部楼层
本帖最后由 zzh188065 于 2019-12-3 15:48 编辑

按道理 出现 smartconfig type:AIRKISS后会有无线名和无线密码出现    ,用AT+CWLAP检测过,有我要连接的无线名
回复

使用道具 举报

6

主题

1127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1656
金钱
1656
注册时间
2019-8-15
在线时间
102 小时
发表于 2019-12-3 17:31:50 | 显示全部楼层
帮顶                                
成功没有捷径
回复

使用道具 举报

10

主题

61

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
334
金钱
334
注册时间
2019-9-15
在线时间
126 小时
发表于 2020-1-9 16:41:56 | 显示全部楼层
你好,请问关于esp8266用airkiss配网,每次设备重启后联网都需要重新使用airkiss配置无线密码吗?
回复

使用道具 举报

6

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2019-4-15
在线时间
39 小时
 楼主| 发表于 2020-1-14 10:58:11 | 显示全部楼层
人生得意须尽欢 发表于 2020-1-9 16:41
你好,请问关于esp8266用airkiss配网,每次设备重启后联网都需要重新使用airkiss配置无线密码吗?

不用,第一次用airkiss配置无线密码后,以后都是自动连接wifi,除非换wifi
回复

使用道具 举报

10

主题

61

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
334
金钱
334
注册时间
2019-9-15
在线时间
126 小时
发表于 2020-1-14 18:05:36 | 显示全部楼层
zzh188065 发表于 2020-1-14 10:58
不用,第一次用airkiss配置无线密码后,以后都是自动连接wifi,除非换wifi

我用的原子哥例程修改的,只是添加了这三条命令让他支持airkiss,请问还需要加入什么命令吗,方便的话可不可以把代码分享一下,谢谢
atk_8266_send_cmd("AT+CWMODE_DEF=1","OK",50);  //配置为单sta模式
        atk_8266_send_cmd("AT+CWAUTOCONN=1","OK",50); //使能上电自动连接AP
        atk_8266_send_cmd("AT+CWSTARTSMART=3","OK",50);  // 开启智能配网
回复

使用道具 举报

6

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2019-4-15
在线时间
39 小时
 楼主| 发表于 2020-1-15 09:44:43 | 显示全部楼层
就这三条够了
回复

使用道具 举报

6

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2019-4-15
在线时间
39 小时
 楼主| 发表于 2020-1-15 09:45:07 | 显示全部楼层
人生得意须尽欢 发表于 2020-1-14 18:05
我用的原子哥例程修改的,只是添加了这三条命令让他支持airkiss,请问还需要加入什么命令吗,方便的话可 ...

就这三条够了
回复

使用道具 举报

10

主题

61

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
334
金钱
334
注册时间
2019-9-15
在线时间
126 小时
发表于 2020-1-15 13:47:24 | 显示全部楼层

每次掉电重启都不行啊,都需要通过airkiss重新输入,这是我修改的,能帮忙看看哪里有问题吗?
u8 netpro=0;        //网络模式
u8   a=123;
char b=0xAA;
char c=0x55;
extern wifi_data WIFIDA;
u8 atk_8266_wifista_test(void)
{
        u8 i=0;
        u8 netpro=0;        //网络模式
        u8 key;
        u8 timex=0;
        u8 ipbuf[16];         //IP缓存
        u8 *p;
        u16 t=998;                //加速第一次获取链接状态
        u8 res=0;
        u16 rlen=0;
        u8 constate=0;        //连接状态
        p=mymalloc(32);                                                        //申请32字节内存
        atk_8266_send_cmd("AT+CWMODE=1","OK",50);                //设置WIFI STA模式
        atk_8266_send_cmd("AT+RST","OK",20);                //DHCP服务器关闭(仅AP模式有效)
//       
        atk_8266_send_cmd("AT+CWMODE_DEF=1","OK",50);  //配置为单sta模式
        atk_8266_send_cmd("AT+CWAUTOCONN=1","OK",50); //使能上电自动连接AP
        atk_8266_send_cmd("AT+CWSTARTSMART=3","OK",50);  // 开启智能配网
        atk_8266_send_cmd("AT+CIPSTATUS","OK",50);  //释放快连所占内存
       
       
        delay_ms(1000);         //延时3S等待重启成功
        delay_ms(1000);
        delay_ms(1000);
        delay_ms(1000);
        //设置连接到的WIFI网络名称/加密方式/密码,这几个参数需要根据您自己的路由器设置进行修改!!
//        sprintf((char*)p,"AT+CWJAP=\"%s\",\"%s\"",wifista_ssid,wifista_password);//设置无线参数:ssid,密码
        while(atk_8266_send_cmd(p,"WIFI GOT IP",300));                                        //连接目标路由器,并且获得IP
PRESTA:
//        netpro|=atk_8266_netpro_sel(50,30,(u8*)ATK_ESP8266_CWMODE_TBL[0]);        //选择网络模式
        netpro=0x02;
//        if(netpro&0X02)   //UDP
//        {
                                LCD_Clear(WHITE);
                                POINT_COLOR=RED;
                                Show_Str_Mid(0,30,"ATK-ESP WIFI-STA 测试",16,240);
                                Show_Str(30,50,200,16,"正在配置ATK-ESP模块,请稍等...",12,0);
//                                if(atk_8266_ip_set("WIFI-STA 远端UDP IP设置",(u8*)ATK_ESP8266_WORKMODE_TBL[2],(u8*)portnum,ipbuf))goto PRESTA;        //IP输入
                                sprintf((char*)p,"AT+CIPSTART=\"UDP\",\"%s\",%s",wifista_ip,(u8*)portnum);    //配置目标UDP服务器
                                delay_ms(1000);         //延时3S等待重启成功
                                delay_ms(1000);
                                delay_ms(1000);
                                delay_ms(1000);
                                delay_ms(200);
                                atk_8266_send_cmd("AT+CIPMUX=0","OK",20);  //单链接模式
                                delay_ms(200);
                                LCD_Clear(WHITE);
                                while(atk_8266_send_cmd(p,"OK",500));
LCD_Clear(WHITE);
                        POINT_COLOR=RED;
                        Show_Str_Mid(0,30,"ATK-ESP WIFI-STA 测试",16,240);
                        Show_Str(30,50,200,16,"正在配置ATK-ESP模块,请稍等...",12,0);                       
                        LCD_Fill(30,50,239,50+12,WHITE);                        //清除之前的显示
                        Show_Str(30,50,200,16,"WK_UP:退出测试  KEY0:发送数据",12,0);
                        LCD_Fill(30,80,239,80+12,WHITE);
                        atk_8266_get_wanip(ipbuf);//服务器模式,获取WAN IP
                        sprintf((char*)p,"IP地址:%s 端口:%s",ipbuf,(u8*)portnum);
                        Show_Str(30,65,200,12,p,12,0);                                //显示IP地址和端口       
                        Show_Str(30,80,200,12,"状态:",12,0);                 //连接状态
                        Show_Str(120,80,200,12,"模式:",12,0);                 //连接状态
                        Show_Str(30,100,200,12,"发送数据:",12,0);         //发送数据
                        Show_Str(30,115,200,12,"接收数据:",12,0);        //接收数据
                        atk_8266_wificonf_show(30,180,"请设置路由器无线参数为:",(u8*)wifista_ssid,(u8*)wifista_encryption,(u8*)wifista_password);
                        POINT_COLOR=BLUE;
                        Show_Str(120+30,80,200,12,(u8*)ATK_ESP8266_WORKMODE_TBL[2],12,0);                 //连接状态
                        USART2_RX_STA=0;
                       
                        while(1)
                        {
                                key=KEY_Scan(0);
                                if(key==WKUP_PRES)                        //WK_UP 退出测试                 
                                {
                                        res=0;                                       
                                        atk_8266_quit_trans();        //退出透传
                                        atk_8266_send_cmd("AT+CIPMODE=0","OK",20);   //关闭透传模式
                                        break;                                                                                                 
                                }
                                else if(key==KEY0_PRES)        //KEY0 发送数据
                                {
//                                delay_ms(1000);
//                                delay_ms(1000);
//                                delay_ms(1000);
//                                delay_ms(1000);
//                                delay_ms(1000);
//                                delay_ms(1000);
//                                i++;
//                                if(i==0xff)
//                                {
//                                i=0;
//                                }
//                                        if((netpro==3)||(netpro==2))   //UDP
//                                        {
//                                                sprintf((char*)p,"%02d\r\n",i,t/10);//测试数据
//                                                sprintf((char*)p,"02d%02d%02d%02d%02d%02d%02d%02d%02d%02d%02d%02d%02d%02d%02d",WIFIDA.Header,WIFIDA.DeviceClass1,WIFIDA.DeviceClass2,WIFIDA.DeviceClass3,WIFIDA.DeviceClass4,WIFIDA.DeviceClass5,WIFIDA.DeviceClass5,WIFIDA.DeviceClass7,WIFIDA.DeviceClass8,WIFIDA.WordLen1,WIFIDA.WordLen2,WIFIDA.WordLen3,WIFIDA.WordLen4,WIFIDA.CRCH16,WIFIDA.CRCL16,WIFIDA.Tail);//测试数据
                                               
                                                unsigned char WIFIsendbuf2[18] = {0x41,0x41,0x02,0x02,0x03,0x04,0x00,0x06,0x07,0x08, 0x0a,0x0b,0x0a,0x0b,0x23,0x32,0x35,0x35};
                                               
                                               
//                                                Uart2_TX(WIFIsendbuf2,16);
//                                                sprintf((char*)p,"AA55%02d\r\n",a);
                                                Show_Str(30+54,100,200,12,p,12,0);
                                                atk_8266_send_cmd("AT+CIPSEND=16","OK",200);  //发送指定长度的数据
                                                delay_ms(200);
//                                                atk_8266_send_data(p,"OK",100);  //发送指定长度的数据
                                                atk_8266_send_data((u8*)&WIFIDA,"OK",100,16);  //发送指定长度的数据
                                                timex=100;
//                                        }
//                                        else if((netpro==1))   //TCP Client
//                                        {
//                                                atk_8266_quit_trans();
//                                                atk_8266_send_cmd("AT+CIPSEND","OK",20);         //开始透传           
//                                                sprintf((char*)p,"ATK-8266%s测试%d\r\n",ATK_ESP8266_WORKMODE_TBL[netpro],t/10);//测试数据
//                                                Show_Str(30+54,100,200,12,p,12,0);
//                                                u2_printf("%s",p);
//                                                timex=100;
//                                        }
//                                        else    //TCP Server
//                                        {
//                                                sprintf((char*)p,"ATK-8266%s测试%02d\r\n",ATK_ESP8266_WORKMODE_TBL[netpro],t/10);//测试数据
//                                                Show_Str(30+54,100,200,12,p,12,0);
//                                                atk_8266_send_cmd("AT+CIPSEND=0,25","OK",200);  //发送指定长度的数据
//                                                delay_ms(200);
//                                                atk_8266_send_data(p,"OK",100);  //发送指定长度的数据
//                                                timex=100;
//                                        }
                                }else;
                       
                                if(timex)timex--;
                                if(timex==1)LCD_Fill(30+54,100,239,112,WHITE);
                                t++;
                                delay_ms(10);
                                if(USART2_RX_STA&0X8000)                //接收到一次数据了
                                {
                                        rlen=USART2_RX_STA&0X7FFF;        //得到本次接收到的数据长度
                                        USART2_RX_BUF[rlen]=0;                //添加结束符
                                        printf("%s",USART2_RX_BUF);        //发送到串口   
                                        sprintf((char*)p,"收到%d字节,内容如下",rlen);//接收到的字节数
                                        LCD_Fill(30+54,115,239,130,WHITE);
                                        POINT_COLOR=BRED;
                                        Show_Str(30+54,115,156,12,p,12,0);                         //显示接收到的数据长度
                                        POINT_COLOR=BLUE;
                                        LCD_Fill(30,130,239,319,WHITE);
                                        Show_Str(30,130,180,190,USART2_RX_BUF,12,0);//显示接收到的数据  
                                        USART2_RX_STA=0;
                                        if(constate!='+')t=1000;                //状态为还未连接,立即更新连接状态
                                        else t=0;                   //状态为已经连接了,10秒后再检查
                                }  
                                if(t==1000)//连续10秒钟没有收到任何数据,检查连接是不是还存在.
                                {
//                        //                LCD_Fill(30+54,125,239,130,WHITE);
//                                        LCD_Fill(60,80,120,92,WHITE);
                                        constate=atk_8266_consta_check();//得到连接状态
                                        if(constate=='+')Show_Str(30+30,80,200,12,"连接成功",12,0);  //连接状态
                                        else Show_Str(30+30,80,200,12,"连接失败",12,0);          
                                        t=0;
                                }
                                if((t%20)==0)LED0=!LED0;
                                atk_8266_at_response(1);
                        }
        myfree(p);                //释放内存
        return res;               
}
回复

使用道具 举报

6

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2019-4-15
在线时间
39 小时
 楼主| 发表于 2020-1-15 14:46:02 | 显示全部楼层
人生得意须尽欢 发表于 2020-1-15 13:47
每次掉电重启都不行啊,都需要通过airkiss重新输入,这是我修改的,能帮忙看看哪里有问题吗?
u8 netpro ...

重启不重连,这个问题怎么说呢,我感觉跟硬件,信号不好有关。第一次用airkiss配置无线密码后,重启后是会自动连接。我也遇到过好多次重启不重连,那会没连上但是过多久自己就连上了,最后我确定跟程序没毛关系。这个程序的话,每次进入函数都要airkiss,每次重启,单片机都发airkiss指令给它。这点跟我不一样。我的这个是按键进入airkiss。有需要才发。你可以把那三条隐掉看看,建议单片机在调试模式运行,在8266接串口到电脑,这是测试必须的。
回复

使用道具 举报

10

主题

61

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
334
金钱
334
注册时间
2019-9-15
在线时间
126 小时
发表于 2020-1-15 15:09:09 | 显示全部楼层
zzh188065 发表于 2020-1-15 14:46
重启不重连,这个问题怎么说呢,我感觉跟硬件,信号不好有关。第一次用airkiss配置无线密码后,重启后是 ...

好的  我在调试一下谢谢
回复

使用道具 举报

10

主题

61

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
334
金钱
334
注册时间
2019-9-15
在线时间
126 小时
发表于 2020-1-15 17:57:55 | 显示全部楼层
人生得意须尽欢 发表于 2020-1-15 15:09
好的  我在调试一下谢谢

你好,我修改了我都程序,让他先判断是否联网,如果经过一段时间还没有就开启airkiss(为第一次联网准备),可重启后还是不行,还是需要airkiss配网才行。方便的话可以把这里的代码分享一下吗?谢谢 1808879413@qq.com我都邮箱
atk_8266_send_cmd("AT+RST","OK",20);                //DHCP服务器关闭(仅AP模式有效)
        atk_8266_send_cmd("AT+CWMODE=1","OK",50);                //设置WIFI STA模式
//        atk_8266_send_cmd("AT+CWMODE_DEF=1","OK",50);  //配置为单sta模式
        atk_8266_send_cmd("AT+CWAUTOCONN=1","OK",50); //使能上电自动连接AP
       
       
        delay_ms(1000);         //延时3S等待重启成功
        delay_ms(1000);
        delay_ms(1000);
        delay_ms(1000);
        delay_ms(1000);
        delay_ms(1000);
        //设置连接到的WIFI网络名称/加密方式/密码,这几个参数需要根据您自己的路由器设置进行修改!!
//        sprintf((char*)p,"AT+CWJAP=\"%s\",\"%s\"",wifista_ssid,wifista_password);//设置无线参数:ssid,密码
        while(atk_8266_send_cmd(p,"WIFI GOT IP",300))//连接目标路由器,并且获得IP
        {
        a++;
                if(a==0x0f)
                {
                atk_8266_send_cmd("AT+RST","OK",20);                //DHCP服务器关闭(仅AP模式有效)
//       
        atk_8266_send_cmd("AT+CWMODE_DEF=1","OK",50);  //配置为单sta模式
        atk_8266_send_cmd("AT+CWAUTOCONN=1","OK",50); //使能上电自动连接AP
        atk_8266_send_cmd("AT+CWSTARTSMART=3","OK",50);  // 开启智能配网
//        atk_8266_send_cmd("AT+CIPSTATUS","OK",50);  //释放快连所占内存
                        a=0;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-19 17:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表