通过 ESP8266 WiFi 模块和 Blynk App 无缝控制 Arduino Uno
所需组件与物料
- Arduino UNO × 1
- Espressif ESP8266 ESP-01 × 1
- FT232RL USB 转串口模块 × 1
- 低压差线性稳压器 (3.3V) × 1
- 滑动开关 × 1
- 按钮开关 12mm × 1
- 杜邦线若干
- 面包板 × 1
所需软件与在线服务
- Arduino IDE
- Blynk App (iOS/Android)
- ESP8266 固件烧录工具
项目简介
本项目演示如何利用 ESP8266-01 WiFi 模块和 Blynk App 远程控制 Arduino 引脚。Blynk App 操作直观,是物联网入门的绝佳选择。
步骤 1:准备工作
请提前下载并整理好以下资源:
- Arduino IDE:官方下载页面
- Blynk 库(最新版):GitHub 发布页
- ESP8266 烧录工具:下载链接
步骤 2:安装 Arduino IDE 与库文件
- 安装最新版 Arduino IDE。
- 打开 IDE,进入 文件 → 首选项,在“附加开发板管理器网址”中填入:
https://arduino.esp8266.com/stable/package_esp8266com_index.json - 进入 工具 → 开发板 → 开发板管理器,搜索并安装
esp8266包(可选,本项目主要用于烧录固件)。 - 解压 Blynk 库压缩包,将其中
libraries文件夹下的所有内容复制到:用户文档 → Arduino → Libraries
步骤 3:烧录 ESP8266 固件
烧录固件需要搭建如下电路(建议使用 FT232RL USB 转串口模块,笔者实测 Arduino UNO 供电不稳定导致烧录失败):


烧录步骤:
- 解压
esp_flasher.zip并运行XTCOM_UTIL应用程序。 - 将 ESP8266-01 通过上述电路连接电脑。在设备管理器的“端口(COM 和 LPT)”中确认 COM 口号。
- 在 XTCOM_UTIL 中点击 Tools → Config Device,选择正确的 COM 口,波特率设为 9600,点击 Open,成功后点击 Connect。
- 压缩包内的
readme.txt记录了每个.bin文件对应的烧录地址。例如:boot_v1.1.bin → 0x00000。 - 进入 API Test → Flash Image Download,选择对应的
.bin文件,填入地址,点击 Download。 - 每烧录完一个文件,需关闭 XTCOM_UTIL、拔下 ESP8266,重新插上并重复上述步骤,共需烧录 4 个文件。全程必须将 GPIO0 接地。
详细说明请参考:Updating ESP8266 Firmware
步骤 4:AT 指令测试
- 在 Arduino IDE 中选择正确的端口(开发板选项无需更改)。
- 波特率设为 115200,打开串口监视器。
- 发送
AT,应收到OK响应。 - 发送
AT+CWMODE=1将模块设为 Station 模式(客户端模式)。
步骤 5:Blynk App 配置
- 手机安装 Blynk App 并登录/注册。
- 点击 + 创建新项目,输入项目名称。
- 设备选择 Arduino UNO,连接类型选 WiFi,点击创建。
- 创建后,Auth Token 会发送至注册邮箱(也可在项目设置的“螺母图标 → Devices”中重发)。
- 点击 + 添加 Button 控件,编辑该按钮:
- 命名(如“LED 控制”)
- 引脚设为 Digital D13(控制板载 LED)
- 模式切换为 SWITCH
- 如需控制其他引脚,在编辑菜单中选择对应引脚(D3、D4 等)。
步骤 6:编写与上传程序
在 Arduino IDE 中新建草图,粘贴以下代码:
/*************************************************************
* Blynk + ESP8266 (AT 固件) 控制 Arduino Uno 示例
* 需安装 Blynk 库:https://github.com/blynkkk/blynk-library/releases
*************************************************************/
#define BLYNK_PRINT Serial
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
// 替换为你的 Auth Token、WiFi 账号密码
char auth[] = "yourAUTH";
char ssid[] = "yourSSID";
char pass[] = "yourpassword";
// 使用硬件串口 (Serial) 与 ESP8266 通信
// 注:Uno 仅有一个硬件串口,调试输出将被占用
#define ESP8266_BAUD 115200
ESP8266 wifi(&Serial);
void setup() {
Serial.begin(9600);
delay(10);
Serial.begin(ESP8266_BAUD); // 复用 Serial 与 ESP8266 通信
delay(10);
Blynk.begin(auth, wifi, ssid, pass);
}
void loop() {
Blynk.run();
}
关键修改说明:
- 将
yourAUTH替换为邮箱收到的 Auth Token - 将
yourSSID替换为 WiFi 名称 - 将
yourpassword替换为 WiFi 密码 - 代码已注释掉 SoftwareSerial,改用硬件 Serial 直接与 ESP8266 通信(更稳定)
ESP8266 wifi(&Serial);与Serial.begin(ESP8266_BAUD);是核心改动
上传程序至 Arduino Uno,上传完成后拔下 USB 线。
步骤 7:最终接线与测试
按下表连接 ESP8266 与 Arduino Uno:
| ESP8266 | → | Arduino Uno |
|---|---|---|
| TX | → | RX (D0) |
| RX | → | TX (D1) |
| GND | → | GND |
| VCC | → | 3.3V |
| CH_PD | → | 3.3V |

接线完成后,插上 Arduino USB 供电,打开串口监视器(波特率 115200),应看到连接成功信息:

在 Blynk App 中点击项目右上角 播放按钮 进入运行模式,按下按钮即可控制 Arduino 板载 LED 亮灭。项目完成!
如有疑问或建议,欢迎在评论区留言。谢谢阅读!
制造工艺
- 基于 Arduino、1Sheeld 与红外控制的万能安卓遥控器
- Arduino 与智能手机打造智能电压表——简单易做的 DIY 项目
- 基于 Arduino MKR1000 与 ThingSpeak 的远程 IoT 机械臂控制系统
- 智能物联网罐:ESP8266 + Arduino + 超声波传感器实时监测罐内物位
- 基于Arduino UNO的精准频率与占空比测量
- Arduino Uno WiFi 网页服务器:通过浏览器控制 LED 开关
- Firmata + Xbox 手柄无线遥控 Arduino 小车:UWP 应用桥接方案
- Bolt IoT + Arduino UNO 实现 6 路 LED 无级调光
- u-blox LEA-6H GPS 模块:Arduino 与 Python 集成指南
- DIY 智能 Arduino 机械臂:主从控制与动作记忆教程
- 通过 Arduino IoT Cloud 用 Alexa 控制电视:分步指南
- 基于 Arduino 与 ESP8266 的 WiFi 智能门锁:手机扫码解锁