arduino WiFiManager 配置静态链接IP采坑

arduino WiFiManager 配置静态链接IP采坑!!

这个是官网的示例代码

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  Serial.println();

  //WiFiManager
  //Local intialization. Once its business is done, there is no need to keep it around
  WiFiManager wifiManager;

  //清除wifi保存的数据  如果上线后注释
  //wifiManager.resetSettings();


  //start-block2
  IPAddress _ip = IPAddress(10, 0, 1, 78);
  IPAddress _gw = IPAddress(10, 0, 1, 1);
  IPAddress _sn = IPAddress(255, 255, 255, 0);
  //end-block2
  
  wifiManager.setSTAStaticIPConfig(_ip, _gw, _sn);


  if (!wifiManager.autoConnect("AutoConnectAP", "password")) {
    Serial.println("failed to connect, we should reset as see if it connects");
    delay(3000);
    ESP.restart();
    delay(5000);
  }

  //if you get here you have connected to the WiFi
  Serial.println("connected...yeey :)");


  Serial.println("local ip");
  Serial.println(WiFi.localIP());
}

我的是esp-01

坑爹的地方在这里 我配置上去后 就是访问不到 10.0.1.78 我换了几个版本测试了一下午,
我还以为是我DNS没有配置 然后我又配置了 wifiManager.setSTAStaticIPConfig(_ip, _gw, _sn,_dns); 这个方法在新版本才有老版本也没用
结果发现还是没有用 ,我就在想

我就先让他自动分配wifi 然后查看 ip 网关 掩码和Dns

然后吧他自动配置的网段,在静态配置一下

结果发现!!只有 在这个网段才有用!!吐血

IPAddress local_IP(192,168,137,107); // 设置ESP8266-NodeMCU联网后的IP
IPAddress gateway(192, 168, 137, 1);    // 设置网关IP(通常网关IP是WiFI路由IP)
IPAddress subnet(255, 255, 255, 0);   // 设置子网掩码
IPAddress dns(192,168,137,1);           // 设置局域网DNS的IP(通常局域网DNS的IP是WiFI路由IP)
WiFiManager wifiManager;
IPAddress local_IP(192,168,137,107); // 设置ESP8266-NodeMCU联网后的IP
IPAddress gateway(192, 168, 137, 1);    // 设置网关IP(通常网关IP是WiFI路由IP)
IPAddress subnet(255, 255, 255, 0);   // 设置子网掩码
IPAddress dns(192,168,137,1);           // 设置局域网DNS的IP(通常局域网DNS的IP是WiFI路由IP)
void WiFiManagerInit()
{
  wifiManager.resetSettings();
  USE_SERIAL.println("WiFiManagerInit myssid: " + String(myssid) + "  mypassword :  " + String(mypassword));
  
  //比较新的版本才有
  wifiManager.setSTAStaticIPConfig(local_IP, gateway, subnet,dns);

  
  if (!wifiManager.autoConnect(myssid, mypassword)) {
    Serial.println("failed to connect, we should reset as see if it connects");
    delay(3000);
    ESP.reset();
    delay(5000);
  }
  
  USE_SERIAL.print("ESP8266 Connected to ");
  USE_SERIAL.println(WiFi.SSID());              // WiFi名称
  USE_SERIAL.print("IP address:\t");
  USE_SERIAL.println(WiFi.localIP());           // IP
  USE_SERIAL.print("IP subnetMask:\t");
  USE_SERIAL.println(WiFi.subnetMask());           // subnetMask
  USE_SERIAL.print("IP gatewayIP:\t");
  USE_SERIAL.println(WiFi.gatewayIP());           // dnsIP
  USE_SERIAL.print("IP dnsIP:\t");
  USE_SERIAL.println(WiFi.dnsIP());
   
  
}

后续 换了几个wifi测试又没用了!!!
自动配网的网段一直在变!!

我就特么怀疑是不是芯片问题

我就换了个ESP-01S

问题就都解决了。。哭死

下次记得买安可信的ESP-01S 别买ESP-01了 便宜不了多少钱 代码和上面一样

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值