【问题标题】:NodeMCU ESP8266 connecting to iPhone Hotspot with CNodeMCU ESP8266 使用 C 连接到 iPhone 热点
【发布时间】:2017-09-07 07:44:06
【问题描述】:

我有一个关于从 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 服务器而不是客户端的问题。我的代码中是否还有其他细节忘记了?或者我可以使用除 ESP8266WiFi 之外的其他 WiFi 库吗?如果有人设法让这个连接工作,我会很感激任何提示。

【问题讨论】:

  • 您的 iPhone 名称或密码中有非 ASCII 字符吗?
  • 不,只是没有任何本地字符的标准 ASCII。
  • 查看MAC地址是否在AP的黑名单中。
  • 将您的 WiFi 连接模式设置为 STA。

标签: ios esp8266 nodemcu hotspot


【解决方案1】:

问题是(我相信)ESP8266 将处于上次通电时的任何模式(APSTAAP_STA),除非你明确地改变它。因此,例如,您的代码对我来说工作得很好,就像以前一样,取决于我以前对我的电路板所做的事情。

为了使代码始终如一地工作,您必须(如@cagdas 所说)明确地将其置于 STA 模式。因此,对您的代码的以下更改将这样做。我已经使用我的开发板和 iPhone 6s、1.8.2 Arduino IDE 和 ESP8266 库的 1.0.0 版本验证了这一点。

#include <ESP8266WiFi.h>

const char* ssid = "iPhone6";
const char* password = "passwd";

void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA); // SETS TO STATION MODE!
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(1500);
  }
}

void loop() {
  Serial.print("IP is ");
  Serial.println(WiFi.localIP());
  delay(10000);
}

【讨论】:

  • 非常感谢。现在我可以连接了。最好的问候,阿明
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-06
  • 1970-01-01
相关资源
最近更新 更多