我有一个关于从NodeMCU ESP8266板到Apple iPhone6个人热点的wifi连接的问题 . iOS版本是10.2.1(14027) . 我使用的NodeMCU代码使用WPA2与家庭WLAN一起工作,没有任何问题 . 如果我更改SSID和密码以连接到Apple热点, while()
循环将永远运行(请参阅代码,我使用的是Arduino IDE 1.8.2):
#include <ESP8266WiFi.h>
const char* ssid = "iPhone6";
const char* password = "passwd";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(1500);
}
}
void loop() {
// do something
delay(10000);
}
为了检查一下,我使用NodeMCU扫描wifi网络并列出了我的Apple热点(也使用了WPA2),因此主板可以“看到”它 . 我可以使用iPad和戴尔笔记本电脑连接到Apple热点,这样也可以 . 我找到的所有网页都在处理将NodeMCU设置为WiFi服务器而不是客户端的问题 . 我的代码中是否还有其他细节?还是有其他WiFi库,而不是我可以使用的ESP8266WiFi?如果有人设法使这个连接工作,我将不胜感激 .
1 回答
问题是(我相信)ESP8266将处于上次启动时的任何模式(
AP
,STA
,AP_STA
),除非您明确更改它 . 所以,例如,你的代码对我来说很好,因为有几次取决于我之前在我的电路板上所做的事情 .为了使代码始终如一地工作,您必须(如@cagdas所说)明确地将其置于STA模式 . 因此,对您的代码进行以下更改将会这样做 . 我已经使用我的主板和iPhone 6s,1.8.2 Arduino IDE和ESP8266库1.0.0版验证了这一点 .