首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过WiFi管理器在ESP8266中的不一致连接

通过WiFi管理器在ESP8266中的不一致连接
EN

Stack Overflow用户
提问于 2020-05-07 18:45:59
回答 1查看 651关注 0票数 0

我正面临着一个特殊的问题。下面的代码片段连接到新的WiFi网络。程序中没有硬编码的ssid或密码.我正在使用AsyncWifiManagerAsyncWebServer模块。当我连接到我的家庭WiFi路由器在自动连接门户中提供ssid和密码时,NodeMCU正在连接,服务器正常工作。但是每当我改变WiFi,连接到我的手机热点,那么服务器就不会运行,尽管我在串行监视器中获得本地IP地址。

代码语言:javascript
复制
#include <ESP8266WiFi.h>          
#include <ESPAsyncTCP.h>          

#include <ESPAsyncWebServer.h>     
#include <ESPAsyncWiFiManager.h> 

#include <FS.h>
#include <Wire.h>

   AsyncWiFiManager wifiManager(&server,&dns);

  // To clean previous settings. Use one time, then comment
  // wifiManager.resetSettings();



  // set custom static ip for portal
  IPAddress staticIP(192,168,0,20);  //ESP static ip
  IPAddress gateway(192,168,0,1); //IP Address of your WiFi Router (Gateway)
  IPAddress subnet(255,255,255,0); //Subnet mask
  wifiManager.setSTAStaticIPConfig(staticIP, gateway, subnet);


// Open WiFi Setup portal
  wifiManager.autoConnect();

  Serial.println("Connecting to WiFi..");


  // Print ESP32 Local IP Address
  Serial.println(WiFi.localIP());


  WiFi.begin();


 while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi..");
}

我正在通过Arduino IDE编程NodeMCU板。

EN

回答 1

Stack Overflow用户

发布于 2020-05-08 09:38:40

由于您的代码对IP/子网/网关使用fix参数,您必须相应地设置不同的热点,或者在将ESP8266服务器连接到不同的热点时可以选择以下选项:

  • 总是在同一个网络/子网中(所有热点都是本地网络的一部分),您可以对与所连接的热点无关的所有设备使用固定IP地址。
  • 如果不想使用上面的(=fix IP用于所有设备):将DHCP服务器设置为始终根据NodeMCU的MAC地址将相同的IP地址分配给NodeMCU。
  • 您使用mDNS并给ESP8266一个固定的名称,并通过http://nyPreferredESP.local (尽管IP不同)呼叫,并在安卓手机上使用就像这个应用程序
  • 如果您想处理更改的网关(设备不在同一网络/子网上,通过internet访问):这将需要一些更强大的功能。使用动态DNS服务和域名。如果网关地址发生变化,动态DNS将几乎实时地更新DNS记录。这里的例子

解决方案的复杂性是由总是在同一个网络/子网和固定网关中的因素造成的,或者所有的(除了MAC地址和设备名称都是固定的)都是固定的,其余的可能是可变的。阅读有关在这里建立一个本地网络的一些基础知识

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61665434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档