8266作为AP时,设备连接8266经常不成功
Re: 8266作为AP时,设备连接8266经常不成功
Postby Paulwu » Thu Mar 03, 2016 6:03 pm
hey faye:
1 更换了很多模块测试过,排除了硬件问题。
2 屏蔽所有代码,仅仅配置AP开启AP模式,也就是您所给出的例子。大部分手机链接速度很快,部分手机速度慢,部分手机多次连接不成功反复链接。
3 我们现在项目中上电初始化了:station 配置自动重连,AP配置开启AP,tcp初始化,UDP初始化。当模块station连接上无线路由后,模块AP自动关闭,当模块station无法连接无线路由后,自动开启AP模式供手机连接模块AP。发现station会每1s自动重连路由一次,因AP与station共用同一信道,station扫描路由过程会不停的切换信道,导致AP连接困难时一方面的原因,这里顺便请教下,如何设置station重连路由的间隔时间呢?
4 我测试过AP模式的各种配置参数,包括信道设置,发现对连接成功率影响不大;加密方式,发现选用无密码成功率会高点;设置成11b/g没有明显改善;限制传输速率在1M也没有明显改善。
那么基于我们这种应用,要怎么配置才能让AP容易链接呢?
TKS!
1 更换了很多模块测试过,排除了硬件问题。
2 屏蔽所有代码,仅仅配置AP开启AP模式,也就是您所给出的例子。大部分手机链接速度很快,部分手机速度慢,部分手机多次连接不成功反复链接。
3 我们现在项目中上电初始化了:station 配置自动重连,AP配置开启AP,tcp初始化,UDP初始化。当模块station连接上无线路由后,模块AP自动关闭,当模块station无法连接无线路由后,自动开启AP模式供手机连接模块AP。发现station会每1s自动重连路由一次,因AP与station共用同一信道,station扫描路由过程会不停的切换信道,导致AP连接困难时一方面的原因,这里顺便请教下,如何设置station重连路由的间隔时间呢?
4 我测试过AP模式的各种配置参数,包括信道设置,发现对连接成功率影响不大;加密方式,发现选用无密码成功率会高点;设置成11b/g没有明显改善;限制传输速率在1M也没有明显改善。
那么基于我们这种应用,要怎么配置才能让AP容易链接呢?
TKS!
Re: 8266作为AP时,设备连接8266经常不成功
Postby ESP_Faye » Fri Mar 04, 2016 9:47 am
您好,
这确实会导致 AP 连接困难,建议您注册 wifi_set_event_handler_cb 监测 WiFi event,如果收到 station 从路由断开的事件,则起一个 timer 若超时 station 仍未能重新连上路由,则调用 wifi_station_disconnect 这样会停止重连路由的行为,再使能 softAP,通过 softAP 端设置重新连接路由器。
发现station会每1s自动重连路由一次,因AP与station共用同一信道,station扫描路由过程会不停的切换信道,导致AP连接困难时一方面的原因。
这确实会导致 AP 连接困难,建议您注册 wifi_set_event_handler_cb 监测 WiFi event,如果收到 station 从路由断开的事件,则起一个 timer 若超时 station 仍未能重新连上路由,则调用 wifi_station_disconnect 这样会停止重连路由的行为,再使能 softAP,通过 softAP 端设置重新连接路由器。
Re: 8266作为AP时,设备连接8266经常不成功
Postby Paulwu » Thu Mar 10, 2016 11:08 am
你好 faye:
我发现了个奇怪现象,请你帮我分析下会是哪里的问题。
当8266断开了路由模式的 无线路由连接,然后进入AP模式,出现手机难链接上8266的AP现象。此时表现如下:
1 我用HTC ONE M8手机很容易链接上8266的AP。
2 测试了华为P6 MATE7 很难链接/ 测试酷派某型号也很难链接/测试联想某型号手机也很难链接上
3 当所有这些难链接的手机无法连接到8266时,我使用HTC ONE M8手机连接上8266的AP,然后再断开连接,此时别的难链接手机都很容易就能链接上8266的AP。
根据这一现象能否分析出8266难链接的在哪里呢?
顺便是否方便给个你们技术支持的电话,QQ,或者邮箱呢?如果不方便公开,我留下联系邮箱可否给我发个邮件呢?elecd@163.com
TKS!
我发现了个奇怪现象,请你帮我分析下会是哪里的问题。
当8266断开了路由模式的 无线路由连接,然后进入AP模式,出现手机难链接上8266的AP现象。此时表现如下:
1 我用HTC ONE M8手机很容易链接上8266的AP。
2 测试了华为P6 MATE7 很难链接/ 测试酷派某型号也很难链接/测试联想某型号手机也很难链接上
3 当所有这些难链接的手机无法连接到8266时,我使用HTC ONE M8手机连接上8266的AP,然后再断开连接,此时别的难链接手机都很容易就能链接上8266的AP。
根据这一现象能否分析出8266难链接的在哪里呢?
顺便是否方便给个你们技术支持的电话,QQ,或者邮箱呢?如果不方便公开,我留下联系邮箱可否给我发个邮件呢?elecd@163.com
TKS!
Re: 8266作为AP时,设备连接8266经常不成功
Postby ESP_Faye » Fri Mar 11, 2016 2:53 pm
您好,
请问“进入 AP 模式” 指的是进入 station+softAP 模式,还是单 softAP 模式?
我们技术支持的邮箱为 feedback@espressif.com。
当8266断开了路由模式的 无线路由连接,然后进入AP模式
请问“进入 AP 模式” 指的是进入 station+softAP 模式,还是单 softAP 模式?
我们技术支持的邮箱为 feedback@espressif.com。
Re: 8266作为AP时,设备连接8266经常不成功
Postby yueda » Wed Jun 22, 2016 12:14 pm
那个测试代码任何手机是可以连接上。
如下是部分代码:
uint8 ap_ssid[32]="ESP-T";
uint8 ap_passwd[64]="66666666";
void ICACHE_FLASH_ATTR
user_set_softap_config(void)
{
// at_port_print("config\r\n");
struct softap_config config;
wifi_softap_get_config(&config); // Get config first.
os_memset(config.ssid, 0, 32);
os_memset(config.password, 0, 64);
os_memcpy(config.ssid, ap_ssid, 32);
os_memcpy(config.password, ap_passwd, 64);
config.authmode = AUTH_WPA_WPA2_PSK;
config.ssid_len = 0;// or its actual length
config.beacon_interval = 100;
config.max_connection = 4;
if(wifi_softap_set_config(&config)){// Set ESP8266 softap config .
//at_port_print("wifi_softap_set_config ok.\r\n");
}else{
//at_port_print("wifi_softap_set_config fault.\r\n");
}
struct station_info * station = wifi_softap_get_station_info();
while(station){
os_printf("bssid:MACSTR,ip:IPSTR\r\n",MAC2STR(station->bssid),IP2STR(&station->ip));
station = STAILQ_NEXT(station,next);
at_port_print("connect ok\r\n");
}
wifi_softap_free_station_info();
wifi_softap_dhcps_stop();
struct ip_info info;
IP4_ADDR(&info.ip,192,168,5,1);
IP4_ADDR(&info.gw,192,168,5,1);
IP4_ADDR(&info.netmask,255,255,255,0);
wifi_set_ip_info(SOFTAP_IF,&info);
struct dhcps_lease dhcp_lease;
IP4_ADDR(&dhcp_lease.start_ip,192,168,5,105);
IP4_ADDR(&dhcp_lease.end_ip,192,168,5,110);
wifi_softap_set_dhcps_lease(&dhcp_lease);
wifi_softap_dhcps_start();
// at_port_print("config down\r\n");
}
void user_init(void)
{
wifi_set_opmode(STATIONAP_MODE);
at_customLinkMax = 5;
at_init();
uart_init(115200, 115200);
at_cmd_array_regist(&at_custom_cmd[0], sizeof(at_custom_cmd)/sizeof(at_custom_cmd[0]));
wifi_set_macaddr(STATION_IF, sta_mac);
wifi_set_macaddr(SOFTAP_IF, sofap_mac);
user_get_macaddr_op();
user_set_softap_config(); // refer to 0a_esp8266_datasheet_en_v4.6.pdf
}
如上的代码就会出现部分手机连接不上的问题!?不知道什么原因...
另外如果即使在softap功能代码之外的函数里面声明了数组等局部变量,会导致之前能连接上的手机也无法连接上,板子的内存应该不是问题吧。!?
谢谢!
如下是部分代码:
uint8 ap_ssid[32]="ESP-T";
uint8 ap_passwd[64]="66666666";
void ICACHE_FLASH_ATTR
user_set_softap_config(void)
{
// at_port_print("config\r\n");
struct softap_config config;
wifi_softap_get_config(&config); // Get config first.
os_memset(config.ssid, 0, 32);
os_memset(config.password, 0, 64);
os_memcpy(config.ssid, ap_ssid, 32);
os_memcpy(config.password, ap_passwd, 64);
config.authmode = AUTH_WPA_WPA2_PSK;
config.ssid_len = 0;// or its actual length
config.beacon_interval = 100;
config.max_connection = 4;
if(wifi_softap_set_config(&config)){// Set ESP8266 softap config .
//at_port_print("wifi_softap_set_config ok.\r\n");
}else{
//at_port_print("wifi_softap_set_config fault.\r\n");
}
struct station_info * station = wifi_softap_get_station_info();
while(station){
os_printf("bssid:MACSTR,ip:IPSTR\r\n",MAC2STR(station->bssid),IP2STR(&station->ip));
station = STAILQ_NEXT(station,next);
at_port_print("connect ok\r\n");
}
wifi_softap_free_station_info();
wifi_softap_dhcps_stop();
struct ip_info info;
IP4_ADDR(&info.ip,192,168,5,1);
IP4_ADDR(&info.gw,192,168,5,1);
IP4_ADDR(&info.netmask,255,255,255,0);
wifi_set_ip_info(SOFTAP_IF,&info);
struct dhcps_lease dhcp_lease;
IP4_ADDR(&dhcp_lease.start_ip,192,168,5,105);
IP4_ADDR(&dhcp_lease.end_ip,192,168,5,110);
wifi_softap_set_dhcps_lease(&dhcp_lease);
wifi_softap_dhcps_start();
// at_port_print("config down\r\n");
}
void user_init(void)
{
wifi_set_opmode(STATIONAP_MODE);
at_customLinkMax = 5;
at_init();
uart_init(115200, 115200);
at_cmd_array_regist(&at_custom_cmd[0], sizeof(at_custom_cmd)/sizeof(at_custom_cmd[0]));
wifi_set_macaddr(STATION_IF, sta_mac);
wifi_set_macaddr(SOFTAP_IF, sofap_mac);
user_get_macaddr_op();
user_set_softap_config(); // refer to 0a_esp8266_datasheet_en_v4.6.pdf
}
如上的代码就会出现部分手机连接不上的问题!?不知道什么原因...
另外如果即使在softap功能代码之外的函数里面声明了数组等局部变量,会导致之前能连接上的手机也无法连接上,板子的内存应该不是问题吧。!?
谢谢!
Who is online
Users browsing this forum: No registered users and 13 guests
Login
Newbies Start Here
Are you new to ESP8266?
Unsure what to do?
Dunno where to start?
Start right here!
Latest SDK
Documentation
Complete listing of the official ESP8266 related documentation release by ESPRESSIF!
Must read here!
- All times are UTC+08:00
- Top
- Delete all board cookies
About Us
Espressif Systems is a fabless semiconductor company providing cutting-edge low power WiFi SoCs and wireless solutions for wireless communications and Internet of Things applications. We are the manufacturer of ESP8266EX.