{"id":4892,"date":"2026-06-17T08:47:05","date_gmt":"2026-06-17T15:47:05","guid":{"rendered":"https:\/\/www.donluc.com\/?p=4892"},"modified":"2026-06-17T08:47:05","modified_gmt":"2026-06-17T15:47:05","slug":"project-15-environment-infrared-temperature-sensor-mlx90614-mk42","status":"publish","type":"post","link":"https:\/\/www.donluc.com\/?p=4892","title":{"rendered":"Project #15: Environment &#8211; Infrared Temperature Sensor MLX90614 &#8211; Mk42"},"content":{"rendered":"<div style=\"width: 1200px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-4892-1\" width=\"1200\" height=\"675\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/06\/DL2606Mk02W.mp4?_=1\" \/><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/06\/DL2606Mk02W.mp4\">https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/06\/DL2606Mk02W.mp4<\/a><\/video><\/div>\n<p>&#8212;&#8212;<\/p>\n<p>#DonLucElectronics #DonLuc #MLX90614 #AHT20 #Environment #FireBeetle2ESP32E #ESP32 #Display #IoT #Project #Fritzing #Programming #Electronics #Microcontrollers #Consultant<\/p>\n<p>&#8212;&#8212;<\/p>\n<p><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/06\/DL2606Mk02a.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/06\/DL2606Mk02a.jpg\" alt=\"MLX90614\" width=\"720\" height=\"529\" class=\"alignnone size-full wp-image-4894\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/06\/DL2606Mk02a.jpg 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/06\/DL2606Mk02a-300x220.jpg 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p>&#8212;&#8212;<\/p>\n<p><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/06\/DL2606Mk02b.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/06\/DL2606Mk02b.jpg\" alt=\"MLX90614\" width=\"720\" height=\"480\" class=\"alignnone size-full wp-image-4895\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/06\/DL2606Mk02b.jpg 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/06\/DL2606Mk02b-300x200.jpg 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p>&#8212;&#8212;<\/p>\n<p><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/06\/DL2606Mk02c.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/06\/DL2606Mk02c.jpg\" alt=\"MLX90614\" width=\"720\" height=\"480\" class=\"alignnone size-full wp-image-4896\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/06\/DL2606Mk02c.jpg 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/06\/DL2606Mk02c-300x200.jpg 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p>&#8212;&#8212;<\/p>\n<p><strong>Infrared Temperature Sensor MLX90614<\/strong><\/p>\n<p>The MLX90614 infrared temperature sensor is a digital device that allows for contactless temperature measurement using the infrared radiation emitted by objects. This module integrates the Melexis MLX90614 sensor, which includes a thermopile to detect IR radiation and an internal processor that converts this signal into compensated temperature values for both the object and the ambient temperature. Its operation is based on the principle that all bodies emit infrared radiation proportional to their temperature; the sensor captures this radiation and translates it into a precise digital value. The MLX90614 offers measurements from -70 \u00b0C to 380 \u00b0C for object temperature and from -40 \u00b0C to 170 \u00b0C for ambient temperature, with a typical accuracy of \u00b10.5 \u00b0C. It primarily communicates via I2C facilitating its integration with microcontrollers.<\/p>\n<p>The MLX90614 infrared temperature sensor is used in applications requiring contactless temperature measurement, making it ideal for digital thermometers, medical monitoring, temperature control in machinery, industrial systems, ovens, smart appliances, weather stations, and robotics projects.<\/p>\n<p><strong>DL2606Mk02<\/strong><\/p>\n<p>1 x DFRobot FireBeetle 2 ESP32-E<br \/>\n1 x Fermion: 3.5\u201d 480&#215;320 TFT LCD Capacitive<br \/>\n1 x GDL Line 10 CM<br \/>\n1 x Infrared Temperature Sensor MLX90614<br \/>\n1 x Gravity: AHT20 Temperature and Humidity Sensor<br \/>\n1 x Gravity: IO Shield for FireBeetle 2<br \/>\n1 x Terminal Block Board for FireBeetle 2 ESP32-E IoT<br \/>\n1 x Lithium Ion Battery &#8211; 1000mAh<br \/>\n1 x USB 3.0 to Type-C Cable<\/p>\n<p><strong>DL2606Mk02p<\/strong><\/p>\n<p><strong>DL2606Mk02p.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/****** Don Luc Electronics \u00a9 ******\r\nSoftware Version Information\r\nProject #15: Environment - Infrared Temperature Sensor MLX90614 - Mk42\r\n15-42\r\nDL2606Mk02p.ino\r\nDL2606k02\r\n1 x DFRobot FireBeetle 2 ESP32-E\r\n1 x Fermion: 3.5\u201d 480x320 TFT LCD Capacitive\r\n1 x GDL Line 10 CM\r\n1 x Infrared Temperature Sensor MLX90614\r\n1 x Gravity: AHT20 Temperature and Humidity Sensor\r\n1 x Gravity: IO Shield for FireBeetle 2\r\n1 x Terminal Block Board for FireBeetle 2 ESP32-E IoT\r\n1 x Lithium Ion Battery - 1000mAh\r\n1 x USB 3.0 to Type-C Cable\r\n*\/\r\n\r\n\/\/ Include the Library Code\r\n\/\/ EEPROM Library to Read and Write EEPROM with Unique ID for Unit\r\n#include &quot;EEPROM.h&quot;\r\n\/\/ DFRobot Display GDL API\r\n#include &lt;DFRobot_GDL.h&gt;\r\n\/\/ AHT20 Humidity and Temperature Sensor\r\n#include &lt;DFRobot_AHT20.h&gt;\r\n\/\/ Wire\r\n#include &lt;Wire.h&gt;\r\n\/\/ MLX90614\r\n#include &lt;Adafruit_MLX90614.h&gt;\r\n\r\n\/\/ MLX90614\r\nAdafruit_MLX90614 mlx = Adafruit_MLX90614();\r\n\/\/ MLX90614\r\nfloat fAmbiente = 0;\r\nfloat fObject = 0;\r\n\r\n\/\/ AHT20 Humidity and Temperature Sensor\r\nDFRobot_AHT20 aht20;\r\n\/\/ AHT20 Humidity and Temperature Sensor\r\nfloat h = 0;\r\nfloat t = 0;\r\n\r\n\/\/ Defined ESP32\r\n#define TFT_DC  D2\r\n#define TFT_CS  D6\r\n#define TFT_RST D3\r\n\r\n\/*dc=*\/ \/*cs=*\/ \/*rst=*\/\r\n\/\/ DFRobot Display 320x480\r\nDFRobot_ILI9488_320x480_HW_SPI screen(TFT_DC, TFT_CS, TFT_RST);\r\n\r\n\/\/ Software Version Information\r\n\/\/ EEPROM Unique ID Information\r\n#define EEPROM_SIZE 64\r\nString uid = &quot;&quot;;\r\n\r\n\/\/ Software Version Information\r\nString sver = &quot;15-42&quot;;\r\n\r\nvoid loop() {\r\n  \r\n  \/\/ isMLX90614\r\n  isMLX90614();\r\n  \r\n  \/\/ AHT20 Humidity and Temperature Sensor\r\n  isHT();\r\n\r\n  \/\/ isDisplay Infrared Temperature Sensor MLX90614\r\n  isDisplayMLX90614();\r\n\r\n  \/\/ Delay 2 Second\r\n  delay( 2000 );\r\n\r\n}\r\n<\/pre>\n<p><strong>getDisplay.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ DFRobot Display 320x480\r\n\/\/ DFRobot Display 320x480 - UID\r\nvoid isDisplayUID(){\r\n\r\n  \/\/ DFRobot Display 320x480\r\n  \/\/ Text Display\r\n  \/\/ Text Wrap\r\n  screen.setTextWrap(false);\r\n  \/\/ Rotation\r\n  screen.setRotation(3);\r\n  \/\/ Fill Screen =&gt; black\r\n  screen.fillScreen(0x0000);\r\n  \/\/ Text Color =&gt; white\r\n  screen.setTextColor(0xffff);\r\n  \/\/ Font =&gt; Free Sans Bold 12pt\r\n  screen.setFont(&amp;FreeSansBold12pt7b);\r\n  \/\/ TextSize =&gt; 1.5\r\n  screen.setTextSize(1.5);\r\n  \/\/ Don Luc Electronics\r\n  screen.setCursor(0, 30);\r\n  screen.println(&quot;Don Luc Electronics&quot;);\r\n  \/\/ Tilt Switch\r\n  screen.setCursor(0, 60);\r\n  screen.println(&quot;Infrared Temperature MLX90614&quot;);\r\n  \/\/ Version\r\n  screen.setCursor(0, 90);\r\n  screen.println(&quot;Version&quot;);\r\n  screen.setCursor(0, 120);\r\n  screen.println( sver );\r\n  \/\/ EEPROM\r\n  screen.setCursor(0, 150);\r\n  screen.println(&quot;EEPROM&quot;);\r\n  screen.setCursor(0, 180);\r\n  screen.println( uid );\r\n\r\n}\r\n\/\/ isDisplay MLX90614\r\nvoid isDisplayMLX90614(){\r\n\r\n  \/\/ DFRobot Display 320x480\r\n  \/\/ Text Display\r\n  \/\/ Text Wrap\r\n  screen.setTextWrap(false);\r\n  \/\/ Rotation\r\n  screen.setRotation(3);\r\n  \/\/ Fill Screen =&gt; white\r\n  screen.fillScreen(0xffff);\r\n  \/\/ Text Color =&gt; blue\r\n  screen.setTextColor(0x001F);\r\n  \/\/ Font =&gt; Free Sans Bold 12pt\r\n  screen.setFont(&amp;FreeSansBold12pt7b);\r\n  \/\/ TextSize =&gt; 1.5\r\n  screen.setTextSize(1.5);\r\n  \/\/ Vibration Senso\r\n  screen.setCursor(0, 30);\r\n  screen.println(&quot;Infrared Temperature MLX90614&quot;);\r\n  \/\/ Humidity\r\n  screen.setCursor(0, 70);\r\n  screen.println(&quot;Humidity&quot;);\r\n  screen.setCursor(0, 100);\r\n  screen.print( h );\r\n  screen.setCursor(65, 100);\r\n  screen.println( &quot;%RH&quot; );\r\n  \/\/ Temperature\r\n  screen.setCursor(0, 140);\r\n  screen.println(&quot;Temperature&quot;);\r\n  screen.setCursor(0, 170);\r\n  screen.print( t );\r\n  screen.setCursor(65, 170);\r\n  screen.println( &quot;C&quot; );\r\n  \/\/ MQ-3 Alcohol Detector\r\n  screen.setCursor(0, 210);\r\n  screen.println(&quot;Infrared Temperature MLX90614&quot;);\r\n  screen.setCursor(0, 240);\r\n  screen.print( &quot;Ambiente: &quot; );\r\n  screen.setCursor(130, 240);\r\n  screen.print( fAmbiente );\r\n  screen.setCursor(200, 240);\r\n  screen.println( &quot;C&quot; );\r\n  screen.setCursor(0, 265);\r\n  screen.print( &quot;Object: &quot; );\r\n  screen.setCursor(130, 265);\r\n  screen.print( fObject );\r\n  screen.setCursor(200, 265);\r\n  screen.println( &quot;C&quot; );\r\n  \r\n}\r\n<\/pre>\n<p><strong>getEEPROM.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ isUID EEPROM Unique ID\r\nvoid isUID()\r\n{\r\n  \r\n  \/\/ Is Unit ID\r\n  uid = &quot;&quot;;\r\n  for (int x = 0; x &lt; 7; x++)\r\n  {\r\n    uid = uid + char(EEPROM.read(x));\r\n  }\r\n  \r\n}\r\n<\/pre>\n<p><strong>getgetHT.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ AHT20 Humidity and Temperature Sensor\r\nvoid isHT(){\r\n\r\n  if(aht20.startMeasurementReady(true)){\r\n\r\n    \/\/ Humidity\r\n    h = aht20.getHumidity_RH();\r\n  \r\n    \/\/ Temperature\r\n    t = aht20.getTemperature_C();\r\n    \r\n   }\r\n  \r\n}\r\n<\/pre>\n<p><strong>getMLX90614.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ Infrared Temperature Sensor MLX90614\r\n\/\/ isMLX90614\r\nvoid isMLX90614(){\r\n\r\n  fAmbiente = mlx.readAmbientTempC();\r\n\r\n  fObject = mlx.readObjectTempC();\r\n\r\n}\r\n<\/pre>\n<p><strong>setup.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ Setup\r\nvoid setup()\r\n{\r\n \r\n  \/\/ Delay\r\n  delay( 100 );\r\n\r\n   \/\/ EEPROM Size\r\n  EEPROM.begin(EEPROM_SIZE);\r\n  \r\n  \/\/ EEPROM Unique ID\r\n  isUID();\r\n\r\n  \/\/ Delay\r\n  delay(100);\r\n\r\n  \/\/ DFRobot Display 320x480\r\n  screen.begin();\r\n\r\n  \/\/ Delay\r\n  delay( 100 );\r\n\r\n  \/\/ AHT20 Humidity and Temperature Sensor\r\n  aht20.begin();\r\n\r\n  \/\/ Delay\r\n  delay( 100 );\r\n\r\n  \/\/ Infrared Temperature Sensor MLX90614\r\n  mlx.begin();\r\n\r\n  \/\/ Delay\r\n  delay( 100 );\r\n\r\n  \/\/ DFRobot Display 320x480 - UID\r\n  \/\/ Don Luc Electronics\r\n  \/\/ Version\r\n  \/\/ EEPROM\r\n  isDisplayUID();\r\n\r\n  \/\/ Wait for the sensor to heat up for 20 seconds\r\n  delay( 5000 );\r\n\r\n}\r\n<\/pre>\n<p>&#8212;&#8212;<\/p>\n<p><strong>People can contact us:<\/strong> https:\/\/www.donluc.com\/?page_id=1927<\/p>\n<p><strong>Consultant, R&#038;D, Electronics, IoT, Teacher and Instructor<\/strong><\/p>\n<ul>\n<li>Programming Language<\/li>\n<li>Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi, Arm, Silicon Labs, Espressif, Etc&#8230;)<\/li>\n<li>IoT<\/li>\n<li>Wireless (Radio Frequency, Bluetooth, WiFi, Etc&#8230;)<\/li>\n<li>Robotics<\/li>\n<li>Automation<\/li>\n<li>Camera and Video Capture Receiver Stationary, Wheel\/Tank , Underwater and UAV Vehicle<\/li>\n<li>Unmanned Vehicles Terrestrial,  Marine and UAV<\/li>\n<li>Machine Learning<\/li>\n<li>Artificial Intelligence (AI)<\/li>\n<li>RTOS<\/li>\n<li>Sensors, eHealth Sensors, Biosensor, and Biometric<\/li>\n<li>Research &#038; Development (R &#038; D)<\/li>\n<li>Consulting<\/li>\n<\/ul>\n<p><strong>Follow Us<\/strong><\/p>\n<p><strong>Luc Paquin \u2013 Curriculum Vitae &#8211; 2026<\/strong><br \/>\nhttps:\/\/www.donluc.com\/luc\/LucPaquinCVEng2026Mk01.pdf<br \/>\nhttps:\/\/www.donluc.com\/luc\/<\/p>\n<p><strong>Web:<\/strong> https:\/\/www.donluc.com\/<br \/>\n<strong>Web:<\/strong> https:\/\/www.jlpconsultants.com\/<br \/>\n<strong>Facebook:<\/strong> https:\/\/www.facebook.com\/neosteam.labs.9\/<br \/>\n<strong>YouTube:<\/strong> https:\/\/www.youtube.com\/@thesass2063<br \/>\n<strong>DFRobot:<\/strong> https:\/\/learn.dfrobot.com\/user-10186.html<br \/>\n<strong>TikTok:<\/strong> https:\/\/www.tiktok.com\/@luc.paquin8<br \/>\n<strong>Hackster:<\/strong> https:\/\/www.hackster.io\/luc-paquin<br \/>\n<strong>LinkedIn:<\/strong> https:\/\/www.linkedin.com\/in\/jlucpaquin\/<\/p>\n<p><strong>Don Luc<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8212;&#8212; #DonLucElectronics #DonLuc #MLX90614 #AHT20 #Environment #FireBeetle2ESP32E #ESP32 #Display #IoT #Project #Fritzing #Programming #Electronics #Microcontrollers #Consultant &#8212;&#8212; &#8212;&#8212; &#8212;&#8212; &#8212;&#8212; Infrared Temperature Sensor MLX90614 The MLX90614 infrared temperature sensor is a digital device that allows for contactless temperature measurement using the infrared radiation emitted by objects. This module integrates the Melexis MLX90614 sensor, which includes &#8230; <a title=\"Project #15: Environment &#8211; Infrared Temperature Sensor MLX90614 &#8211; Mk42\" class=\"read-more\" href=\"https:\/\/www.donluc.com\/?p=4892\" aria-label=\"Read more about Project #15: Environment &#8211; Infrared Temperature Sensor MLX90614 &#8211; Mk42\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[106,50,49,317,38,80,59,115,5,287,58,82,10,416],"tags":[],"class_list":["post-4892","post","type-post","status-publish","format-standard","hentry","category-environment","category-arduino","category-consultant","category-dfrobot","category-digitalelectronics","category-esp32","category-fritzing","category-e-mentor","category-microcontrollers","category-program","category-arduino-programming","category-program-esp32","category-projects","category-unit"],"_links":{"self":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/4892","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4892"}],"version-history":[{"count":1,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/4892\/revisions"}],"predecessor-version":[{"id":4897,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/4892\/revisions\/4897"}],"wp:attachment":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4892"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4892"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4892"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}