ESP8266 平台
此组件包含 ESP8266 平台的平台特定选项。
# 示例配置项esp8266: board: nodemcuv2 framework: version: recommended-
board (Required, string): 应使用的 PlatformIO 开发板 ID。从 此列表 中选择适当的开发板(名称旁边的图标可用于复制开发板 ID)。这只影响引脚别名、闪存大小和一些内部设置,如果不确定,请选择 Espressif 的通用开发板,如
esp01_1m。 -
framework (Optional): ESPHome 使用的基础框架选项。
-
version (Optional, string): 要使用的基础框架版本号,来自 esp8266 arduino 发布。默认为
recommended。其他值dev: 使用来自 https://github.com/esp8266/Arduino 的最新提交,请注意这可能随时会出问题latest: 使用来自 https://github.com/esp8266/Arduino/releases 的最新发布,即使尚未被推荐。recommended: 使用推荐的框架版本。
-
source (Optional, string): 用于框架的 PlatformIO 包或仓库。这可用于使用框架的自定义或修补版本。
-
platform_version (Optional, string): 要使用的 platformio/espressif8266 包的版本。
-
-
restore_from_flash (Optional, boolean): 是否在闪存中存储一些持久首选项。默认为
false。 -
board_flash_mode (Optional, string): 闪存芯片的 SPI 模式。
qio、qout、dio和dout之一。默认为dout以兼容所有芯片。注意:在下一次 OTA 更新时,实际闪存模式会被自动检测并更改为适当的模式。 -
early_pin_init (Optional, boolean): 指定是否应尽早将引脚初始化为已知值。推荐值为
false,特别是在涉及开关的情况下,因为这些在更新固件或重启设备时会切换。默认为true。 -
enable_serial (Optional, boolean): 强制启用 Arduino
Serial对象(UART0)以便在 lambda 或外部库中使用。大多数用户永远不需要此选项,因为logger和uart组件会自动启用所需的 Serial 对象。仅当您在 lambda 中直接访问Serial并遇到编译错误时才使用此选项。尽可能改用 UART 组件,因为它适用于所有平台。默认为自动检测。 -
enable_serial1 (Optional, boolean): 强制启用 Arduino
Serial1对象(UART1)以便在 lambda 或外部库中使用。大多数用户永远不需要此选项,因为logger和uart组件会自动启用所需的 Serial 对象。仅当您在 lambda 中直接访问Serial1并遇到编译错误时才使用此选项。尽可能改用 UART 组件,因为它适用于所有平台。默认为自动检测。
GPIO 引脚编号
Section titled “GPIO 引脚编号”许多开发板对暴露引脚的编号与内部使用的编号不同。ESPHome 尝试使用一些开发板将丝印引脚编号映射到内部引脚编号,但对于通用 ESP8266 开发板,通常只需要使用内部引脚编号。
为此,只需在所有引脚前加上 GPIO 前缀,例如 GPIO0 表示内部引脚编号为 0 的引脚。
关于引脚的一些说明:
-
GPIO6-GPIO11、GPIO0、GPIO2和GPIO15通常已被内部闪存接口和引导模式检测使用。因此最好避免使用这些引脚。 -
GPIO17还连接了一个 ADC。请参阅 Adc 以读取此引脚上的电压(范围从 0 到 1.0V)。
# 示例配置项esphome: name: livingroom
esp8266: board: nodemcuv2
binary_sensor: - platform: gpio name: "引脚 GPIO17" pin: GPIO17GPIO0 | 控制引导模式 |
|---|---|
GPIO1 | UART TX 引脚 |
GPIO2 | 控制引导模式 |
GPIO3 | UART RX 引脚 |
GPIO6 | SDIO/Flash CLK 引脚 |
GPIO7 | SDIO/Flash Data 0 引脚 |
GPIO8 | SDIO/Flash Data 1 引脚 |
GPIO9 | SDIO/Flash Data 2 引脚(仅限 qio/qout) |
GPIO10 | SDIO/Flash Data 3 引脚(仅限 qio/qout) |
GPIO11 | SDIO/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 将检查三个引脚以确定进入哪种引导模式。 有三种引导模式:
| 模式 | GPIO0 | GPIO2 | GPIO15 | boot mode: |
|---|---|---|---|---|
| 从闪存启动(正常) | HIGH | HIGH | LOW | 3 |
| 从 UART 下载代码 | LOW | HIGH | LOW | 1 |
| 从 SD 卡启动 | ANY | ANY | HIGH | 4-7 |
您可以通过查看 UART 输出来识别这些,boot mode: 行中的第一个数字告诉您选择了什么模式
ets Jan 8 2013,rst cause:4, boot mode:(3,6)查看 UART 日志时的第一行可能有无法识别的字符。这是因为 ESP8266 引导加载程序的有效波特率是 74800,而程序使用 115200。
此外,第一行还包含复位原因。 这些复位原因已记录在文档中:
| 0 | 未定义 |
|---|---|
| 1 | 上电重启 |
| 2 | 外部复位或深度睡眠唤醒 |
| 4 | 硬件看门狗复位 |
软件复位后,复位原因不会改变。
| 参数 | 最小值 | 典型值 | 最大值 | 单位 |
|---|---|---|---|---|
| 工作温度 | -40 | 125 | °C | |
工作电压 V_IO | 2.5 | 3.3 | 3.6 | V |
V_IL - 被视为 LOW 的输入电压电平 | -0.3 | 0.25*V_IO | V | |
V_IH - 被视为 HIGH 的输入电压电平 | 0.75*V_IO | 3.6 | V | |
V_OL - LOW 的输出电压电平 | 0.1*V_IO | V | ||
V_OH - HIGH 的输出电压电平 | 0.8*V_IO | V | ||
I_MAX - GPIO 的最大电流 | 12 | mA | ||
| 深度睡眠中的功耗 | 20 | µA | ||
| 活动模式下的功耗 | 120 | mA |
内部上拉/下拉电阻的值为 30kΩ 到 100kΩ (来源)。