arduino编程esp8266模块并烧写联网详细教程【单片机联网】
文章目录
- 一、ESP8266功能简介
- 二、准备工作
- 1、硬件准备
- ESP8266
- USB转TTL工具(常用CH340)
- 2、软件准备
- Arduino IDE
- 安装
- 配置中文界面
- Arduino IDE 配置 ESP8266 开发环境
- 串口驱动
- 网盘链接下载
- 查看是否下载成功
- 3、硬件接线与烧写模式 🔌
- 三、编写程序进行烧录并连接网络
- 四、结语
本文制作不易,如果觉得对您有所帮助,点个赞和关注吧,谢谢!!!你的支持就是我持续更新的最大动力
一、ESP8266功能简介
一句话概括:
ESP8266 是一个自带 Wi-Fi 功能的、超便宜的微型电脑(单片机)。
它的核心作用就一个:
让任何电子设备都能轻松、廉价地连上 Wi-Fi,实现物联网(IoT)功能。
你可以这样理解它的两种用法:
-
当一个“无线网卡”用
把它接在别的控制器(比如 Arduino)上,专门负责帮那个控制器连接 Wi-Fi。 -
当一个“独立的大脑”用(这是最常见的用法)
它自己既负责思考和控制(比如读取传感器、控制灯),又负责连接 Wi-Fi。一个芯片搞定所有事。
它最大的优点是:
- 极度便宜:一个开发板只要十几块钱。
- 开发简单:用大家熟悉的 Arduino 环境就能编程。
- 功能强大:体积小,功耗低,但足以驱动大部分智能家居项目。
总之一句话:有了它,你就能花很少的钱,把自己的各种创意(比如智能插座、天气预报时钟)变成能联网的实际产品。
二、准备工作
1、硬件准备
ESP8266
USB转TTL工具(常用CH340)
(也可换为USB ESP8266WIFI 模块),就是下面两种都可以,第一种需要自己接线,第二种直接将ESP8266插到上面即可
2、软件准备
Arduino IDE
安装
- 获取安装包:Arduino IDE 为开源软件,可通过其官网下载安装包
- 网盘下载:我提供了一个网盘下载链接,不想去官网下载的可以直接从此网盘中下载
https://pan.baidu.com/s/1debLDAQDRSlqLloOv4J8RQ?pwd=mvab 提取码: mvab
- 访问官网:Arduino 官网地址为
https://www.arduino.cc/
-
进入下载页面:打开官网后,点击界面上的“SOFTWARE”选项
-
选择并下载安装包:在“SOFTWARE”相关页面中找到“Downloads”板块,下载 Arduino IDE
-
启动安装程序:打开下载完成的安装包进行安装
-
选择安装用户:根据实际需求选择合适的安装用户
-
设置安装路径:可修改安装路径,建议设置为纯英文路径;若无需修改,直接点击“Install”即可开始安装
-
完成安装:等待安装流程结束,即完成 Arduino IDE 安装
配置中文界面
- 启动软件:打开已安装的 Arduino IDE 软件。
- 打开文件选项:点击软件左上角的“File”(文件)选项。
- 进入首选项设置:在“File”下拉菜单中找到“Preferences”(首选项)并点击。
- 设置语言为中文:在“Preferences”界面中,找到“language”(语言)配置项,将其设置为中文即可。
Arduino IDE 配置 ESP8266 开发环境
在线获取 ESP8266 环境
如果在线安装失败(下载失败或者无搜索到ESP8266),请看后面的离线安装方法
- 启动软件并打开文件选项:打开 Arduino IDE,点击界面左上角的“文件”选项
- 进入首选项:在“文件”下拉菜单中找到“首选项”并选择
- 添加开发板管理器地址:在“首选项”配置界面的“其他开发板管理器地址”中,填写 ESP8266 开发板地址:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
- 重启软件:关闭 Arduino IDE 后重新打开,使地址配置生效。
- 打开工具选项:点击软件中的“工具”选项。
- 进入开发板管理器:在“工具”下拉菜单中找到“开发板”,并选择其中的“开发板管理器”。
- 搜索 ESP8266 相关包:在“开发板管理器”的搜索框中搜索“esp8266”相关内容。
- 安装 ESP8266 环境:找到“esp8266 ”开发包并安装。
- 选择版本:建议安装该开发包的最新版本
- 注意下载速度:因 ESP8266 环境获取地址的网络问题,下载速度可能较慢,需耐心等待。
离线安装 ESP8266 环境
- 下载下面分享的网盘链接中的文件
https://pan.baidu.com/s/1QSHhu2h9g9j1mI07eyk8Qg?pwd=g3is 提取码: g3is
-
运行其中程序即可自动安装
-
查看离线安装是否成功
串口驱动
如果你没有使用过USB转TTL(也就是CH340),没有安装驱动,那么将其插入电脑时,并不能找到对应的端口去使用它
网盘链接下载
https://pan.baidu.com/s/17GBrENy_JhzrR-1KdAHzLQ?pwd=jsxp 提取码: jsxp
查看是否下载成功
将USB 转TTL插入电脑,打开设备管理器,查看端口,能找到USB SERIAL CH340,说明安装成功
3、硬件接线与烧写模式 🔌
- ESP‑8266(连接USB‑TTL 3.3V):
- 连接方式
- VCC → 3.3V(千万别 5V,不然可能会烧毁ESP8266)
- GND → GND
- TXD → USB‑TTL RX
- RXD → USB‑TTL TX
前面四根线是esp8266连接到USB转TTL上的引脚,下面是接到其他地方能提供GND或电源的模块即可 - EN/CH_PD → 3.3V(上拉)
- GPIO0:给esp8266烧写程序时拉低到 GND;烧写完成之后正常运行时上拉到 3.3V(但是我使用时发现将引线浮空也行)
- RST:将RST 拉低再松开(即先接GND然后浮空),可以模拟复位操作
- 连接方式
- 进入下载模式(两步)
- 拉低 GPIO0 → GND
- 复位(RST 拉低再松开),即可烧写
- 进入运行模式(两步)
- 拉高 GPIO0 → 3.3V或浮空
- 复位(RST 拉低再松开),即可运行
三、编写程序进行烧录并连接网络
完成前面的准备工作,然后接好线,把USB转TTL插入电脑,打开Arduino,按下图所示配置好端口和模块
在设备管理器中查看你的CH340对应的端口号,然后在Arduino中选择对应端口
现在就可以直接对ESP8266进行编程了,我已经准备好了如下代码,功能让QT做成的服务端以及ESP8266连接上同一个热点,当然,如果你没有QT客户端,将程序烧录到ESP8066中后,ESP8266也会自动来连接到你的热点
注意,修改你的WiFi名和密码,然后按后面操作步骤进行操作
#include <ESP8266WiFi.h>// ------------------- 配置参数 -------------------
const char* WIFI_SSID = "1"; // 替换为你的WiFi热点名
const char* WIFI_PWD = "123456789"; // 替换为你的WiFi密码
const char* SERVER_IP = "192.xxx.xxx.xx"; // 替换为Qt服务器的IP(如本地局域网IP)
const uint16_t SERVER_PORT = 8888; // 替换为QT服务器的端口(需与Qt端一致)
const uint32_t UART_BAUD = 9600; // 与C8T6的UART1波特率一致
// ------------------------------------------------WiFiClient client; // TCP客户端对象void setup() {// 1. 初始化UART(与C8T6通信)Serial.begin(UART_BAUD);while (!Serial) { delay(10); } // 等待UART就绪// 2. 连接WiFiSerial.println("\nConnecting to WiFi: " + String(WIFI_SSID));WiFi.begin(WIFI_SSID, WIFI_PWD);while (WiFi.status() != WL_CONNECTED) {delay(500);Serial.print(".");}Serial.println("\nWiFi connected! IP: " + WiFi.localIP().toString());// 3. 连接Qt TCP服务器connectToServer();
}void loop() {// 检查WiFi连接:断开则重连if (WiFi.status() != WL_CONNECTED) {Serial.println("WiFi disconnected, reconnecting...");WiFi.reconnect();delay(1000);return;}// 检查TCP连接:断开则重连if (!client.connected()) {Serial.println("TCP disconnected, reconnecting...");connectToServer();delay(1000);return;}// 4. UART→TCP透传(C8T6发的数据转发到Qt服务器)while (Serial.available() > 0) {uint8_t data = Serial.read();client.write(data); // 发送到Qt服务器}// 5. TCP→UART透传(Qt服务器发的数据转发到C8T6)
while (client.available() > 0) {uint8_t data = client.read();Serial.write((char)data); // 正确地将字节发送到C8T6}
}// 连接TCP服务器的工具函数
void connectToServer() {client.stop(); // 先关闭旧连接Serial.print("Connecting to TCP server: " + String(SERVER_IP) + ":" + String(SERVER_PORT));if (client.connect(SERVER_IP, SERVER_PORT)) {Serial.println(" -> Connected!");} else {Serial.println(" -> Failed!");}
}
将程序复制到你的Arduino中,点击图中位置开始烧写程序
出现如下显示旧代码烧写完成,可以连接WIFI了
四、结语
通过对ESP8266进行编程,再搭配单片机、QT等,你可以实现带界面的客户端、服务端,进行软硬件交互和控制,是将孤立的硬件与网络想联通的关键一步,本问到此结束了,再见!!!
本文制作不易,如果觉得对您有所帮助,点个赞和关注吧,谢谢!!!你的支持就是我持续更新的最大动力