ESP8266 Arduino物联网开发之旅

ESP8266开发之旅 基础篇② 如何安装ESP8266的Ard

2019-02-13  本文已影响181人  单片机菜鸟博哥

第2章 如何安装ESP8266的Arduino开发环境

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

2.1 硬件

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

image

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

image

    笔者选择它的理由很简单——既有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
温馨提示

2.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.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.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

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

温馨提示

2.3 烧录ESP8266

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

2.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.上面例子的看门狗属于软件看门狗,作用是:如果在规定时间内不进行喂狗操作,那么系统就会在看门狗的作用下复位。默认情况下,软件看门狗是开启的,很多读者的代码运行之所以不稳定或者抛出各种异常,其中一大原因就是没有喂狗。关于这一个,笔者后面的章节会有具体讲解。

2.3.2 烧录配置

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


image
烧录代码

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

image
    如果显示下图,表示上传失败。
image
温馨提示

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

2.3.3 测试结果

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


image

2.4 本章总结

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

博哥ESP8266 qq交流群:869920142

image
上一篇下一篇

猜你喜欢

热点阅读