Portable Digital Thermometer Project Using Arduino

by rohanbarnwal in Circuits > Arduino

1626 Views, 17 Favorites, 0 Comments

Portable Digital Thermometer Project Using Arduino

Untitled design (12).png

Introduction

In today's world, contactless temperature sensing is everywhere - from medical checks at airports, to smart HVAC systems, to DIY projects for IoT and automation. One of the most reliable sensors for this purpose is the MLX90614 Infrared Temperature Sensor, which can measure object temperature without direct contact.

In this project, we'll build a portable digital thermometer using:

  1. Arduino Nano - the compact brain of the project
  2. MLX90614 IR Sensor - for accurate, non contact temperature readings
  3. OLED Display (SH1106, 0.96") - to neatly display the temperature values

This thermometer is compact, lightweight, and powered bey Arduino, making it a perfect DIY tool for students, hobbyists, or startups looking to build a consumer-ready device.

How It Works

The MLX90614 sensor communicates over I2C and gives us the object temperature directly in Celsius. The Arduino Nano fetches this data and processes it, while the OLED SH1106 display outputs the live reading in small, sharp text.

  1. Sampling Rate: Updates every 500 ms (twice per second).
  2. Display: Shows temperature in Celsius with two decimal accuracy.
  3. Serial Output: Also logs readings to Serial Monitor at 9600 baud (useful for debugging or data logging).

This combination makes it a real-time digital thermometer that you can carry in your pocket.

Real-Life Applications

This project is not just a toy - it has practical applications:

  1. Portable body temperature measurement (medical use).
  2. Surface temperature checking of machinery, electronics, or appliances.
  3. Integrating into smart devices like IoT home automation systems.
  4. A teaching project for students learning embedded systems.

Basically, it's a pocket-size digital thermometer, useful in both personal and professional settings.

Supplies

download (2).jpeg
download.jpeg
download (3).jpeg

1. Arduino Nano: The Arduino Nano is a compact breadboard-friendly microcontroller board based on the ATmega328P. Despite its small size, it packs all the features of a standard Arduino Uno, including:

  1. 14 Digital I/O pins (6 PWM capable)
  2. 8 Analog input pins
  3. Operating Voltage: 5v
  4. Clock Speed: 16MHz
  5. Flash Memory: 32 KB

Its biggest advantage is the tiny form factor - perfect for portable and wearable projects like this thermometer. Because of its USB interface, uploading code is quick and easy. the Nano is widely used for DIY gadgets, embedded projects, and IoT prototypes.

2. MLX90614 Infrared Temperature Sensor: The MLX90614 is a highly accurate, non-contact infrared thermometer, it uses infrared radiation detection to measure the temperature of an object from a distance.

Key Features:

  1. Measurement Range: -70 C to + 380 C (object)
  2. Accuracy: 0.5 C in the human body range (36 C - 39 C)
  3. Output: Digital (I2C) and PWM
  4. Field of View: 35 standard lens (ideal for spot readings)

This makes it ideal for human body thermometers, industrial temperature checks, and IoT devices. Its ability to measure without touching the surface makes it hygienic and reliable - perfect for our portable thermometer.

3. OLED Display (0.96", SH1106 Driver): The OLED display used here is a 0.96 inch monochrome screen driven by the SH1106 controller IC. OLEDs (Organic Light Emitting Diodes) provide crisp, high-contrast text that is easy to read even in bright conditions. Unlike LCDs OLEDs don't need a backlight - every pixel emits its own light, resulting in low power consumption and sharp visuals.

Key features:

  1. Resolution: 128 x 64 pixels
  2. Interface: I2C
  3. Display Color: White (on black background)
  4. Low Power Usage (ideal for battery-powered devices)

For this thermometer, it neatly displays the temperature values in real-time, making the project compact, modern, and user-friendly.

Taking the Project to the Next Level - With JUSTWAY

Now, here's the truth: a bunch of wires and a naked PCB might work on your desk, but when you want to show your project in showrooms, tech fairs, or startup pitches, presentation matters.

That's where JUSTWAY comes in.

With an enclosure from JUSTWAY, your simple prototype turns into a professional-grade product - polished, durable, and ready for real-world use. Imagine holding your thermometer in a sleek black matte case, or showing the electronics inside with a transparent resin enclosure. Nothing beats JUSTWAY for taking your project from "DIY cool" to "market ready awesome."

Why JUSTWAY is the Best

JUSTWAY is not just another prototyping service. They are the gold standard in rapid prototyping, precision machining, and production manufacturing.

Here's why nothing is better than JUSTWAY:

Rapid Prototyping

  1. 24 hour prototype delivery
  2. Instant DFM feedback
  3. Real-time production tracking and instant quoting

CNC Machining (Milling & Post-Processing)

  1. High precision with Aluminum 6061, Stainless Steel 304, etc.
  2. Perfect for strong heat resistant parts like instrument casing
  3. Post processing options anodizing sandblasting, polishing

Sheet Metal (Laser Cutting, Bending & Post-Processing)

  1. Aluminum 5052, Steel, Stainless
  2. Laser-cut precision, CNC-bent structures
  3. Powder coating, brushing and surface treatments

Injection Molding (Prototyping & Production Tools)

  1. PC/ABS blends - ideal for durable flexible enclosures
  2. Prototypes molds for testing
  3. Full-scale production tools when you're ready to launch

Urethane Casting

  1. Production-quality parts at low cost
  2. Perfect for low-volume runs and demo-ready casings

3D Printing

  1. SLA resin - transparent, detailed, and aesthetic
  2. Nylon HP-PA12 - durable strong great for wearable tech


How to Order from JUSTWAY in 4 Easy Steps

Upload Your Design

11.png
  1. Go to JUSTWAY.com and upload your STL/STEP/CAD files.

Select Material & Finish

22.png
  1. Pick plastic, resin, or metal finishes.


Preview Your Model

33.png
  1. Live 3D preview with dimension checks.


Place Your Order

44.png
  1. Transparent pricing, no surprises, and fast delivery.

Pro Tip: Want to show off your electronics? choose transparent resin

Want a market-ready matte black case? JUSTWAY has you covered.

Why JUSTWAY + This Project = The Perfect Match

This digital thermometer becomes next-level awesome once enclosed in a JUSTWAY-manufactured casing. Instead of dangling wires, you get:

  1. A sleek, professional product
  2. A durable enclosure that can survive everyday use
  3. A presentation-ready device for pitching to investors or tech fairs

Connections

connection2.jpg

Since both the MLX90614 sensor and the OLED SH1106 display use the I2C communication protocol, wiring is very simple - both devices share the same SDA and SCL lines with the Arduino Nano

MLX90614 To Arduino Nano

  1. VCC To 5v
  2. GND To GND
  3. SDA To A4
  4. SCL To A5

OLED Display To Arduino Nano

  1. VCC To 5V
  2. GND To GND
  3. SDA TO A4
  4. SCL To A5


Code

/*
MLX90614 (0x5A) + SH1106 OLED (0x3C)
- Shows ONLY Object temperature (C)
- Small text (setTextSize(1))
- Serial Monitor at 9600 baud
*/

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH110X.h>

// ---------- I2C ADDRESSES ----------
#define MLX90614_ADDR 0x5A
#define OLED_ADDR 0x3C

// ---------- MLX90614 REGISTERS ----------
#define MLX_OBJECT_REG 0x07 // TOBJ1

// ---------- OLED SETUP (SH1106 128x64) ----------
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SH1106G display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

// ---------- MLX90614 LOW-LEVEL READ ----------
uint16_t mlxRead16(uint8_t reg) {
Wire.beginTransmission(MLX90614_ADDR);
Wire.write(reg);
if (Wire.endTransmission(false) != 0) { // repeated start
return 0xFFFF;
}
if (Wire.requestFrom((int)MLX90614_ADDR, 3) != 3) {
return 0xFFFF;
}
uint8_t low = Wire.read();
uint8_t high = Wire.read();
(void)Wire.read(); // PEC ignored
return (uint16_t)high << 8 | low;
}

float mlxRawToCelsius(uint16_t raw) {
// Temp(K) = raw * 0.02 -> C = K - 273.15
return (raw * 0.02f) - 273.15f;
}

bool readObjectTempC(float &tObjectC) {
uint16_t rawO = mlxRead16(MLX_OBJECT_REG);
if (rawO == 0xFFFF) return false;
tObjectC = mlxRawToCelsius(rawO);
return true;
}

void setup() {
Wire.begin();
Serial.begin(9600);
while (!Serial) { delay(5); } // for native-USB boards

if (!display.begin(OLED_ADDR, true)) { // addr, reset=true
Serial.println(F("OLED init failed"));
for (;;) {}
}
display.clearDisplay();
display.display();

display.setTextSize(1); // smallest text
display.setTextColor(SH110X_WHITE);
display.setCursor(0, 0);
display.println(F("MLX90614 -> Object Temp"));
display.display();
delay(500);
}

void loop() {
float tObjC;
bool ok = readObjectTempC(tObjC);

display.clearDisplay();
display.setTextSize(1); // keep it small
display.setTextColor(SH110X_WHITE);
display.setCursor(0, 0);

if (ok) {
// OLED
display.println(F("Object Temperature:"));
display.setCursor(0, 16);
display.print(tObjC, 2);
display.println(F(" C"));

// Serial (9600)
Serial.print(F("Object: "));
Serial.print(tObjC, 2);
Serial.println(F(" C"));
} else {
display.println(F("I2C Read Error"));
Serial.println(F("I2C read error from MLX90614"));
}

display.display();
delay(500); // update twice per second
}

Conclusion

This project shows how easily we can build a portable digital thermometer using:

  1. Arduino Nano
  2. MLX90614 IR Temperature Sensor
  3. OLED SH1106 Display

It's compact, reliable, and has real-world applications form personal health monitoring to industrial use

But what truly transforms this project from a prototype into a showroom-ready product is JUSTWAY. Their CNC machining, sheet metal processing , injection molding, urethane casting, and 3D printing services ensure that your idea doesn't just stay on the breadboard - it becomes a professional, market-ready product.