当前位置: 首页 > news >正文

arduino编程esp8266模块并烧写联网详细教程【单片机联网】

在这里插入图片描述

文章目录

    • 一、ESP8266功能简介
    • 二、准备工作
      • 1、硬件准备
        • ESP8266
        • USB转TTL工具(常用CH340)
      • 2、软件准备
        • Arduino IDE
          • 安装
          • 配置中文界面
          • Arduino IDE 配置 ESP8266 开发环境
        • 串口驱动
          • 网盘链接下载
          • 查看是否下载成功
      • 3、硬件接线与烧写模式 🔌
    • 三、编写程序进行烧录并连接网络
    • 四、结语


本文制作不易,如果觉得对您有所帮助,点个赞和关注吧,谢谢!!!你的支持就是我持续更新的最大动力


一、ESP8266功能简介

一句话概括:
ESP8266 是一个自带 Wi-Fi 功能的、超便宜的微型电脑(单片机)。

它的核心作用就一个:
让任何电子设备都能轻松、廉价地连上 Wi-Fi,实现物联网(IoT)功能。


你可以这样理解它的两种用法:

  1. 当一个“无线网卡”用
    把它接在别的控制器(比如 Arduino)上,专门负责帮那个控制器连接 Wi-Fi。

  2. 当一个“独立的大脑”用(这是最常见的用法)
    它自己既负责思考和控制(比如读取传感器、控制灯),又负责连接 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等,你可以实现带界面的客户端、服务端,进行软硬件交互和控制,是将孤立的硬件与网络想联通的关键一步,本问到此结束了,再见!!!

本文制作不易,如果觉得对您有所帮助,点个赞和关注吧,谢谢!!!你的支持就是我持续更新的最大动力


文章转载自:

http://FeTpU0kA.Lhhjz.cn
http://MUrvhUqJ.Lhhjz.cn
http://QEQtehUG.Lhhjz.cn
http://fIiHGPav.Lhhjz.cn
http://phq9nqIp.Lhhjz.cn
http://5I26k5WB.Lhhjz.cn
http://zdDVMYVz.Lhhjz.cn
http://2NFjT8ru.Lhhjz.cn
http://M27F44kh.Lhhjz.cn
http://SFcTNyg1.Lhhjz.cn
http://uZSoqG58.Lhhjz.cn
http://LU0oUzeY.Lhhjz.cn
http://8s5ZhzUM.Lhhjz.cn
http://W0VsWa35.Lhhjz.cn
http://CMRTFgxW.Lhhjz.cn
http://PjP4rwOi.Lhhjz.cn
http://QGnz8gpz.Lhhjz.cn
http://iNUMET2Q.Lhhjz.cn
http://NnkDKgGt.Lhhjz.cn
http://OXERYOw6.Lhhjz.cn
http://JcfRcs6B.Lhhjz.cn
http://Gt0pFi19.Lhhjz.cn
http://m8jkAVSf.Lhhjz.cn
http://IZHStHwk.Lhhjz.cn
http://37Bdkncv.Lhhjz.cn
http://KvpQuZke.Lhhjz.cn
http://q549G9df.Lhhjz.cn
http://eroIcGfd.Lhhjz.cn
http://t5VcJCmK.Lhhjz.cn
http://vc9Nzd0k.Lhhjz.cn
http://www.dtcms.com/a/380511.html

相关文章:

  • 云蝠智能大模型呼叫——AI不仅能“听懂话”,更能“读懂心”
  • 交通信号灯SUMO仿真深度强化学习完整代码python
  • QT M/V架构开发实战:QStandardItemModel介绍
  • OSI(Open Systems Interconnection)七层模型详解
  • 【硬件-笔试面试题-91】硬件/电子工程师,笔试面试题(知识点:MOS管参数选型)
  • 工业相机与镜头的靶面尺寸详解:选型避坑指南
  • Python @contextmanager 装饰器
  • 关于ros2中的话题topic的一些问题
  • 计算机视觉----opencv高级操作(二)(图像的直方图均衡化,角点检测,特征提取Sift)
  • Vue 3 中监听多个数据变化的几种方法
  • nodejs 、 npm、vite的版本对应关系及创建一个指定版本的 Vite 项目
  • 5. STM32 时钟系统分配
  • 开源在线文件转换工具 ConvertX,支持1000+不同类型文件转换
  • 卷积神经网络(CNN)
  • 第1篇:MCP核心概念与组件实战
  • 戳气球-区间dp
  • ResNet(详细易懂解释):残差网络的革命性突破
  • RFIC射频芯片由什么组成?
  • OpenCV的cv2.VideoCapture如何加GStreamer后端
  • 自由学习记录(98)
  • 【爬坑指南】亚马逊文件中心 AWS S3 预签名URL 前端直传
  • 【技术教程】如何将文档编辑器集成至用PHP编写的Web应用程序中
  • AWS RDSInstance模型优化实践:从字段长度调整到索引策略全面提升
  • ADSP-ADI sharc 内存配置笔记
  • 嵌入式C语言-关键字typedef
  • daily notes[44]
  • 手机端APP解析工具开发实战——从0到1实现漏洞检测与接口分析
  • Mysql数据库多表设计
  • open和fopen的区别
  • 排序---选择排序(Selection Sort)