跳转到内容

INA2xx 系列数字功率监控器

带 Adafruit 集成分流器的 INA228 模块

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

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

所有设备均可测量在分流器上 ±163.84 mV 或 ±40.96 mV 的可选满量程差分输入,共模电压支持范围为 –0.3 V 至 +85 V。

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

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

# Example configuration entry for 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 Current"
bus_voltage: "INA228 Bus Voltage"
charge: "INA228 Charge"
  • model(必选,string): INA2xx 传感器的型号。可选值为 INA228、INA237、INA238。

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

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

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

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

  • adc_time (可选,Time): 执行单次 ADC 转换的微秒时间。 默认为 4120 us。有效值为 50 us、84 us、150 us、280 us、540 us、 1052 us、2074 us、4120 us。

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

    • bus_voltage (可选,Time): 总线电压测量的转换时间。
    • shunt_voltage (可选,Time): 分流电压测量的转换时间。
    • temperature (可选,Time): 温度测量的转换时间。
  • adc_averaging (可选,integer): 选择 ADC 采样平均次数。默认为 128。 有效值为 1、4、16、64、128、256、512、1024。

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

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

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

  • 来自 Sensor 和 I²C 设备 的其他所有选项。

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

# Example configuration entry for 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 Current"
power: "INA239 Power"
  • model(必选,string): INA2xx 传感器的型号。可选值为 INA229、INA239。

  • cs_pin(必选,Pin Schema): 片选(CS)引脚。

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

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

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

  • adc_time (可选,Time): 执行单次 ADC 转换的微秒时间。 默认为 4120 us。有效值为 50 us、84 us、150 us、280 us、540 us、 1052 us、2074 us、4120 us。

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

    • bus_voltage (可选,Time): 总线电压测量的转换时间。
    • shunt_voltage (可选,Time): 分流电压测量的转换时间。
    • temperature (可选,Time): 温度测量的转换时间。
  • adc_averaging (可选,integer): 选择 ADC 采样平均次数。默认为 128。 有效值为 1、4、16、64、128、256、512、1024。

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

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

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

  • 来自 Sensor 和 SPI 设备 的其他所有选项。

此组件提供九个传感器。您可以配置全部或其中任意子集。每个配置的传感器 会在每次 update_interval 时单独报告。每个配置的传感器均需设置 name 选项; 同时也支持来自 Sensor 的其他所有选项。传感器可使用简写表示法,如下所示: current: "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()
// Within lambda, reset counters.
id(my_charge_sensor).reset_energy_counters();

要简化该函数的使用,可以使用以下示例添加一个重置计数器的按钮。

button:
- platform: template
name: "Reset counters"
on_press:
- lambda: "id(my_change_sensor).reset_energy_counters();"