跳转到内容

ESP8266 平台

此组件包含 ESP8266 平台的平台特定选项。

# 示例配置项
esp8266:
board: nodemcuv2
framework:
version: recommended
  • board (Required, string): 应使用的 PlatformIO 开发板 ID。从 此列表 中选择适当的开发板(名称旁边的图标可用于复制开发板 ID)。这只影响引脚别名、闪存大小和一些内部设置,如果不确定,请选择 Espressif 的通用开发板,如 esp01_1m

  • framework (Optional): ESPHome 使用的基础框架选项。

  • restore_from_flash (Optional, boolean): 是否在闪存中存储一些持久首选项。默认为 false

  • board_flash_mode (Optional, string): 闪存芯片的 SPI 模式。qioqoutdiodout 之一。默认为 dout 以兼容所有芯片。注意:在下一次 OTA 更新时,实际闪存模式会被自动检测并更改为适当的模式。

  • early_pin_init (Optional, boolean): 指定是否应尽早将引脚初始化为已知值。推荐值为 false,特别是在涉及开关的情况下,因为这些在更新固件或重启设备时会切换。默认为 true

  • enable_serial (Optional, boolean): 强制启用 Arduino Serial 对象(UART0)以便在 lambda 或外部库中使用。大多数用户永远不需要此选项,因为 loggeruart 组件会自动启用所需的 Serial 对象。仅当您在 lambda 中直接访问 Serial 并遇到编译错误时才使用此选项。尽可能改用 UART 组件,因为它适用于所有平台。默认为自动检测。

  • enable_serial1 (Optional, boolean): 强制启用 Arduino Serial1 对象(UART1)以便在 lambda 或外部库中使用。大多数用户永远不需要此选项,因为 loggeruart 组件会自动启用所需的 Serial 对象。仅当您在 lambda 中直接访问 Serial1 并遇到编译错误时才使用此选项。尽可能改用 UART 组件,因为它适用于所有平台。默认为自动检测。

许多开发板对暴露引脚的编号与内部使用的编号不同。ESPHome 尝试使用一些开发板将丝印引脚编号映射到内部引脚编号,但对于通用 ESP8266 开发板,通常只需要使用内部引脚编号。 为此,只需在所有引脚前加上 GPIO 前缀,例如 GPIO0 表示内部引脚编号为 0 的引脚。

关于引脚的一些说明:

  • GPIO6 - GPIO11GPIO0GPIO2GPIO15 通常已被内部闪存接口和引导模式检测使用。因此最好避免使用这些引脚。

  • GPIO17 还连接了一个 ADC。请参阅 Adc 以读取此引脚上的电压(范围从 0 到 1.0V)。

# 示例配置项
esphome:
name: livingroom
esp8266:
board: nodemcuv2
binary_sensor:
- platform: gpio
name: "引脚 GPIO17"
pin: GPIO17
GPIO0控制引导模式
GPIO1UART TX 引脚
GPIO2控制引导模式
GPIO3UART RX 引脚
GPIO6SDIO/Flash CLK 引脚
GPIO7SDIO/Flash Data 0 引脚
GPIO8SDIO/Flash Data 1 引脚
GPIO9SDIO/Flash Data 2 引脚(仅限 qio/qout)
GPIO10SDIO/Flash Data 3 引脚(仅限 qio/qout)
GPIO11SDIO/Flash CMD 引脚
GPIO12连接到硬件 SPI 控制器 MISO
GPIO13连接到硬件 SPI 控制器 MOSI
GPIO14连接到硬件 SPI 控制器 CLK
GPIO15控制引导模式;连接到硬件 SPI 控制器 CS
GPIO16可从 RTC 访问的特殊引脚,是深度睡眠唤醒引脚
TOUT 又名 GPIO17用于测量电压的 ADC 引脚,只能用作模拟输入引脚

这实际上意味着只有以下引脚可用作通用 GPIO:

引脚限制复位后状态
GPIO0启动时如果为高电平弱上拉
GPIO2启动时如果为高电平弱上拉
GPIO4高阻抗
GPIO5高阻抗
GPIO6弱上拉
GPIO12弱上拉
GPIO13弱上拉
GPIO14弱上拉
GPIO15启动时如果为低电平弱上拉
GPIO16有下拉(但没有上拉)电阻弱下拉

在每次启动时,ESP8266 将检查三个引脚以确定进入哪种引导模式。 有三种引导模式:

模式GPIO0GPIO2GPIO15boot mode:
从闪存启动(正常)HIGHHIGHLOW3
从 UART 下载代码LOWHIGHLOW1
从 SD 卡启动ANYANYHIGH4-7

您可以通过查看 UART 输出来识别这些,boot mode: 行中的第一个数字告诉您选择了什么模式

ets Jan 8 2013,rst cause:4, boot mode:(3,6)

查看 UART 日志时的第一行可能有无法识别的字符。这是因为 ESP8266 引导加载程序的有效波特率是 74800,而程序使用 115200。

此外,第一行还包含复位原因。 这些复位原因已记录在文档中

0未定义
1上电重启
2外部复位或深度睡眠唤醒
4硬件看门狗复位

软件复位后,复位原因不会改变。

参数最小值典型值最大值单位
工作温度-40125°C
工作电压 V_IO2.53.33.6V
V_IL - 被视为 LOW 的输入电压电平-0.30.25*V_IOV
V_IH - 被视为 HIGH 的输入电压电平0.75*V_IO3.6V
V_OL - LOW 的输出电压电平0.1*V_IOV
V_OH - HIGH 的输出电压电平0.8*V_IOV
I_MAX - GPIO 的最大电流12mA
深度睡眠中的功耗20µA
活动模式下的功耗120mA

来源:ESP8266EX 数据手册

内部上拉/下拉电阻的值为 30kΩ 到 100kΩ (来源)。