{"id":4333,"date":"2019-02-20T20:00:15","date_gmt":"2019-02-20T19:00:15","guid":{"rendered":"https:\/\/msalamon.pl\/?p=4333"},"modified":"2025-12-27T19:57:52","modified_gmt":"2025-12-27T18:57:52","slug":"how-does-chuck-norris-measure-temperature-he-looks-at-it-mlx90614-on-stm32","status":"publish","type":"post","link":"https:\/\/msalamon.pl\/en\/how-does-chuck-norris-measure-temperature-he-looks-at-it-mlx90614-on-stm32\/","title":{"rendered":"How does Chuck Norris measure temperature? He looks at it! MLX90614 on STM32."},"content":{"rendered":"\n<p>This time we\u2019ll be like the titular Chuck Norris because we\u2019ll be measuring the temperature of objects without touching them at all. The distance temperature sensor <a href=\"https:\/\/sklep.msalamon.pl\/produkt\/pirometr-mlx90614\/?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=mlx90614&amp;utm_content=Text\">MLX90614<\/a> will help us with that.&nbsp;<\/p>\n\n\n\n<!--more-->\n\n\n\n<h1 class=\"wp-block-heading\">MLX90614 Pyrometer<\/h1>\n\n\n\n<p>This is a <a href=\"https:\/\/sklep.msalamon.pl\/produkt\/pirometr-mlx90614\/?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=mlx90614&amp;utm_content=Text\">pyrometer<\/a>, i.e., a sensor that measures temperature based on the thermal radiation emitted by an object. Every object emits such radiation. It is perceptible to humans (you feel heat as you approach a hot object). Above all, this radiation is emitted most strongly in the infrared range. This means it is not visible to the human eye (I wrote a bit about the spectrum of visible light <a href=\"http:\/\/msalamon.pl\/pomiar-natezenia-swiatla-z-wykorzystaniem-stm32\/\">here<\/a>). Of course, there are exceptions \u2013 bodies heated above 600\u00baC can emit waves short enough to fall within the visible range, specifically red. That\u2019s why highly heated metal glows red.<\/p>\n\n\n\n<p>The pyrometer\u2019s task is to analyze this radiation and, based on it, determine the temperature of the object. In practice, this will be the surface temperature.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/sklep.msalamon.pl\/produkt\/pirometr-mlx90614\/?&amp;utm_source=blog&amp;utm_medium=banner&amp;utm_campaign=mlx90614&amp;utm_content=mlx90614\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"341\" src=\"http:\/\/msalamon.pl\/wp-content\/uploads\/2019\/02\/MLX90614_baner-1024x341.jpg\" alt=\"\" class=\"wp-image-951\" srcset=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/02\/MLX90614_baner-1024x341.jpg 1024w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/02\/MLX90614_baner-300x100.jpg 300w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/02\/MLX90614_baner-768x256.jpg 768w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/02\/MLX90614_baner-24x8.jpg 24w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/02\/MLX90614_baner-36x12.jpg 36w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/02\/MLX90614_baner-160x53.jpg 160w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/02\/MLX90614_baner.jpg 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Field of View \u2013 FOV<\/h2>\n\n\n\n<p>Such sensors have one basic drawback (or maybe an advantage for some?). They have a certain fixed <strong>field of view<\/strong>. Hence, their measurement area depends on the distance from the object under test. This is exactly the same behavior as an ultrasonic distance sensor (<a href=\"http:\/\/msalamon.pl\/tani-dalmierz-ultradzwiekowy-hc-sr04\/\">Cheap ultrasonic rangefinder HC-SR04<\/a>) \u2013 the farther the sensor is from the object, the larger the object should be for the measurement to be reliable.<\/p>\n\n\n\n<p>There are several versions of the <a href=\"https:\/\/sklep.msalamon.pl\/produkt\/pirometr-mlx90614\/?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=mlx90614&amp;utm_content=Text\">MLX90614<\/a> with different FOVs. The ranges for different types are shown in the table below from the documentation.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"http:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_fov.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"236\" src=\"http:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_fov-1024x236.jpg\" alt=\"\" class=\"wp-image-693\" srcset=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_fov-1024x236.jpg 1024w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_fov-300x69.jpg 300w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_fov-768x177.jpg 768w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_fov-24x6.jpg 24w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_fov-36x8.jpg 36w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_fov-160x37.jpg 160w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_fov.jpg 1299w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p>We have sensors with one and two active areas at our disposal. The module I have from China <a class=\"thirstylink\" title=\"MLX90614\" href=\"http:\/\/msalamon.pl\/recommends\/mlx90614\/\">GY-906<\/a> has a <span><a class=\"thirstylink\" title=\"MLX90614\" href=\"http:\/\/msalamon.pl\/recommends\/mlx90614\/\">MLX90614ESF-BAA<\/a> mounted, so the field of view of my unit is 72\u00ba. This is a very wide angle, so remember to measure the temperature from the shortest possible distance to the object.<\/span><\/p>\n\n\n\n<p>Some key data from the documentation (<a data-e-disable-page-transition=\"true\" class=\"download-link\" title=\"\" href=\"https:\/\/msalamon.pl\/download\/696\/?tmstv=1766859693\" rel=\"nofollow\" id=\"download-link-696\" data-redirect=\"false\"><br>MLX90614 Datasheet<\/a><br>):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>17-bit ADC \u2013 quite a lot of bits<\/li>\n\n\n\n<li>Ambient temperature measurement range -40\u00f7125\u00baC<\/li>\n\n\n\n<li>For the measured object, it sees temperature in the range -70\u00f7382.2\u00baC<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Emissivity<\/h2>\n\n\n\n<p>Unfortunately, as is often the case with physics \u2013 it\u2019s complicated. Contactless measurement is tempting and may look easy, but there\u2019s a catch. It\u2019s the emissivity of the object under test. This is a parameter that describes a surface\u2019s ability to emit thermal radiation. In plain terms \u2013 some materials emit thermal radiation better, others worse. Unfortunately, this should be taken into account in measurements. This value ranges from 0 to 1, and the obtained result should be multiplied by this value. Fortunately, we don\u2019t have to do this ourselves because the <a href=\"https:\/\/sklep.msalamon.pl\/produkt\/pirometr-mlx90614\/?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=mlx90614&amp;utm_content=Text\">MLX90614<\/a> can calculate the temperature on its own based on the given emissivity.<\/p>\n\n\n\n<p>Every new sensor has this parameter set to 1. It is stored in the sensor\u2019s EEPROM and can of course be changed. But how do we know what to change it to? For example, human skin has an emissivity of 0.985, while polished aluminum only 0.05. And what about all the other surfaces in the world? There are emissivity tables from which you can take these values. You can download an example here: <a data-e-disable-page-transition=\"true\" class=\"download-link\" title=\"\" href=\"https:\/\/msalamon.pl\/download\/691\/?tmstv=1766859693\" rel=\"nofollow\" id=\"download-link-691\" data-redirect=\"false\"><br>IR Emissivity Table<\/a><br>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Communication<\/h2>\n\n\n\n<p>There are two ways to extract temperature data from the <a class=\"thirstylink\" title=\"MLX90614\" href=\"http:\/\/msalamon.pl\/recommends\/mlx90614\/\">MLX90614<\/a>. The first interface is SMBus, a derivative of I\u00b2C. The second is a PWM signal which, to be honest, I\u2019ve rarely seen used, so I didn\u2019t implement it as I did in the case of <a href=\"http:\/\/msalamon.pl\/pomiar-czystosci-powietrza-przy-pomocy-sds011\/\">SDS011<\/a>. In addition, after reset the default interface is SMBus, so why complicate life.<\/p>\n\n\n\n<p>How does this SMBus differ from regular I\u00b2C? For us, the most important difference will be <strong>PEC<\/strong>, i.e., Packet Error Checking. It is used to check the correctness of data flow and in this case will be used only when writing to the sensor\u2019s EEPROM. It\u2019s a standard CRC-8 checksum calculated based on the device address, the address of the register we\u2019re writing to, and the value that is being written. Is that a problem? No. You can solve it in two ways. STM32s have built-in SMBus support, and by selecting it in CubeMX you don\u2019t have to worry about PEC. The second way is to calculate and append the CRC to the transmitted data.<\/p>\n\n\n\n<p>In my implementation I used plain I\u00b2C. Why? It may happen that there will be several different devices on one interface and not every one will want PEC. You could toggle the bit responsible for PEC transfer in the I\u00b2C configuration registers, but I can\u2019t guarantee that every STM32 has this bit in the same place. I also cared about portability between MCU families. Alright\u2026 but that costs time and flash and everything! Calculating CRC may take a moment, but how often will you write something to the sensor? Not much. Flash? There\u2019s plenty in STMs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Schematic and CubeMX configuration<\/h2>\n\n\n\n<p>Today I used a Nucleo with an L053R8 microcontroller.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/sklep.msalamon.pl\/kategoria-produktu\/dev-boardy\/stm32-nucleo\/?utm_source=blog&amp;utm_medium=banner&amp;utm_campaign=mlx90614&amp;utm_content=nucleo\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"400\" src=\"http:\/\/msalamon.pl\/wp-content\/uploads\/2020\/07\/Nucleo-64-baner.jpg\" alt=\"\" class=\"wp-image-1593\" srcset=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2020\/07\/Nucleo-64-baner.jpg 1200w, https:\/\/msalamon.pl\/wp-content\/uploads\/2020\/07\/Nucleo-64-baner-300x100.jpg 300w, https:\/\/msalamon.pl\/wp-content\/uploads\/2020\/07\/Nucleo-64-baner-1024x341.jpg 1024w, https:\/\/msalamon.pl\/wp-content\/uploads\/2020\/07\/Nucleo-64-baner-768x256.jpg 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"http:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_schematic.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"597\" src=\"http:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_schematic-1024x597.jpg\" alt=\"\" class=\"wp-image-698\" srcset=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_schematic-1024x597.jpg 1024w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_schematic-300x175.jpg 300w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_schematic-768x448.jpg 768w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_schematic-24x14.jpg 24w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_schematic-36x21.jpg 36w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_schematic-137x80.jpg 137w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_schematic.jpg 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"http:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_cubemx.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"526\" src=\"http:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_cubemx-1024x526.jpg\" alt=\"\" class=\"wp-image-700\" srcset=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_cubemx-1024x526.jpg 1024w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_cubemx-300x154.jpg 300w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_cubemx-768x394.jpg 768w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_cubemx-24x12.jpg 24w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_cubemx-36x18.jpg 36w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_cubemx-156x80.jpg 156w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_cubemx.jpg 1500w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p><a class=\"thirstylink\" title=\"MLX90614\" href=\"http:\/\/msalamon.pl\/recommends\/mlx90614\/\">MLX90614<\/a> supports up to 100 kHz on the I\u00b2C bus, so we won\u2019t go wild \ud83d\ude41<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Library<\/h2>\n\n\n\n<p>The sensor isn\u2019t very complex, so it doesn\u2019t require a huge library. Traditionally, the first function is initialization. In this case, the sensor is ready to read as soon as it\u2019s powered, so this function only assigns a pointer to the I\u00b2C interface.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">MLX90614_STATUS MLX90614_Init(I2C_HandleTypeDef *hi2c);<\/pre>\n\n\n\n<p>The pyrometer allows you to read two temperatures \u2013 ambient and the observed object. You can read the sensors using the functions below.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">MLX90614_STATUS MLX90614_ReadObjectTemperature(float *Temperature);\nMLX90614_STATUS MLX90614_ReadAmbientTemperature(float *Temperature);<\/pre>\n\n\n\n<p>Two functions are enough to handle emissivity.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">MLX90614_STATUS MLX90614_GetEmissivity(float *Emissivity);\nMLX90614_STATUS MLX90614_SetEmissivity(float Emissivity);\n<\/pre>\n\n\n\n<p>I mentioned earlier that you can change the sensor\u2019s SMBus address. Remember that the library assumes only one sensor connected to the MCU and the address is set to the default by <em>#define MLX90614_DEFAULT_ADDRESS ((0x5A)&lt;&lt;1).&nbsp;<\/em>If you want to change the address, you must recompile the library with the new address. If you want to connect more sensors (max 127), you will need to modify the library.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">MLX90614 operation<\/h2>\n\n\n\n<p>The sensor starts measuring immediately after power-up. If you don\u2019t want to change the emissivity parameter, it\u2019s enough to read the temperature cyclically. In the test code I read two temperatures and the set emissivity. As you can see on the terminal screenshot \u2013 I set the emissivity to that of human skin, and the surface temperature of my thumb is just over 32\u00baC \ud83d\ude42<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"http:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_temperature_measurement.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"689\" height=\"225\" src=\"http:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_temperature_measurement.jpg\" alt=\"\" class=\"wp-image-699\" srcset=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_temperature_measurement.jpg 689w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_temperature_measurement-300x98.jpg 300w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_temperature_measurement-24x8.jpg 24w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_temperature_measurement-36x12.jpg 36w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_temperature_measurement-160x52.jpg 160w\" sizes=\"auto, (max-width: 689px) 100vw, 689px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p>Now for what tigers (or at least one \u2013 me) like best \u2013 timings. Most often you\u2019ll be reading the temperature. It doesn\u2019t matter whether it\u2019s for the ambient or the object. For both it\u2019s exactly the same procedure. The time to read and compute the temperature is only 600 \u03bcs, which is very little.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"http:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_read_timing.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"117\" src=\"http:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_read_timing-1024x117.jpg\" alt=\"\" class=\"wp-image-701\" srcset=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_read_timing-1024x117.jpg 1024w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_read_timing-300x34.jpg 300w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_read_timing-768x88.jpg 768w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_read_timing-1536x176.jpg 1536w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_read_timing-24x3.jpg 24w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_read_timing-36x4.jpg 36w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_read_timing-160x18.jpg 160w, https:\/\/msalamon.pl\/wp-content\/uploads\/2019\/01\/mlx90614_read_timing.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p>Can you use DMA? Of course. Just note that you need to do a small conversion to get the temperature in Celsius.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p>That\u2019s it as far as this interesting chip is concerned. A pyrometer can be used wherever there is no possibility to interfere with the measured object. I myself will soon want to build a device based on this sensor. What do you say to doing it live? Let me know in the comments or by email.<\/p>\n\n\n\n<p>If you liked the sensor, you can buy it <a href=\"https:\/\/sklep.msalamon.pl\/produkt\/pirometr-mlx90614\/?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=mlc90614&amp;utm_content=Text\">in my store<\/a>.<\/p>\n\n\n\n<p>The project with code is on my GitHub: <a href=\"https:\/\/github.com\/lamik\/MLX90614_STM32_HAL\" target=\"_blank\" rel=\"noopener\">link<\/a><\/p>\n\n\n\n<p><span>If you noticed any error, disagree with something, would like to add something important, or simply think you\u2019d like to discuss this topic, write a comment. Remember that the discussion should be polite and in accordance with the rules of the Polish language.<\/span><\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;4333&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;0&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;0\\\/5 - (0 votes)&quot;,&quot;size&quot;:&quot;24&quot;,&quot;title&quot;:&quot;How does Chuck Norris measure temperature? He looks at it! MLX90614 on STM32.&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} - ({count} {votes})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 19.2px;\">\n            <span class=\"kksr-muted\"><\/span>\n    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>This time we\u2019ll be like the titular Chuck Norris because we\u2019ll be measuring the temperature of objects without touching them at all. The distance temperature sensor MLX90614 will help us with that.&nbsp;<\/p>\n","protected":false},"author":1,"featured_media":3131,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[160],"tags":[],"class_list":["post-4333","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-stm32"],"_links":{"self":[{"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/posts\/4333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/comments?post=4333"}],"version-history":[{"count":3,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/posts\/4333\/revisions"}],"predecessor-version":[{"id":4439,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/posts\/4333\/revisions\/4439"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/media\/3131"}],"wp:attachment":[{"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/media?parent=4333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/categories?post=4333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/tags?post=4333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}