完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,我成功地制作了一个运动传感器。问题是,出于某种原因,当我将 wifi 配置保存到 spiffs 时,需要 6 到 15 秒才能连接到 wifi。同时,使用硬编码值的相同算法在 0.2 秒内连接。只是想知道我错过了什么:-/
注意:这是一个更大的程序的一部分,它提供了一个“配置”和一个“深度睡眠”模式,第一个处于 softAP 模式,第二个使用这个在 setup() 中调用的函数配置设备时以及从深度睡眠返回时,arduino ide 中的功能部分。 (请参阅硬编码版本的注释行) 代码:全选void start_wifi_client() { //const char* client_ssid = \"test_iot_2g\"; //const char* client_password = \"Test1234\"; //IPAddress wifi_ip(10,0,0,144); //IPAddress wifi_dns(10,0,0,4); //IPAddress wifi_gateway(10,0,0,129); //IPAddress wifi_subnet(255,255,255,224); // **** loading from SPIFFS **** String s,wifi_ssid=\"\",wifi_password; IPAddress wifi_ip,wifi_subnet,wifi_gateway; File file = SPIFFS.open(\"/wifi.cfg\",\"r\"); if(!file) { Serial.println(\"Could not open config file\"); } else { Serial.println(\"Reading Config...\"); do { s = file.readStringUntil(\'\\n\'); if(s.startsWith(\"ssid\")) { wifi_ssid=s.substring(s.indexOf(\'=\')+1,s.length()); Serial.print(wifi_ssid); } else if(s.startsWith(\"passkey\")) { wifi_password=s.substring(s.indexOf(\'=\')+1,s.length()); } //Serial.print(wifi_password); } else if(s.startsWith(\"ip\")) { wifi_ip.fromString(s.substring(s.indexOf(\'=\')+1,s.length())); Serial.print(wifi_ip.toString()); } else if(s.startsWith(\"subnet\")) { wifi_subnet.fromString(s.substring(s.indexOf(\'=\')+1,s.length())); Serial.print(wifi_subnet.toString()); } else if(s.startsWith(\"gateway\")) { wifi_gateway.fromString(s.substring(s.indexOf(\'=\')+1,s.length())); Serial.print(wifi_gateway.toString()); } Serial.print(\"\\n\"); } while(file.available()); delay(10); file.close(); // *** end loading config *** Serial.println(\"\"); Serial.print(\"Connecting to: \"); Serial.print(wifi_ssid); Serial.print(\"\\n\"); //WiFi.forceSleepWake(); //WiFi.persistent(false); WiFi.mode(WIFI_STA); WiFi.config(wifi_ip,wifi_gateway,wifi_subnet); float time_count=0; Serial.println(\"connected to wifi\"); WiFi.begin(wifi_ssid, wifi_password); do { delay(100); // led_blink(); Serial.print(\".\"); time_count+=100; } while(WiFi.status() != WL_CONNECTED); Serial.print(\"\\ntook \"); Serial.print((time_count/1000)); Serial.print(\" sec to connect\\n\"); Serial.print(\"Our ip is: \"); Serial.print(WiFi.localIP()); Serial.print(\"\\n\"); } } |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
475浏览 6评论
399浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
380浏览 5评论
385浏览 4评论
361浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-1 19:04 , Processed in 0.814582 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号