1-5 将ESP8266连接到WiFI

本文介绍了如何将ESP8266模块连接到Wi-Fi网络。内容涉及使用Arduino IDE配置ESP8266,设置SSID和Wi-Fi密码,以及通过串口监测连接状态和获取IP地址。

ESP8266 家庭自动化项目中文版目录

到目前为止,您已经为ESP8266安装并配置了Arduino IDE,并学习了如何控制LED,读取模拟输入和调暗LED。

现在是时候将ESP8266连接到Wi-Fi了。包括ESP8266的Wi-Fi库并设置SSID名称和Wi-Fi密码:

#include <ESP8266WiFi.h>
const char* ssid = "your_wifi_name";
const char* password = "your_wifi_password";

setup 部分,串口已启动并配置为以115200 bps发送数据;添加 10 ms 延迟以允许Serial完成,并将 12 到 15 的GPIO配置为输出,并将它们的值设置为 LOW


void setup(){
  Serial.begin(115200);
  delay(10);
  pinMode(12,OUTPUT);
  pinMode(13,OUTPUT);
  pinMode(14,OUTPUT);
  pinMode(15,OUTPUT);
  
  digitalWrite(12, LOW);
  digitalWrite(13, LOW);
  digitalWrite(14, LOW);
  digitalWrite(15, LOW);
  
//   We will start by connecting to a Wi-Fi network:
  
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  
  WiFi.begin(ssid,password);
  
  /*
  我们等到状态指示ESP8266已连接到Wi-Fi网络,此后,将显示Wi-Fi连接消息以及路由器分配给它的IP地址。您的路由器需要具备DHCP功能并且已激活DHCP功能:
  */
  
  while (WiFi.status()!=WL_CONNECTED){
    delay(500);
    Serial.print(".");
    Serial.println("");
  }
  Serial.println("Wi-Fi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

loop 部分,代码检查芯片是否连接到Wi-Fi,如果是,则绿色LED将点亮Witty模块:

void loop(){
  if (WiFi.status() == WL_CONNECTED)
    digtalWrite(12,HIGH);
}

作为练习,如果没有连接到你的路由器,你可以点亮红色LED,否则点亮绿色LED。

串行监视器将显示路由器分配的IP地址,如下所示:

<think>我们参考用户的问题:如何使用ESP8266连接到WiFi并显示网络信息 根据引用内容,我们可以总结以下几点: 1. 引用[1]提到使用ESP8266扫描WiFi列表,并希望将列表显示在网页上,通过点击连接并返回连接结果。 2. 引用[2]介绍了ESP8266连接WiFi的三种模式(STA、AP、STA+AP),并描述了通过串口调试助手进行连接测试的过程。 3. 引用[3]提到了ESP8266无法连接WiFi的问题,可能涉及AT指令无响应。 但用户当前的需求是:连接WiFi并显示网络信息。这里的网络信息可能包括IP地址、连接状态、信号强度等。 由于用户没有指定具体的开发环境,但引用中提到了使用Arduino编程,因此我们假设使用Arduino IDE进行开发。 步骤: 1. 连接WiFi(STA模式) 2. 获取并显示网络信息(如IP地址、子网掩码、网关、MAC地址、信号强度等) 我们将使用ESP8266WiFi库来实现。 示例代码: 注意:需要安装ESP8266开发板支持包(在Arduino IDE中安装) 代码功能: - 连接指定的WiFi网络(SSID和密码) - 连接成功后,通过串口打印网络信息 代码示例: */ #include <ESP8266WiFi.h> const char* ssid = "你的WiFi名称"; const char* password = "你的WiFi密码"; void setup() { Serial.begin(115200); delay(10); // 连接WiFi Serial.println(); Serial.print("正在连接到: "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi连接成功!"); // 打印网络信息 Serial.print("IP地址: "); Serial.println(WiFi.localIP()); Serial.print("子网掩码: "); Serial.println(WiFi.subnetMask()); Serial.print("网关: "); Serial.println(WiFi.gatewayIP()); Serial.print("DNS: "); Serial.println(WiFi.dnsIP()); Serial.print("MAC地址: "); Serial.println(WiFi.macAddress()); Serial.print("信号强度(RSSI): "); Serial.print(WiFi.RSSI()); Serial.println(" dBm"); } void loop() { // 这里不需要做任何事情 } /* 使用说明: 1. 将代码中的"你的WiFi名称"和"你的WiFi密码"替换为实际的WiFi信息。 2. 将代码上传到NodeMCU开发板。 3. 打开串口监视器(波特率115200),即可看到连接过程及网络信息。 注意:如果连接失败,请检查SSID和密码是否正确,以及WiFi信号是否覆盖。 如果用户需要显示在网页上,那么我们可以创建个简单的Web服务器来显示这些信息。但用户当前的问题只要求显示网络信息,并没有指定显示方式(串口或网页)。上面的代码是通过串口显示的。 如果用户需要网页显示,我们可以扩展代码,创建个Web服务器,当客户端访问时,返回个包含网络信息的网页。 扩展代码(网页显示): */ #include <ESP8266WiFi.h> #include <ESP8266WebServer.h> const char* ssid = "你的WiFi名称"; const char* password = "你的WiFi密码"; ESP8266WebServer server(80); // 端口80 void handleRoot() { // 构建HTML页面 String html = "<html><head><meta charset='UTF-8'><title>网络信息</title></head><body>"; html += "<h1>网络信息</h1>"; html += "<p>IP地址: " + WiFi.localIP().toString() + "</p>"; html += "<p>子网掩码: " + WiFi.subnetMask().toString() + "</p>"; html += "<p>网关: " + WiFi.gatewayIP().toString() + "</p>"; html += "<p>DNS: " + WiFi.dnsIP().toString() + "</p>"; html += "<p>MAC地址: " + WiFi.macAddress() + "</p>"; html += "<p>信号强度(RSSI): " + String(WiFi.RSSI()) + " dBm</p>"; html += "</body></html>"; server.send(200, "text/html", html); } void setup() { Serial.begin(115200); delay(10); // 连接WiFi Serial.println(); Serial.print("正在连接到: "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi连接成功!"); Serial.print("IP地址: "); Serial.println(WiFi.localIP()); // 设置Web服务器路由 server.on("/", handleRoot); server.begin(); Serial.println("HTTP服务器已启动"); } void loop() { server.handleClient(); } /* 使用说明: 1. 同样,替换WiFi名称和密码。 2. 上传代码后,通过串口监视器获取开发板的IP地址(例如:192.168.1.100)。 3. 在浏览器中输入该IP地址,即可看到网络信息页面。 注意:如果用户需要扫描WiFi列表并显示在网页上,然后选择连接,这需要更复杂的代码(如引用[1]所提到的),但用户当前需求是连接并显示网络信息,所以上述两个示例分别通过串口和网页提供了网络信息。 如果用户遇到连接问题,可以参考引用[3]解决无法连接的问题,常见解决方法包括: - 检查硬件连接和供电 - 重启ESP8266 - 检查AT指令是否正常(如果使用AT固件) - 更新固件 由于用户的问题没有具体说明显示方式,我们提供了两种方案(串口和网页)。用户可以根据需要选择。 相关问题: */ §§相关问题§§ 1. ESP8266连接WiFi失败的可能原因有哪些? 2. 如何用ESP8266创建个可以显示扫描到的WiFi列表的网页? 3. ESP8266的STA模式和AP模式有什么区别?</think>### 如何使用ESP8266连接到WiFi并显示网络信息 以下是基于ESP8266(NodeMCU开发板)的完整实现方案,包含连接WiFi、获取网络信息并通过串口和网页显示的步骤: --- #### **1. 连接WiFi(STA模式)** 使用Arduino IDE编程,通过`ESP8266WiFi`库实现WiFi连接: ```cpp #include <ESP8266WiFi.h> const char* ssid = "你的WiFi名称"; // 替换为实际SSID const char* password = "你的WiFi密码"; // 替换为实际密码 void setup() { Serial.begin(115200); delay(10); // 连接WiFi Serial.println("\n正在连接: " + String(ssid)); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("\n连接成功!"); } ``` --- #### **2. 获取并显示网络信息** 连接成功后,通过串口输出网络信息: ```cpp void setup() { // ...(接上述连接代码) // 显示网络信息 Serial.println("------ 网络信息 ------"); Serial.print("IP地址: "); Serial.println(WiFi.localIP()); Serial.print("子网掩码: "); Serial.println(WiFi.subnetMask()); Serial.print("网关: "); Serial.println(WiFi.gatewayIP()); Serial.print("信号强度(RSSI): "); Serial.print(WiFi.RSSI()); Serial.println(" dBm"); Serial.print("MAC地址: "); Serial.println(WiFi.macAddress()); } void loop() {} // 无需循环操作 ``` --- #### **3. 网页显示网络信息(可选)** 创建Web服务器,在浏览器中显示信息: ```cpp #include <ESP8266WebServer.h> ESP8266WebServer server(80); // 端口80 void handleRoot() { String html = "<html><body>"; html += "<h1>ESP8266网络信息</h1>"; html += "<p>IP地址: " + WiFi.localIP().toString() + "</p>"; html += "<p>信号强度: " + String(WiFi.RSSI()) + " dBm</p>"; html += "<p>MAC地址: " + WiFi.macAddress() + "</p>"; html += "</body></html>"; server.send(200, "text/html", html); } void setup() { // ...(接上述连接代码) // 启动Web服务器 server.on("/", handleRoot); server.begin(); Serial.println("HTTP服务器已启动"); } void loop() { server.handleClient(); // 处理客户端请求 } ``` 访问方法: 在浏览器中输入ESP8266的IP地址(串口会输出此IP),例如 `http://192.168.1.100`。 --- #### **常见问题解决** - **连接失败**: - 检查SSID/密码是否正确 - 确保WiFi信号覆盖良好(RSSI > -70 dBm) - 重启ESP8266或路由器[^3] - **AT指令无响应**: 重新烧录AT固件或检查串口接线[^3] - **IP地址为0.0.0.0**: 检查路由器DHCP服务是否开启 --- #### **操作步骤总结** 1. 在Arduino IDE中安装 **ESP8266开发板支持包**(通过“开发板管理器”) 2. 将代码中的`ssid`和`password`替换为实际值 3. 通过Micro-USB数据线烧录程序到NodeMCU 4. 打开串口监视器(波特率115200)查看输出 5. 如需网页显示,在浏览器访问串口输出的IP地址 > 示例输出(串口): > `IP地址: 192.168.1.100` > `信号强度: -52 dBm` > `MAC地址: 5C:CF:7F:12:34:56` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值