An infrared thermometer is an essential tool for rapid, accurate, and contactless temperature measurements. I used this tech to create a DIY smart coaster. That project inspired me to build a wearable infrared thermometer ring.

As the name suggests it is an infrared thermometer that can be worn like a ring on the finger. The thermometer has an infrared temperature sensor under the ring, and the temperature reading is displayed on an OLED screen on top of the ring. For this project, I used the Xiao esp32c3 microcontroller, and I incorporated a built-in BMS for recharging the battery. Additionally, I used the MLX90614 Non-Contact Precision Thermometer Module, which provides fast temperature readings ranging from -70°C (-94°F) to +380°C (+720°F).The sensor does not need to have contact with the subject to measure the temperature. You can get a reliable measurement from 2cm to 5cm away from the subject.

I thought this would be useful for restaurant or food truck workers. With this setup, the worker can still take readings while handling food or drinks for the customer. No need to grab another thermometer and use it. This can save time on the order because the worker can do other tasks while wearing this. It is a great use case for this project 

This tool can be customized by changing a few lines of code. For example, you can pre-set different temperature values or ranges and display a message if the sensor reaches these readings. This customization can be helpful for various purposes like baby food motoring, baking, scientific analysis, manufacturing, etc. I can guide you on how to edit the program to fit your specific needs in Step 3

so let's start the build

Note: Please wait a moment for all the GIFs on the web page to load.



Click the part name to open the purchase link (Just experimenting with new ways of presenting on Instructables.)


  • Soldering kit
  • Soldering helping hand
  • Tweezer
  • Wire cutter 
  • Utility knife 
  • 3d printer

3D Printing

I used my Anycubic Kobra to 3D print all the files. I printed them in PLA+. I also designed all the parts with 3D printing in mind, so none of the parts are challenging to 3D print. 

 Customizing the Code

As an example, we will configure it to find the right serving temperature for the food item 

The parameters we need are as follows:

  • If the measured food temperature is lower than 122F, we need to display a "Low serve temperature" warning.
  • If it is between 122F and 140F, we need to show a "Good serve temperature" message.
  • If it is higher than 140F, we need to display a "High serve temperature" warning.

Now let's look at how to modify the code to achieve our speciation 

To set the low temperature 

Edit the value in the line number 20

if (foodTTemperature < 122) // Put the minimum temp

Also, the message that needs to be displayed can be added in line number 24

display.print("LOW SERVE TEMP<122F");

To set a good temperature range

Edit the value in the line number 25

else if (foodTTemperature >= 122 && foodTTemperature <= 140)

Also, the message that needs to be displayed can be added in line number 30

display.print("GOOD SERVE TEMP>122F");

To set the high temperature 

If the value range configured in line number 25 surpasses 140F we can display the message through line number 36

display.print("HIGH SERVE TEMP>140F");

Here is the completed code for a quick look. I attached this.ino file in this step

I also include a Celsius version of it Infrared_Temp_Ring_C_Food.ino

Uploading Code to XIAO ESP32C3

I always like to upload the code to the microcontroller before assembly. I am using Arduino IDE to flash the code. follow these tutorials for setting up IDE for Seeed Studio XIAO esp32c3 and learn more about this board

Please download and install the Adafruit_MLX90614.h library before compiling

How to install library tutorial video link

After this, I...

Read more »