Introduction
In this project, we’ll explore how to build a temperature monitoring system using an Arduino Nano, 10k thermistor, and LCD display. The temperature is measured in both Celsius and Fahrenheit and is displayed on the LCD screen. A custom PCB helps to organize the wiring and components for a clean setup.
This project is perfect for beginners in electronics and microcontroller programming.
hardware setup with the LCD displaying temperature values.
Materials Required
To replicate this project, you’ll need the following components:
- Arduino Nano
- 10k Thermistor (NTC)
- 16×2 LCD display
- 10k Resistor
- Custom PCB
- Breadboard and jumper wires (if not using a PCB)
- Power supply (5V)
- Potentiometer for adjusting LCD contrast (if needed)
Circuit Diagram
The connections for the project are straightforward. Below is a table showing how to connect the components:
Arduino Nano Pin | Component | Pin Description |
---|
A0 | Thermistor | Analog Input (Temperature) |
GND | Thermistor | Ground |
5V | Thermistor/Resistor | Power Supply |
D2 – D7 | LCD Display | Data Pins |
GND | LCD | Ground |
5V | LCD | Power Supply |
D9 | LCD | Enable Pin |
D10 | LCD | RS Pin |
The thermistor forms part of a voltage divider circuit with the 10k resistor. The analog voltage is read by the Arduino, which then calculates the temperature.
Code Explanation
Below is the code to run the temperature display on the Arduino Nano:
//////////////////////////////////////
#include <LiquidCrystal.h>
LiquidCrystal lcd(10, 9, 2, 3, 4, 5);
int thermistorPin = A0;
const float BETA = 3950; // Beta coefficient for 10k thermistor
const float T0 = 298.15; // Room temperature in Kelvin (25°C)
const int R0 = 10000; // Resistance of thermistor at 25°C (10k)
void setup() {
lcd.begin(16, 2); // Initialize LCD with 16×2 size
lcd.print(“Temp:”);
}
void loop() {
int analogValue = analogRead(thermistorPin);
float resistance = (1023.0 / analogValue – 1) * R0;
float temperatureC = 1 / (log(resistance / R0) / BETA + 1 / T0) – 273.15;
float temperatureF = temperatureC * 9.0 / 5.0 + 32.0;
lcd.setCursor(0, 1);
lcd.print(temperatureC);
lcd.print(” C “);
lcd.print(temperatureF);
lcd.print(” F”);
delay(1000); // Refresh every second
}
/////////////////////////
PCB Design
The custom PCB shown in the image helps to organize the wiring and provide stable connections between the Arduino, thermistor, and LCD. Using a PCB instead of a breadboard can reduce the chances of loose connections and give your project a more polished, professional look.
Testing and Results
As seen in the image, the LCD displays the temperature in real-time. The current reading shows:
- 33.98°C
- 93.17°F
The readings are updated every second, providing live feedback.
Conclusion
This project demonstrates how easy it is to monitor temperature using an Arduino Nano and a 10k thermistor. By using an LCD display, the system is able to show the temperature in both Celsius and Fahrenheit. This setup can be expanded for use in various temperature monitoring applications, such as weather stations, home automation, and more.