Arduino Nano 33 IoT - Temperature Sensor - LCD
This guide shows you how to use the Arduino Nano 33 IoT to get the temperature from a DS18B20 sensor and display it on a 16x2 LCD I2C screen.
Hardware Preparation
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
Additionally, some of these links are for products from our own brand, DIYables .
Buy Note: Many DS18B20 sensors available in the market are unreliable. We strongly recommend buying the sensor from the DIYables brand using the link provided above. We tested it, and it worked reliably.
Overview of Temperature Sensor and LCD
If you're new to using the Temperature Sensor, LCD, and Arduino Nano 33 IoT, please check out these tutorials:
These tutorials explain how Temperature Sensor and LCD work, their pinouts, how to connect them to the Arduino Nano 33 IoT, and how to program Arduino Nano 33 IoT to work with the Temperature Sensor and LCD.
Wiring Diagram

This image is created using Fritzing. Click to enlarge image
Arduino Nano 33 IoT Code
※ NOTE THAT:
The LCD's I2C address may change with different makers. In our code, we used the address 0x27, which is given by the DIYables manufacturer.
Detailed Instructions
If you are new to the Arduino Nano 33 IoT, be sure to check out our Getting Started with Arduino Nano 33 IoT tutorial. Then, follow these steps:
- Connect the components to the Arduino Nano 33 IoT board as depicted in the diagram.
- Use a USB cable to connect the Arduino Nano 33 IoT board to your computer.
- Launch the Arduino IDE on your computer.
- Select the Arduino Nano 33 IoT board and choose its corresponding COM port.
- Click the Libraries icon on the left side of the Arduino IDE.
- Type DallasTemperature into the search box, and then find the DallasTemperature library by Miles Burton.
- Click the Install button to add the DallasTemperature library.

- The system will ask you to add a required part. Click the Install All button to add the OneWire library.

- Type LiquidCrystal I2C in the search box, then find the LiquidCrystal_I2C library made by Frank de Brabander.
- Click the Install button to add the LiquidCrystal_I2C library.

- Copy the code above and paste it into the Arduino IDE.
- Click the Upload button in the Arduino IDE to compile the code and send it to your Arduino Nano 33 IoT board.
- Change the sensor's temperature by holding the DS18B20 temperature sensor in your hand or placing it in warm or cold water.
- View the results on the LCD.
If your LCD screen stays blank, check out Troubleshooting on LCD I2C at https://arduinogetstarted.com/tutorials/arduino-lcd-i2c#content_troubleshooting_on_lcd_i2c
Line-by-line Code Explanation
The Arduino Nano 33 IoT code above has a simple explanation for each line. Please read the notes in the code!