Zum Inhalt springen

WSAL13461 – Infrared Temperature Sensor/en

Aus JW Tech Wiki
Version vom 6. September 2026, 00:32 Uhr von JWTechPublisher (Diskussion | Beiträge) (Freigegebene technische Dokumentation veröffentlicht; Text-only und noindex)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Documentation notice: This technical documentation was independently rewritten from an archived supplier source. Check technical details and commands against the product version and manufacturer documentation before use.

Summary

Contactless infrared temperature sensor based on the MLX90614 chip with SMBus/I2C interface, 35° field of view and object measurement range up to 380 °C.

Related products at JW Tech

Technical overview

  • Chip used: MLX90614ESF-BCC; the module offers both a digital PWM output and SMBus output, with the documentation focusing on SMBus.
  • Supply voltage: 3.3 V to 5 V; built-in level translation allows direct connection to 3.3 V or 5 V MCU systems.
  • Measurement ranges: area −40 °C to 85 °C; object −70 °C to 380 °C; resolution 0.02 °C; accuracy ±0.5 °C for 0–50 °C.
  • Field of view (FOV): 35°, defined by the 50% radiation signal received by the thermopile; most accurate when the object covers the full FOV.
  • Dimensions: 28 mm × 16 mm; mounting hole diameter 2.0 mm.
  • SMBus is a two-wire interface based on the I2C principle; start and stop signals are defined via SDA transitions while SCL is high; every received 8-bit data block is acknowledged with ACK/NACK.
  • Default I2C address for a single sensor: 7-bit address 0x00; read operation sends (SA<<1)+0 = 0x00; write operation sends (SA<<1)+1 = 0x01.
  • Accessing RAM registers: command 0x00 OR register address; ambient temperature at 0x06, object temperature at 0x07; EEPROM access uses command bit 0x20.
  • Raw data to Celsius conversion: ((TempData_H << 8) + TempData_L) × 0.02 − 273.15.
  • When multiple sensors share the bus, the slave address can be changed via EEPROM to avoid address conflicts.

Commands and examples – verify before use: 

sudo raspi-config
sudo reboot
sudo apt-get install wiringpi
wget https://files.waveshare.com/wiki/common/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
sudo wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz
sudo tar zxvf bcm2835-1.71.tar.gz
cd bcm2835-1.71/
sudo ./configure && sudo make && sudo make check && sudo make install
sudo apt-get update
sudo apt-get install python3-pip
sudo apt-get install python3-pil
sudo apt-get install python3-numpy
sudo pip3 install RPi.GPIO
sudo pip3 install spidev
sudo apt-get install p7zip-full -y
sudo wget https://files.waveshare.com/upload/5/53/Infrared-Temperature-Sensor-Code.7z
7z x Infrared-Temperature-Sensor-Code.7z
cd Infrared-Temperature-Sensor-Code/RaspberryPi/

Notes and version constraints

  • The stated default I2C address 0x00 applies only to a single sensor; with multiple sensors, the address must be changed via EEPROM, which requires additional steps.
  • The conversion formula assumes raw data are correctly read; error conditions such as EEBUSY or EE_DEAD can affect the measurement.
  • The exact measurement distance depends on the FOV: for a 5 cm radius object, the maximum distance for accurate readings is about 7 cm; greater distances cause deviations.
  • Installing BCM2835 and wiringPi may fail depending on OS version; on Bookworm only lgpio is available.
  • The example files must be downloaded and unzipped; without proper setup the examples cannot run.

Source and revision record