跳转到内容

INA2xx 系列数字功率监视器

Adafruit 集成分流器的 INA228 模块

ina2xx 传感器平台允许您在 ESPHome 中使用德州仪器 (Texas Instruments) 的电流和功率传感器系列。 需要在配置中设置适当的接口(I²C 总线SPI 总线)才能使此传感器正常工作。

产品协议描述
INA228I²C 85V、20位、超高精度功率/能量/电荷监视器
INA229SPI 85V、20位、超高精度功率/能量/电荷监视器
INA238I²C 85V、16位、高精度功率监视器
INA239SPI 85V、16位、高精度功率监视器
INA237I²C 85V、16位、精密功率监视器

所有设备都可以测量分流器上可选的满量程差分输入 ±163.84 mV 或 ±40.96 mV, 支持 -0.3 V 到 +85 V 的共模电压。

INA228 和 INA229 是该系列中最全面的设备,具有额外功能:20位 ADC 分辨率、 能量和电荷累积,以及利用温度测量来补偿分流电阻温度变化的能力。

使用 ina2xx_i2c 组件通过 I²C 总线连接 INA228、INA237 或 INA238 设备。

# I²C 配置示例
sensor:
- platform: ina2xx_i2c
id: my_charge_sensor
model: INA228
address: 0x40
shunt_resistance: 0.010 ohm
max_current: 10 A
adc_range: 0
update_interval: 60s
current: "INA228 电流"
bus_voltage: "INA228 总线电压"
charge: "INA228 电荷"
  • model (必需, string): INA2xx 传感器的型号。选项有 INA228INA237INA238

  • address (可选, int): 手动指定传感器的 I²C 地址。默认为 0x40

  • shunt_resistance (必需, float): 用于电流计算的分流电阻值。无默认值。

  • max_current (必需, float): 您预期的最大电流。组件将使用它来校准传感器。无默认值。

  • adc_range (可选, 01): 选择分流电阻两端的差分输入范围。 0 表示 ±163.84 mV,1 表示 ±40.96 mV 范围。默认为 0

  • adc_time (可选, 时间): 执行单次 ADC 转换的时间(微秒)。 默认为 4120 us。有效值为 50 us84 us150 us280 us540 us1052 us2074 us4120 us

    可以分别为分流电压、总线电压和温度测量配置转换时间,而不是为所有 ADC 测量使用同一时间。 选项与 adc_time 相同。

    • bus_voltage (可选, 时间): 总线电压测量的转换时间。
    • shunt_voltage (可选, 时间): 分流电压测量的转换时间。
    • temperature (可选, 时间): 温度测量的转换时间。
  • adc_averaging (可选, integer): 选择 ADC 采样平均数。默认为 128。 有效值为 1416641282565121024

  • temperature_coefficient (可选, 0 到 16383 的整数): 分流器的温度系数 (ppm/°C), 用于温度补偿校正。仅适用于 INA228 和 INA229 设备。值为零表示不进行补偿。默认为 0

  • update_interval (可选, 时间): 检查传感器的时间间隔。 默认为 60s

  • reset_on_boot (可选, boolean): 是否在组件初始化时重置设备配置(包括计数器)。 默认为 true;设置为 false 可在 ESPHome 重置时保留计数器。

  • 所有其他选项来自 传感器I²C 设备

使用 ina2xx_spi 组件通过 SPI 总线连接 INA229 或 INA239 设备。

# SPI 配置示例
sensor:
- platform: ina2xx_spi
cs_pin: GPIOXX
model: INA239
shunt_resistance: 0.001130 ohm
max_current: 40 A
adc_range: 0
temperature_coefficient: 50
current: "INA239 电流"
power: "INA239 功率"
  • model (必需, string): INA2xx 传感器的型号。选项有 INA229INA239

  • cs_pin (必需, 引脚配置): 片选 (CS) 引脚。

  • shunt_resistance (必需, float): 用于电流计算的分流电阻值。无默认值。

  • max_current (必需, float): 您预期的最大电流。组件将使用它来校准传感器。无默认值。

  • adc_range (可选, 01): 选择分流电阻两端的差分输入范围。 0 表示 ±163.84 mV,1 表示 ±40.96 mV 范围。默认为 0

  • adc_time (可选, 时间): 执行单次 ADC 转换的时间(微秒)。 默认为 4120 us。有效值为 50 us84 us150 us280 us540 us1052 us2074 us4120 us

    可以分别为分流电压、总线电压和温度测量配置转换时间,而不是为所有 ADC 测量使用同一时间。 选项与 adc_time 相同。

    • bus_voltage (可选, 时间): 总线电压测量的转换时间。
    • shunt_voltage (可选, 时间): 分流电压测量的转换时间。
    • temperature (可选, 时间): 温度测量的转换时间。
  • adc_averaging (可选, integer): 选择 ADC 采样平均数。默认为 128。 有效值为 1416641282565121024

  • temperature_coefficient (可选, 0 到 16383 的整数): 分流器的温度系数 (ppm/°C), 用于温度补偿校正。仅适用于 INA228 和 INA229 设备。值为零表示不进行补偿。默认为 0

  • update_interval (可选, 时间): 检查传感器的时间间隔。 默认为 60s

  • reset_on_boot (可选, boolean): 是否在组件初始化时重置设备配置(包括计数器)。 默认为 true;设置为 false 可在 ESPHome 重置时保留计数器。

  • 所有其他选项来自 传感器SPI 设备

该组件提供九个传感器。您可以配置全部或部分传感器。每个配置的传感器会在每次 update_interval 时单独上报。 每个配置的传感器都需要 name 选项;也支持 传感器 的所有其他选项。 传感器可以使用简写形式,如:current: "电流"

  • current (可选): 计算的电流输出,单位 A
  • power (可选): 计算的功率输出,始终为正值,单位 W
  • shunt_voltage (可选): 分流器两端测量的差分电压,单位 mV
  • bus_voltage (可选): 总线电压输出,单位 V
  • temperature (可选): 内部芯片温度测量,单位 °C
  • energy (可选): 计算的能量输出,单位 Wh(仅限 INA228/229
  • energy_joules (可选): 计算的能量输出,单位焦耳(仅限 INA228/229
  • charge (可选): 计算的电荷输出,单位 Ah(仅限 INA228/229
  • charge_coulombs (可选): 计算的电荷输出,单位库仑(仅限 INA228/229

该组件暴露一个函数用于重置 INA228/INA229 的能量和电荷累加器。

  • reset_energy_counters()
// 在 lambda 中重置计数器。
id(my_charge_sensor).reset_energy_counters();

为了简化此函数的使用,您可以使用以下示例添加一个按钮来重置计数器。

button:
- platform: template
name: "重置计数器"
on_press:
- lambda: "id(my_change_sensor).reset_energy_counters();"