DS18B20 LCD Thermometer

This LCD room thermometer shows the current & maximum temperature in degrees C and F.

The DS18B20 sensor should be accurate to within +/- 0.5 degrees Centigrade.

It displays the temperature using a 16 X 2 LCD module and a PIC18F14K22 microcontroller.

The maximum temperature is shown on the second line. (this can be reset by pressing the button).

Schematic Diagram

It needs a 5 Volt stabilised supply. The display is a 16×2 LCD Display Module type HD44780 (with or without backlight)

RV1 adjusts the display contrast. SW1 is a tactile pushbutton switch to reset the maximum temperature.

The components can either be assembled on stripboard or a single-sided PCB.

The tactile pushbutton is a 6x6mm type with a 9.5mm long button mounted on the back of the PCB.

Two wire links are needed as shown above.

The PDF file can be used to make a PCB if printed on a laser printer at 100% scale using the toner-transfer method.

LCD Thermometer PCB


The software was written in ASM , the HEX file to program it with is available below.

LCD Thermometer HEX file

You will need a Microchip “PICkit” or similar tool to program the chip.

3D printed case

The case comprises front and back panels in black PLA which slot into two silver/grey sides that clip together.

Case Top
Case base
Case Front

The case was created in OpenSCAD by modifying the “Ultimate Box Maker by Heartman” available from thingiverse.

The case dimensions are 90mm wide x 60mm High x 30mm deep. There is a front panel cut-out for the display 70 x 27 mm which fits my older type module.

Some newer display modules may need less than a 27mm high cutout. This could be changed by editing the OpenSCAD file.

The display and pcb are fastened to the front panel using black plastic M2 screws and 12mm M2 hex spacer nuts.

You may need some 1 or 2mm thick spacer washers between the front panel and display – these can be 3dprinted from stl files available from thingiverse.

LCD Thermometer case

Similar Posts