admin管理员组

文章数量:1540705


往期

《ESP8266通信指南》7-Arduino 开发8266的环境配置与示例代码烧录-CSDN博客

《ESP8266通信指南》6-创建TCP服务器(AT指令)-CSDN博客

《ESP8266通信指南》5-TCP通信透传模式(AT指令)-CSDN博客

《ESP8266通信指南》4-以Client进行TCP通信(AT指令)-CSDN博客

《ESP8266通信指南》3-常用AT指令详解-8266连WIFI-CSDN博客

《ESP8266通信指南》2-ESP8266 AT测试-CSDN博客

《ESP8266通信指南》1-ESP8266 简介-CSDN博客

1. 小节目标


  • 使用 Arduino IDE 编程,使 ESP8266 连接 WIFI
  • ESP8266 连接 WIFI,基于 Arduino

2. 书接上回


在上一小节我们介绍了如何配置 Arduino 开发 ESP8266 的环境,如果还没有配置的话就需要去看上一篇文章:《ESP8266通信指南》7-Arduino 开发8266的环境配置与示例代码烧录-CSDN博客

3. 完整代码


3.1. 完整代码

话不多说,直接提供代码

#include <ESP8266WiFi.h>

#ifndef STASSID
#define STASSID "ct-iot"     // 你的 WiFi 热点名称
#define STAPSK "111222333"  // 你的 WiFi 密码
#endif

const char* ssid = STASSID;
const char* password = STAPSK;

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(115200);

  // 开始连接到 WiFi 网络
  Serial.println();
  Serial.println();
  Serial.print("连接到 ");
  Serial.println(ssid);

  /* 明确将 ESP8266 设置为 WiFi 客户端,否则,默认情况下,
     它会尝试充当客户端和接入点,可能会导致
     WiFi 网络上的其他 WiFi 设备出现网络问题。 */
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi 连接成功");
  Serial.println("IP 地址: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
  digitalWrite(LED_BUILTIN, HIGH);
  delay(2000);
}

读者需要做的是将 WIFI 账号密码更改为自己的,就可以连上 WIFI 了哈,然后烧录即可,也就是点击以下的这个按钮。

3.2. 烧录代码

烧录代码分为以下三步:

  1. 选择开发板
  2. 选择串口
  3. 点击下载

(下图是下载的时候的进度图)

3.3. 打开串口查看数据

点击软件右上角的这个按钮就可以打开串口调试组手,打开的时候是没有数据的,我们需要按一下 ESP8266 烧录器上面的复位按钮

  • 可以看到已经能打印出 IP 了

4. 代码讲解


上面我们已经提供了全部的代码,如果你想了解代码的含义,那么可以继续读下去。

#include <ESP8266WiFi.h>
  • 这行代码是包含了ESP8266WiFi库,这样我们就可以在代码中使用ESP8266WiFi模块提供的功能

#ifndef STASSID
#define STASSID "your-ssid"     // 你的 WiFi 热点名称
#define STAPSK "your-password"  // 你的 WiFi 密码
#endif
  • 这部分是用于定义WiFi的名称和密码。STASSID是你的WiFi热点名称,STAPSK是你的WiFi密码。如果在代码中没有提供这些值,将使用这里定义的默认值(your-ssid,your-password)

const char* ssid = STASSID;
const char* password = STAPSK;
  • 这里定义了两个变量ssidpassword,分别用于存储WiFi热点的名称和密码

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(115200);
  Serial.println();
  Serial.println();
  Serial.print("连接到 ");
  Serial.println(ssid);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi 连接成功");
  Serial.println("IP 地址: ");
  Serial.println(WiFi.localIP());
}

setup()函数是Arduino中的一个特殊函数,它在开发板启动时执行一次。在这个函数中,我们做了以下操作:

  • 设置LED_BUILTIN引脚为输出模式,以便控制LED灯
  • 初始化串行通信,设置波特率为115200,并打印一些提示信息
  • 尝试连接到WiFi网络,并等待连接成功,在等待过程中,我们通过点号的形式在串行监视器中显示连接状态
  • 如果连接成功,打印WiFi连接成功的消息以及分配给开发板的IP地址

void loop() {
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
  digitalWrite(LED_BUILTIN, HIGH);
  delay(2000);
}

loop()函数是Arduino中另一个特殊函数,它会不断循环执行。在这个函数中,我们简单地让LED灯以一定的频率闪烁,以表示 WIFI 连接成功,LED 灯闪烁。

5. 结语


在本小节中介绍了如何使用 Arduino 编写代码,将 ESP8266 连接到 WIFI 上,并对代码进行详细的解读。



柴头物联网出品

本文标签: 通信简单指南Arduinowifi