INA2xx 系列数字功率监视器
ina2xx 传感器平台允许您在 ESPHome 中使用德州仪器 (Texas Instruments) 的电流和功率传感器系列。
需要在配置中设置适当的接口(I²C 总线 或 SPI 总线)才能使此传感器正常工作。
| 产品 | 协议 | 描述 |
|---|---|---|
| INA228 | I²C 8 | 5V、20位、超高精度功率/能量/电荷监视器 |
| INA229 | SPI 8 | 5V、20位、超高精度功率/能量/电荷监视器 |
| INA238 | I²C 8 | 5V、16位、高精度功率监视器 |
| INA239 | SPI 8 | 5V、16位、高精度功率监视器 |
| INA237 | I²C 8 | 5V、16位、精密功率监视器 |
所有设备都可以测量分流器上可选的满量程差分输入 ±163.84 mV 或 ±40.96 mV, 支持 -0.3 V 到 +85 V 的共模电压。
INA228 和 INA229 是该系列中最全面的设备,具有额外功能:20位 ADC 分辨率、 能量和电荷累积,以及利用温度测量来补偿分流电阻温度变化的能力。
通过 I²C
Section titled “通过 I²C”使用 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 传感器的型号。选项有
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 (可选, 时间): 执行单次 ADC 转换的时间(微秒)。 默认为
4120 us。有效值为50 us、84 us、150 us、280 us、540 us、1052 us、2074 us、4120 us。可以分别为分流电压、总线电压和温度测量配置转换时间,而不是为所有 ADC 测量使用同一时间。 选项与
adc_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 (可选, 时间): 检查传感器的时间间隔。 默认为
60s。 -
reset_on_boot (可选, boolean): 是否在组件初始化时重置设备配置(包括计数器)。 默认为
true;设置为false可在 ESPHome 重置时保留计数器。
通过 SPI
Section titled “通过 SPI”使用 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 传感器的型号。选项有
INA229、INA239。 -
cs_pin (必需, 引脚配置): 片选 (CS) 引脚。
-
shunt_resistance (必需, float): 用于电流计算的分流电阻值。无默认值。
-
max_current (必需, float): 您预期的最大电流。组件将使用它来校准传感器。无默认值。
-
adc_range (可选,
0或1): 选择分流电阻两端的差分输入范围。0表示 ±163.84 mV,1表示 ±40.96 mV 范围。默认为0。 -
adc_time (可选, 时间): 执行单次 ADC 转换的时间(微秒)。 默认为
4120 us。有效值为50 us、84 us、150 us、280 us、540 us、1052 us、2074 us、4120 us。可以分别为分流电压、总线电压和温度测量配置转换时间,而不是为所有 ADC 测量使用同一时间。 选项与
adc_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 (可选, 时间): 检查传感器的时间间隔。 默认为
60s。 -
reset_on_boot (可选, boolean): 是否在组件初始化时重置设备配置(包括计数器)。 默认为
true;设置为false可在 ESPHome 重置时保留计数器。
该组件提供九个传感器。您可以配置全部或部分传感器。每个配置的传感器会在每次 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)
Lambda 调用
Section titled “Lambda 调用”该组件暴露一个函数用于重置 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();"