ESP8266开发之旅 基础篇② 如何安装ESP8266的Arduino开发环境

ESP8266开发之旅 基础篇② 如何安装ESP8266的Arduino开发环境俗话说 工欲善其事必先利其器 基于 Arduino 平台开发 ESP8266 我们至少要分别准备好硬件和软件开发环境 1 硬件 ESP8266 模块 或者 ESP8266 开发板 笔者建议初学者直接使用开发板 2 软件 ArduinoIDE 开发环境 1 硬件 硬件环境主要分为两种 1 ESP8266 开发板 USB 线 笔者建议

授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力。希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石。。。

共同学习成长 ,不喜勿加,里面有一大群志同道合的探路人

快速导航
单片机菜鸟的博客快速索引(快速找到你要的)

如果觉得有用,麻烦点赞收藏,您的支持是博主创作的动力。

1. 硬件

在这里插入图片描述

    笔者选择它的理由很简单——既有NodeMcu的功能,又可以作为ESP8266-01系列模组的烧写器,这样就不用手动搭建ESP01的烧写环境。

    2. ESP8266模块 + USB转TTL线
    如果WiFi模块是ESP8266-01系列,首先请看一下以下引脚接口说明:

引脚编号 引脚定义 引脚描述
1 TX 1)UART_TX发送端;2)通用IO口:GPIO1;
2 GND GND
3 CH_PD 1)高电平工作;2)低电平模块供电关掉;
4 GPIO2 开机上电时必须为高电平,禁止硬件下拉,内部默认已拉高;
5 GPIO16 外部Reset信号,低电平复位,高电平工作(默认应该是高电平);
6 GPIO0 接地进入烧录固件模式,悬空为正常运行模式;
7 VCC 3.3V(切记不要供5V!!!)
8 RX 1)UART_RX接收端;2)通用IO口:GPIO3;

    其余引脚悬空即可。 从引脚介绍表可以看出,关键引脚GPIO0决定了模块当前处于什么工作模式。

烧录固件模式

    请按照下图连接ESP8266-01和USB转TTL线,进入烧录模式:

image

    如果WiFi模块是ESP8266-12系列,按照下图对应引脚接线:

image

温馨提示

  • 从Arduino IDE角度来看,ESP8266工作模式包括:
    1.烧录固件模式
    下载代码的时候,需要将GPIO0口接地;
    2.正常工作模式
    下载完代码,需要将GPIO0口悬空;
    有电路经验的读者可以安装拨码开关来切换工作模式。










  • 注意ESP8266安全工作电压是3.3V,不要直接连接5v;
  • 手动切换工作模式之后,最好重新启动一下ESP8266模块(通断电);
  • 有时ESP8266下载失败,有可能是供电问题,可以尝试独立供电,不直接连到TTL Vcc;
  • 烧录固件,我们需要了解的是,我们的固件是以下哪一种:AT固件、自己编写的SDK固件(基于ESP8266 SDK开发或者Lua)以及本书基于Arduino平台开发的ESP8266固件(笔者成为 ESP8266 Arduino固件)。

2. 软件开发环境

2.1 安装Arduino IDE

    由于某些原因,Arduino官网网站(https://www.arduino.cc/en/Main/Software) 经常打不开或者下载速度极慢,导致下载IDE非常困难,读者可以通过以下两种方式下载安装:

  1. 笔者提供了百度网盘链接(https://pan.baidu.com/s/1QGAbBAsP4-VNQfT-bV46aA) 以供大家下载,长期有效,请注意英文大小写。
  2. 通过Arduino中文社区链接地址(https://www.arduino.cn/thread-5838-1-1.html) 去下载。

    如果你下载的是windows安装版(exe后缀),那么直接安装即可,其他则直接解压即可使用,注意路径不要存在中文目录。笔者写本书的时候所用的Arduino IDE版本是1.8.5,启动Arduino,会出现如下图所示界面:

image

2.2 安装ESP8266开发环境

    安装好Arduino IDE环境后,就得在它基础上配置Arduino Core For ESP8266。以window版本为例,读者可以安装以下顺序安装:

  1. 打开Arduino IDE->菜单项文件->首选项,然后会看到附加开发版管理器网址,填入http://arduino.esp8266.com/stable/package_esp8266com_index.json,重启IDE;
    image

  2. 重启IDE之后->菜单项工具->开发板->点击开发板管理器->滚动找到ESP8266平台;
    image

  3. 从下拉选项中选择你想下载的版本,点击安装,需要等待一段时间安装完毕。笔者建议下载最新的版本,笔者写本书的时候最新版本是2.4.2,后续章节都是基于这个版本来讲解。
  4. 安装成功的话,会可以看到下图所示。

image

    到此,整个软件开发环境搭建完毕。

温馨提示

  • 如果安装失败,一般都是因为网络问题,可以尝试多次重新安装;多次安装失败之后,可能需要翻墙;
  • Arduino Core For ESP8266库版本之间是有区别,有些版本可能没有某些方法,比如笔者刚开始的时候安装了2.0.0版本,但是编译代码不通过,提示client.peekBytes方法不存在,安装最新版本完美无bug。
  • Arduino IDE界面相对比较简单,笔者觉得代码提示功能、自动补全不够友好,推荐使用Visual Studio、Eclipse等更为专业的开发环境进行开发。这些第三方的开发环境都需要下载对应的Arduino插件进行配置,笔者这里就不具体讲解,有兴趣的可以自行查阅资料解决。

当然如果你还是安装不成功,可以到博主技术群去寻找一键安装exe文件
在这里插入图片描述

3. 烧录ESP8266

    实验是检验真理的唯一标准,配置好硬件和软件环境之后,笔者就给读者提供一个实例代码,并且告诉读者如何配置烧录以及提及一些烧录配置注意点。

3.1实例代码

    首先,请读者不用在意代码细节问题,请先拷贝如下代码到Arduino IDE,然后点击编译:

/ * Demo: * 测试ESP8266 demo * 打印ESP8266模块信息 * 1.打印Arduino Core For ESP8266 版本,笔者是2.4.2版本 * 2.打印Flash的唯一性芯片id(读者可以思考一下是否可以用来做点什么唯一性参考) * 3.打印Flash实际大小 * 4.打印IDE配置的使用Flash大小 * 5.打印IDE配置的Flash连接通信的频率 * 6.打印Flash连接模式:QIO QOUT DIO DOUT,可以理解为Flash传输速率 * @author 单片机菜鸟 * @date 2018/10/22 */ void setup() { 
    // put your setup code here, to run once: Serial.begin(); //使能软件看门狗的触发间隔 ESP.wdtEnable(5000); } void loop() { 
    //喂狗 ESP.wdtFeed(); FlashMode_t ideMode = ESP.getFlashChipMode(); String coreVersion = ESP.getCoreVersion(); Serial.print(F("Arduino Core For ESP8266 Version: ")); Serial.println(coreVersion); Serial.printf("Flash real id(唯一标识符): %08X\n", ESP.getFlashChipId()); Serial.printf("Flash 实际大小: %u KBytes\n", ESP.getFlashChipRealSize()/1024); Serial.printf("IDE配置Flash大小: %u KBytes,往往小于实际大小\n", ESP.getFlashChipSize()/1024); Serial.printf("IDE配置Flash频率 : %u MHz\n", ESP.getFlashChipSpeed()/); Serial.printf("Flash ide mode: %s\n\n", (ideMode == FM_QIO ? "QIO" : ideMode == FM_QOUT ? "QOUT" : ideMode == FM_DIO ? "DIO" : ideMode == FM_DOUT ? "DOUT" : "UNKNOWN")); delay(1000); } 

代码讲解
    1.setup函数里面,主要设置了串口通信波特率(串口调试器的波特率需要设置成一致),同时设置了软件看门狗WatchDog的触发间隔5s(看门狗的作用就是如果不喂狗就会在触发时间到达的时候自动复位,很多);
    2.在loop函数中,会不断循环执行,所以需要喂狗,然后就打印ESP8266 Arduino Core的当前版本、芯片id、flash实际大小、Arduino IDE配置Flash大小、通信频率以及flash的连接模式(这些信息都可以称为ESP8266模块的物理信息)。




温馨提示
    如果以上代码编译不通过,原因一般是以下两个之一:
    1.烧录配置没改成ESP8266(请看下小节讲解),当前可能是Arduino Uno、Mega等平台;
    2.Arduino Core For ESP8266软件环境没有配置成功,请重新检查一遍;
    3.上面例子的看门狗属于软件看门狗,作用是:如果在规定时间内不进行喂狗操作,那么系统就会在看门狗的作用下复位。默认情况下,软件看门狗是开启的,很多读者的代码运行之所以不稳定或者抛出各种异常,其中一大原因就是没有喂狗。关于这一个,笔者后面的章节会有具体讲解。








3.2 烧录配置

    笔者的开发板是ESP202测试板,核心芯片是ESP8266-12F,Flash大小是4MB,Flash芯片是W25Q32,适用下图配置:

image

烧录代码
    ESP8266进入烧录固件模式,点击上传,等待上传结果。
    如果显示下图,表示上传成功。
image






    如果显示下图,表示上传失败。

image

温馨提示

  • ESP8266的COM端口没选对,请确认ESP8266对应端口;
  • ESP8266 Upload Speed选择不对,默认应该是;
  • ESP8266还没有进入到烧录固件模式,重新进入烧录模式;
  • Flash Mode没选对,比如有些NodeMcu需要选择为DIO/DOUT,Flash Mode有如下选型:
    image
    那么它们之间的区别在哪里呢?
    1)QIO , for flash that support quad r/w operation(e.g. W25Q flash芯片)
    2)QOUT, for flash that support quad read operation(e.g. W25Q flash芯片)
    3)DIO, for flash that support dual r/w operation(e.g. W25Q &W25X flash芯片)
    4)DOUT, for flash that support dual read operation(e.g. W25Q &W25X flash芯片)
    它们之间的区别可以简单理解为传输速率的区别,quad是四倍传输速率,dual是两倍传输速率。
    经测试:
    Winbond 25Q32B 可工作于 DIO / DOUT / QIO /QOUT (Noduino Falcon);
    BergMicro 25Q32A 只可工作于 DIO / DOUT (NodeMCU V1.0 可能是 ESP-12E 接线的问题);
    MXIC 25L80 (小 K mini)只可工作于 DOUT;






















  • Flash Size大于Flash实际大小,最好改成往下兼容Flash实际大小,也就是不能大于Flash实际大小,Flash Size有多种选型,请看下图:

image

  • ESP8266供电不稳定,请尝试独立供电;
  • ESP8266模块接线接触不良;

3.3 测试结果

    烧录完上面测试固件之后,笔者的测试结果如下(正常情况下读者的结果也会跟笔者一样大同小异):

image

4. 本章总结

    在这一章,笔者给读者讲解了硬件环境的配置以及Arduinio IDE环境的配置,并且提供了一个获取ESP8266物理信息的测试例子,同时也讲解了烧录固件的配置工作以及常见问题。可以这么说,这章属于配置环境基础,属于我们成功的第一步。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210962.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午11:30
下一篇 2026年3月18日 下午11:30


相关推荐

  • Claude Code & DeepSeek-V3.1 环境配置指南 (Windows/macOS/Ubuntu)

    Claude Code & DeepSeek-V3.1 环境配置指南 (Windows/macOS/Ubuntu)

    2026年3月16日
    2
  • Ubuntu18.04安装Pycharm教程

    Ubuntu18.04安装Pycharm教程方法一 下载 Pycharm 与安装下载地址 https www jetbrains com pycharm Pycharm 专业版和社区版对大多数人来说差别不大 区别如下 我们下载 Linux 的社区版 右击安装包 gt Extracthere 生成一个 Pycharm 的文件夹 cd 到该文件夹的 bin 下 cdDownloads pycharm community 2018 1 4 bin 或进文

    2026年3月17日
    2
  • 【水了一篇】Scipy简单介绍

    【水了一篇】Scipy简单介绍Scipy是基于Numpy的科学计算库,用于数学、科学、工程学等领域

    2022年6月28日
    31
  • mqttnet 详解_vs2017通过mqttnet创建mqtt服务端 客户端

    mqttnet 详解_vs2017通过mqttnet创建mqtt服务端 客户端服务端:usingMQTTnet;usingMQTTnet.Server;usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Diagnostics;usingSystem.IO;usingSystem.Linq;usingSyst…

    2022年6月25日
    42
  • 基于libcurl的开发

    基于libcurl的开发0 ReferenceB 站阅读的小哥的视频知乎的一片好文 libcurl 使用方法简介 1 简介 libcurl 是一个跨平台的开源网络协议库 支持 http https rtsp 等多种协议 libcurl 同样支持 HTTPS 证书授权 HTTPPOST HTTPPUT FTP 上传 HTTP 基本表单上传 代理 cookies 和用户认证 官网地址 http curl haxx se libcurl 主要提供了两种发送 HTTP 请求的方式 分别是 easyinterfac 方式

    2025年12月13日
    9
  • html表格菜鸟教程_exls表格

    html表格菜鸟教程_exls表格HTML基础之表格文章目录HTML基础之表格1.表格的定义2.表格的标签3.单元格边框(border)4.合并单元格4.1合并行单元格(colspan)4.2合并列单元格(rowspan)5.表格格式设置5.1单元格的对齐(align)(居中,左对齐,右对齐)5.2.背景色&图片(bgcolor&background)5.2.1单元格背景色&图片5.2.2表格背景色&图片5.3单元格的边距(cellpadding)5.4单元格间的距离(cel

    2022年8月11日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号