Volt Docs

Reference

MLX90614

Non-contact IR thermometer.

Connects over
I²C
Address
0x5A
Made by
Melexis
Datasheet
melexis.com

Use it

main.volt
hardware {
    device mlx90614: MLX90614
}

every 1s {
    let value: float = mlx90614.ambient()
    log("mlx90614", "ambient={value}")
}

On its own, the declaration puts the MLX90614 on the first I²C bus (SDA 21, SCL 22 on the ESP32) at 0x5A. To choose the pins or the address, declare the bus and attach the device: device mlx90614: MLX90614 on i2c0 at 0x5A with i2c i2c0(sda: 21, scl: 22).

Methods

  • mlx90614.ambient() -> float

    Ambient temperature °C

  • mlx90614.object() -> float

    Object surface temperature °C

Wiring

PinConnect to
VCC3.3V or 5V
GNDGround
SDAPull-up to VCC (often on breakout board)
SCLPull-up to VCC
PWM/SDADefault is SMBus — pull-ups required; can be configured as PWM

Specifications

Voltage
3.0V – 5.0V (3.3V version is 'BCC' suffix; 5V version is 'AAA')
Current
1.3 mA active
Object temp
−70°C to +382°C ±0.5°C
Ambient temp
−40°C to +125°C ±0.5°C
Field of view
≈ 90° (BAA), ≈ 35° (BCC narrow)

Tips

  • Reads object temp without contact — useful for non-invasive body temp / hotspot detection.
  • Field of view matters — narrow FOV variants are better for small distant targets.
  • Reflective surfaces lie to the IR sensor (a mirror reads your face temp, not the mirror's).

Alternatives worth knowing:

  • MLX90640: 32×24 IR thermal camera — much more capable, much pricier.