最近在玩ESP8266,这是一款非常流行的Wi-Fi模块,不仅可以用于物联网项目,还能通过Arduino IDE进行编程。今天我将记录一次完整的ESP8266烧录代码的流程,希望能帮助到刚入门的朋友。

程序备份
顺便备份下文件,和Wifi杀手的烧录工具

GitHub:https://github.com/xk-mt/esp8266_WI-PWN

百度网盘:https://pan.baidu.com/s/1tcLk22mtKDcVUvgRgXGMsQ?pwd=wyz8 提取码: wyz8

https://blog.csdn.net/zyk961755/article/details/138155802

https://zhuanlan.zhihu.com/p/678518260

1. 准备工作

在开始之前,我们需要准备以下工具和材料:

  • ESP8266模块:我使用的是NodeMCU开发板,淘宝上10元一个自带USB转串口芯片,方便直接通过USB烧录。

  • OTC/USB数据线:用于连接ESP8266和电脑。

  • Arduino IDE:用于编写和上传代码。

  • 驱动程序:如果使用的是NodeMCU,通常需要安装CH340或CP2102的驱动程序,具体取决于你的开发板。

2. 安装Arduino IDE并配置ESP8266开发环境

2.1 安装Arduino IDE

如果你还没有安装Arduino IDE,可以从Arduino官网下载并安装。

2.2 添加ESP8266开发板支持

  1. 打开Arduino IDE,点击文件 -> 首选项

  2. 在“附加开发板管理器网址”中输入以下URL:

    http://arduino.esp8266.com/stable/package_esp8266com_index.json
  3. 点击确定保存设置。

2.3 安装ESP8266开发板

  1. 点击工具 -> 开发板 -> 开发板管理器

  2. 在搜索框中输入“esp8266”,找到“esp8266 by ESP8266 Community”,点击安装

  1. 安装完成后,关闭开发板管理器。

不过也有反应没有这个驱动的,可以去上面的百度网盘里下载

3. 选择开发板和端口

  1. 点击工具 -> 开发板,选择你使用的ESP8266开发板。我使用的是“NodeMCU 1.0 (ESP-12E Module)”。

  2. 点击工具 -> 端口,选择你的ESP8266连接的端口。如果你不确定是哪个端口,可以拔掉ESP8266,看看哪个端口消失了,再接上ESP8266,出现的端口就是它。

4. 编写代码

接下来,我们编写一个简单的代码,让ESP8266的LED灯闪烁。

void setup() {
  // 初始化LED引脚为输出模式
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  // 点亮LED
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000); // 等待1秒
  
  // 熄灭LED
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000); // 等待1秒
}

以及一个开关灯前端交互的控制实现

5. 烧录代码

  1. 点击文件 -> 保存,将代码保存为一个新的项目。

  2. 点击项目 -> 上传,Arduino IDE会开始编译代码并上传到ESP8266。

  3. 上传过程中,你会看到ESP8266上的LED灯闪烁,表示正在烧录。

  4. 上传完成后,Arduino IDE会显示“上传成功”。

6. 测试

上传完成后,ESP8266会自动运行代码。你应该会看到板载的LED灯每隔1秒闪烁一次。

以及一个开关的的控制页面实现

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

// 定义内置LED引脚(GPIO2,即D4)
#define BUILTIN_LED 2

// Wi-Fi凭证
const char* ssid = "your_SSID";      // 替换为你的Wi-Fi名称
const char* password = "your_PASSWORD"; // 替换为你的Wi-Fi密码

// 创建Web服务器对象
ESP8266WebServer server(80);

// LED状态变量
bool ledState = false;
bool ledBlink = false;

// 处理根路径请求
void handleRoot() {
  String html = "<html><body>";
  html += "<h1>ESP8266 Built-in LED Control</h1>";
  html += "<p>LED: <a href=\"/led/on\">ON</a> <a href=\"/led/off\">OFF</a> <a href=\"/led/blink\">BLINK</a></p>";
  html += "</body></html>";
  server.send(200, "text/html", html);
}

// 处理LED开
void handleLedOn() {
  digitalWrite(BUILTIN_LED, LOW); // ESP8266内置LED是低电平点亮
  ledState = true;
  ledBlink = false;
  server.send(200, "text/plain", "LED ON");
}

// 处理LED关
void handleLedOff() {
  digitalWrite(BUILTIN_LED, HIGH); // ESP8266内置LED是高电平熄灭
  ledState = false;
  ledBlink = false;
  server.send(200, "text/plain", "LED OFF");
}

// 处理LED闪烁
void handleLedBlink() {
  ledBlink = true;
  server.send(200, "text/plain", "LED BLINK");
}

// 初始化设置
void setup() {
  // 初始化串口
  Serial.begin(115200);

  // 设置内置LED引脚为输出模式
  pinMode(BUILTIN_LED, OUTPUT);
  digitalWrite(BUILTIN_LED, HIGH); // 初始状态为关闭

  // 连接Wi-Fi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
  Serial.println("Connected to WiFi");

  // 打印IP地址
  Serial.println(WiFi.localIP());

  // 设置HTTP请求处理函数
  server.on("/", handleRoot);
  server.on("/led/on", handleLedOn);
  server.on("/led/off", handleLedOff);
  server.on("/led/blink", handleLedBlink);

  // 启动Web服务器
  server.begin();
  Serial.println("HTTP server started");
}

// 主循环
void loop() {
  // 处理客户端请求
  server.handleClient();

  // 处理LED闪烁
  if (ledBlink) {
    digitalWrite(BUILTIN_LED, !digitalRead(BUILTIN_LED)); // 切换LED状态
    delay(500); // 闪烁间隔500ms
  }
}

设置完端口后本地访问

7. 总结

这次ESP8266烧录代码的流程非常顺利。通过Arduino IDE,我们可以很方便地为ESP8266编写和上传代码。ESP8266的功能非常强大,除了控制LED,还可以连接Wi-Fi、发送HTTP请求、控制传感器等。希望这篇博客能帮助你顺利入门ESP8266开发!

如果你有任何问题或建议,欢迎在评论区留言。下次我会尝试更复杂的项目,比如通过ESP8266接入Deepseek实现语音互动,实现物联网应用。


参考资料

在ESP8266板上运行MicroPython_esp8266 micropython-CSDN博客

相关工具

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐