ESP8266 Lolin固定IP配置失效:重启后IP变更问题求助
解决ESP8266 Lolin固定IP重启后失效的问题
嘿,我帮你找出了几个关键问题,这就是为啥你的固定IP每次重启后都会变的原因:
子网不匹配的致命错误:你的设备IP设为
192.168.1.200,但网关却是192.168.0.1,再加上子网掩码255.255.255.0,这意味着IP和网关不在同一个网段里。ESP8266根本没法正常连接到路由器,重启后自然会自动切换到DHCP模式获取新IP。你需要把网关改成和IP同网段的地址,比如大部分路由器默认的192.168.1.1。WiFi.config的调用时机错误:你现在是先调用
WiFi.begin()发起连接,再设置固定IP参数,但正确的顺序应该是先配置固定IP,再启动WiFi连接。因为WiFi.begin()默认会优先尝试用DHCP获取IP,之后再修改配置不会稳定生效。WiFi.persistent(false)的小细节:这个设置是让ESP8266不把WiFi配置保存到Flash,但如果前面的配置本身有问题,重启后设备就会彻底回到DHCP模式。只要解决前两个问题,这个设置本身是没问题的,根据你是否需要保存配置来决定是否保留即可。
下面是修正后的完整代码:
WiFi.mode(WIFI_STA); WiFi.persistent(false); // 可选:若不需要保存WiFi配置到Flash则保留 // 确保IP、网关、子网处于同一网段 IPAddress ip(192,168,1,200); IPAddress gateway(192,168,1,1); // 与IP同网段的网关地址 IPAddress subnet(255,255,255,0); // 先配置固定IP,再发起WiFi连接 WiFi.config(ip, gateway, subnet); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(250); Serial.print("."); }
额外提醒:请确保你设置的192.168.1.200这个IP不在路由器的DHCP地址池范围内,否则可能和其他设备IP冲突,导致ESP8266无法正常使用该固定IP。你可以登录路由器后台,把DHCP分配范围调整为比如192.168.1.100-192.168.1.199,这样200这个IP就不会被自动分配给其他设备了。
内容的提问来源于stack exchange,提问作者Leogreen
相关产品推荐
相关产品推荐

