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

71 篇文章 3180 订阅 ¥19.90 ¥99.00

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

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

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

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

    俗话说,工欲善其事必先利其器。基于Arduino平台开发ESP8266,我们至少要分别准备好硬件和软件开发环境:
    1. 硬件
    ESP8266模块,或者ESP8266开发板,笔者建议初学者直接使用开发板;
    2. 软件
    Arduino IDE开发环境;

1. 硬件

    硬件环境主要分为两种:
    1. ESP8266开发板 + USB线
    笔者建议入门初学者直接入手一块开发板,开发板的一个好处就是板子设计者已经给初学者排查了硬件连接错误,可以使初学者专注于软件开发,加快学习进度。目前比较火的一款ESP8266开发板就是NodeMcu,其核心芯片是ESP8266-12F,如下图所示(图片引用自安信可官网):

在这里插入图片描述

    不过,笔者本书也使用了另外一款开发板——ESP202测试板,其核心芯片也是ESP8266-12F,如下图所示:
请添加图片描述

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

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

引脚编号引脚定义引脚描述
1TX1)UART_TX发送端;2)通用IO口:GPIO1;
2GNDGND
3CH_PD1)高电平工作;2)低电平模块供电关掉;
4GPIO2开机上电时必须为高电平,禁止硬件下拉,内部默认已拉高;
5GPIO16外部Reset信号,低电平复位,高电平工作(默认应该是高电平);
6GPIO0接地进入烧录固件模式,悬空为正常运行模式;
7VCC3.3V(切记不要供5V!!!)
8RX1)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. 软件开发环境

    软件安装需要分成两个步骤:
    1.安装Arduino IDE
    Arduino IDE开发环境主要用于Arduino Uno/Mini/Mega2560等平台的项目开发。而ESP8266也可以基于该IDE来开发, 所以我们首先需要安装它;
    2.配置Arduino Core For ESP8266
    Arduino Core For ESP8266可以理解为能在Arduino IDE上开发ESP8266的插件;

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(115200);
  //使能软件看门狗的触发间隔
  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()/1000000);
  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函数里面,主要设置了串口通信波特率115200(串口调试器的波特率需要设置成一致),同时设置了软件看门狗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

温馨提示

    上传失败原因可能有以下几点,请逐一排除:
    1.烧录过程还没有显示任何进度就立刻提示失败,原因如下:

  • ESP8266的COM端口没选对,请确认ESP8266对应端口;

  • ESP8266 Upload Speed选择不对,默认应该是115200;

  • 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 选型表(笔者在第1章有讲解过)。
2.烧录过程显示一定进度就提示失败,原因如下:

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

3.3 测试结果

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

image

4. 本章总结

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

  • 218
    点赞
  • 646
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 58
    评论
### 回答1: Arduino ESP8266开发环境是一种基于Arduino开发板ESP8266 WiFi模块的开发环境。它可以让开发者使用Arduino IDE来编写和上传代码,实现与WiFi网络的连接和数据传输。同时,它也提供了丰富的库函数和示例代码,方便开发者快速上手。使用Arduino ESP8266开发环境可以轻松地开发各种物联网应用,如智能家居、智能农业、智能健康等。 ### 回答2: Arduino ESP8266开发环境是一种基于Arduino平台的开发环境,旨在为开发者设计,构建和测试WiFi与物联网应用程序提供简单的解决方案。它使用了ESP8266模块,这是一种小型WiFi模块,能够连接网络并传输数据。Arduino ESP8266开发环境ESP8266提供了完整的开发环境,支持各种编程语言,允许开发者快速构建强大和功能丰富的应用程序。 Arduino ESP8266开发环境具有以下主要组成部分: 1. Arduino IDE:是开发环境的主程序,可以使用各种计算机操作系统运行,包括Windows、Linux、Mac等。它提供了编程和调试功能,允许开发者通过USB端口将代码上传到ESP8266模块。 2. ESP8266库:是开发环境的一个重要组成部分,提供了许多方便的功能和例程,可以帮助开发者快速开发WiFi应用程序。该库包括WiFi、Web服务器、Web客户端、WiFiManager、EEPROM和OTA等功能。 3. ESP8266硬件:这是ArduinoESP8266通信的硬件接口。它可以是整个ESP8266系统,也可以是通过USB端口或WiFi模块与计算机连接的ESP8266模块。此外,还需要一些外围组件,例如电容、电阻和LED等。 在使用Arduino ESP8266开发环境时,开发者首先需要安装Arduino IDE程序,然后在开发环境安装ESP8266库。一旦安装完成,开发者就可以创建一个新的项目,编写代码,将代码上传到ESP8266模块,测试和debug程序。 总之,Arduino ESP8266开发环境开发者提供了一个简单而强大的平台来构建WiFi和物联网项目,使开发者能够更轻松地实现各种功能和物联网应用程序。 ### 回答3: Arduino ESP8266是一种基于ESP8266 Wi-Fi模块的Arduino微控制器。它可以通过Wi-Fi连接与Internet和其他设备进行通信。这种开发环境为制作基于Wi-Fi的物联网(IoT)应用程序提供了便利。 在开始使用Arduino ESP8266之前,我们需要准备一些必要的工具: 1. Arduino IDE: 这是一个基于Java的IDE,它用于编写和调试Arduino代码。Arduino IDE是开放源代码软件,可从Arduino网站免费下载。 2. ESP8266板支持包: Arduino板支持包包含了可以适用于多种不同类型的Arduino板,包括Arduino ESP8266(NodeMCU板等)。在Arduino IDE中选择ESP8266板支持包,可以让我们编译和上传代码到ESP8266板上。 3. USB电缆:我们需要一根USB电缆来将我们的计算机与Arduino ESP8266板连接起来。 一旦我们准备就绪,我们就可以开始创建我们的Arduino ESP8266开发环境了。我们可以按照以下步骤操作: 1. 下载并安装Arduino IDE 2. 打开Arduino IDE,进入“文件”>“首选项”菜单。在“其他开发人员的板管理器网址”字段中输入ESP8266兼容管理器的URL: http://arduino.esp8266.com/stable/package_esp8266com_index.json 3. 进入“工具>开发板>板管理器”菜单,在搜索框中输入“ESP8266”,然后选择最新版本并安装。 4. 在“工具>开发板”菜单中选择“NodeMCU 1.0 (ESP-12E)” 5. 在“工具>端口”中选择我们的ESP8266板所连接的COM端口 6. 现在我们可以开始编写代码,并使用Arduino IDE中的串口工具将代码上传到ESP8266板。 在通过以上步骤构建好我们的开发环境之后,我们可以创建各种不同的应用程序。例如,我们可以创建一个用于控制LED的IoT应用程序。我们可以通过Wi-Fi从远程地点控制LED的亮度和颜色,并收集数据来监测LED的使用状况。 总结来说,通过以上步骤,我们可以建立一个完备的Arduino ESP8266开发环境,并进行各种创新的IoT项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 58
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

单片机菜鸟哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值