Board for temperature measurement built around MLX90614 infrared surface temperature sensor.
Arduino core used is Raspberry Pi Pico / RP2040 by Earle F. Philhower, III v3.7.0.
InterboardSerial custom library is used for communicating with the calibration board.
Title | Version |
---|---|
lvgl | 8.3.11 |
TFT_eSPI | 2.5.34 |
Smoothed | 1.2.0 |
SerialTransfer | 3.1.3 |
NeoPixelConnect | 1.2.0 |
JLed | 4.13.1 |
Adafruit MLX90614 | 2.1.5 |
Adafruit LC709203F | 1.3.4 |
Adafruit FT6206 | 1.1.0 |
Adafruit BusIO | 1.15.0 |
ArduinoJson | 7.0.3 |
InterboardSerial | latest |
sensor (M_s) object
+----------- emitted (M_o) +------+
| <==============================| |
| <-----------------------------_| |
+----------- reflected (M_r) /|------+
/
/
/ ambient
/ to be reflected
MLX90614 leverages the above to come up with its temperature readings. It has an element monitoring its own
temperature, as well as another sensor registering incident energy flux. It uses an emissivity value of 1.00
by default. As a note, in the equation above the sensor's firmware assumes
A way to adjust the calculations for a different emissivity is to get the temperature reading from the device with its default emissivity, thereby getting the incident flux value. Then use the above formula backward, using an arbitrary emissivity of choice and now taking the temperature for the unknown variable.
Also, when doing calculations manually on MCU, the
First, we get both the object temperature 1.0
. For the sake of this example, we get
Now we calculate the actual object temperature using what we believe is the real emissivity of whatever material
we are measuring. Let's say the material is anodized aluminum with emissivity 0.77
. Applying the same formula
backward we get: