
Module13.2 Dual Kmeter is a dual-channel K-type temperature measurement module based on the "MAX31855KASA + stm32f030f4p6 + electrical isolation" solution. The module features two K-type thermocouple sensor interfaces, and uses a signal relay to alternately measure the temperature values of the two channels. It supports a measurement range of -200°C to 1350°C with an accuracy of ±2°C. Additionally, the module includes B0505LS-1WR2 and CA-IS3020S voltage and signal isolation chips, ensuring system stability and safety. The module also has a built-in DIP switch for easily switching different I2C addresses to meet various application needs. It can be used in industrial automation, instrument detection, and other scenarios.
This dual_kmeter sensor platform allows you to use the
Module13.2 Dual Kmeter
dual-channel K-Type thermocouple temperature module with ESPHome.
The module exposes two independent thermocouple inputs (Kmeter 1 and Kmeter 2)
as well as an on-board internal temperature sensor, all accessible over a single
I²C bus.
The I²C Bus is required to be set up in your configuration for this sensor to work.
# Example configuration entry
i2c:
sda: GPIO21
scl: GPIO22
sensor:
- platform: dual_kmeter
name: "Thermocouple Channel 1"
channel: KMETER_1
update_interval: 60s channel (Required): The measurement channel to read. One of:
| Value | Description |
|---|---|
KMETER_1 | K-Type thermocouple on input 1 |
KMETER_2 | K-Type thermocouple on input 2 |
INTERNAL | On-board internal temperature sensor |
unit (Optional): The temperature unit reported by the sensor. One of
CELSIUS or FAHRENHEIT. Defaults to CELSIUS.
update_interval (Optional, Time):
The interval at which the sensor is polled. Defaults to 60s.
address (Optional, int): The I²C address of the module.
Defaults to 0x11.
All other options from Sensor.
KMETER_1 / KMETER_2)When a thermocouple channel is selected, the component writes the channel
selection register (0x20) on every update() cycle, then polls the
ready-flag register (0x30) until the module signals that a fresh conversion
is available. The component waits up to 300 ms; if the flag is not
asserted within that window the update is skipped and a warning is logged:
[W][dual_kmeter]: Kmeter sampling timeout Temperature values are stored in the module firmware as signed 32-bit integers
in little-endian byte order, scaled by a factor of 0.01 (i.e. a register
value of 2537 represents 25.37 °C).
INTERNAL)The internal channel reads the module's on-board thermistor directly without waiting for a ready flag. This measurement is always available and is not affected by the thermocouple channel selection register.
The M5Stack Module Dual Kmeter uses a fixed I²C address of 0x11 by
default. If the hardware address has been changed via the module's DIP switch,
specify the new address with the address option:
sensor:
- platform: dual_kmeter
name: "Kiln Temperature"
channel: KMETER_2
address: 0x12 # non-default address i2c:
sda: GPIO21
scl: GPIO22
sensor:
# --- Thermocouple channel 1, Celsius ---
- platform: dual_kmeter
name: "Kiln Thermocouple"
channel: KMETER_1
unit: CELSIUS
update_interval: 30s
filters:
- sliding_window_moving_average:
window_size: 5
send_every: 5
# --- Thermocouple channel 2, Fahrenheit ---
- platform: dual_kmeter
name: "Oven Thermocouple (°F)"
channel: KMETER_2
unit: FAHRENHEIT
# for unit consistency, default 'unit_of_measurement' is celsius
unit_of_measurement: "°F"
update_interval: 30s
# --- On-board internal temperature ---
- platform: dual_kmeter
name: "Module Internal Temperature"
channel: INTERNAL
update_interval: 60s An example of CoreS3 with Module13.2 Duak Kmeter: