ESP8266设置静态IP入网

Posted perseverance52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ESP8266设置静态IP入网相关的知识,希望对你有一定的参考价值。

ESP8266设置静态IP入网

有人会疑问,为什么要手动去设置静态IP地址入网,因为联网速度快,不需要等待路由给你分配动态IP,在设置固定IP时,要注意:不要出现设置的ESP8266开发板IP地址与其它网络设备的IP发生冲突。入网前提是,你知道自己路由设备的配置相关信息。主要是网关地址

  • 程序所使用的esp8266固件版本:3.0.2版本
  • 相关库文件本地位置:C:\\Users\\Administrator\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\libraries\\ESP8266WiFi\\src文件夹下的ESP8266WiFiSTA.h
  • 示例程序
#include <ESP8266WiFi.h>
const char*ssid="CMCC-DyVv";
const char*password="pba5ayzk";
bool autoConnect = true;//设置自动连接所需变量

IPAddress staticIP(192, 168, 1, 88);//请按照自己的网络环境设置这三个参数
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);

void setup()
{
  Serial.begin(115200);
  Serial.println();

    //无线终端模式下配置IP,并将接口的IP配置设置为用户定义的值
  WiFi.config(staticIP, gateway, subnet);
  
  Serial.println("开始连接");
  Serial.println("检查自动连接设置状态");
   if (WiFi.getAutoConnect() == true) {
    Serial.println("已设置自连接");
  }
  else
    Serial.println("未设置连接");
  
  WiFi.setAutoConnect(autoConnect);//启用自动连接模式
  delay(500);//启用自动连接后再检查一次,确定设置变化
  
  Serial.println("再次检查自动连接设置状态");
  if (WiFi.getAutoConnect() == true) {
    Serial.println("已设置自连接");
  }
  else
    Serial.println("未设置连接");
  
  //调用 WiFi.begin()函数,开始连接接入点
  
  WiFi.begin(ssid, password);
  Serial.print("Connecting...");
  uint8_t i=0;//用来判定连接是否超时的累加量
  while (WiFi.status() != WL_CONNECTED)
  {
   i++;
    delay(500);
    Serial.print(".");
    if (i > 120) { //60秒后如果还是连接不上,就判定为连接超时
      Serial.print("连接超时!请检查网络环境");
      break;
    }
  }
  Serial.println("网络连接成功");

  Serial.print("Connected, IP address: ");
  Serial.println(WiFi.localIP());
  Serial.println(" The following is the ESP8266 hardware information: ");
  wifi_date();
}

void loop() {}
void wifi_date(){
  //mac地址
 // Serial.println(WiFi.macAddress().c_str());
   Serial.printf("macAddress = %s\\n",WiFi.macAddress().c_str());
   IPAddress myIP = WiFi.localIP(),
   wayIP=WiFi.gatewayIP(),
   netMask=WiFi.subnetMask(),
   broadcastIP=WiFi.broadcastIP();
    //IP地址
  Serial.print("AP IP address: ");
  Serial.println(myIP);
   //网关地址
  Serial.print("STA IP wayIP: ");
  Serial.println(wayIP);
  //子掩码
    Serial.print("netMask: ");
  Serial.println(netMask);
  //广播地址
      Serial.print("broadcastIP: ");
  Serial.println(broadcastIP);
  
  const String  ssid = WiFi.SSID();
 const  String  password = WiFi.psk();
  Serial.println(ssid);
  Serial.println(password);
        //DNS
      Serial.print("DNS 1: ");
      Serial.println(WiFi.dnsIP(0));
      Serial.print("DNS 2: ");
      Serial.println(WiFi.dnsIP(1));
   
  Serial.printf("BSSIDstr: %s ,%d \\n",WiFi.BSSIDstr().c_str(),WiFi.RSSI());
    Serial.print("当前工作模式:");     // 当前工作模式
  Serial.println(WiFi.getMode());
}

以上是关于ESP8266设置静态IP入网的主要内容,如果未能解决你的问题,请参考以下文章

esp8266 固定IP设置 摘录备查

Arduino IDE for ESP8266 项目云盒子

esp8266 的gpio16怎么配置

基于ESP8266的开源MCU方案(一)智能家居方案总体介绍

安信可esp8266怎么烧写固件库

esp8266怎么配置管理页面