Skip to the content
PCBKitNew board
2 layers101.6 × 53.3 mmPCB Arduino shield for temperature sensor project, the printed circuit board in 3D

PCB Arduino shield for temperature sensor project

Ryeece/Temperature-Warning-System1

Embedded temperature monitoring and warning system using an Arduino Mega2560, DHT11, 16x2 LCD, and custom KiCad shield PCB

Size
101.6 × 53.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
17
Nets
52
Pads
82
Tracks, vias
45, 0
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
19 Aug 2026
Updated
27 Oct 2026

Overview

PCB Arduino shield for temperature sensor project is an open-source printed circuit board by Ryeece, from the Ryeece/Temperature-Warning-System repository on GitHub. It is a 2-layer board of 101.6 × 53.3 mm with 17 parts on 52 nets, routed with 45 tracks and 0 vias.

Its parts include 8 connectors, 1 resistor and 1 diode. It belongs with the sensors and measurement and lEDs and displays boards of this library.

README

README.md

Temperature-Warning-System

Embedded temperature monitoring and warning system using an Arduino Mega 2560, DHT11, 16×2 LCD, and custom KiCad shield PCB

Overview

Using the Arduino Mega I measured the temperature with a DHT11 sensor and had the live temperature reading displayed on the 16×2 LCD. When the set temperature threshold was exceeded a warning LED turns on with a warning message on the 16×2 LCD. For sensor faults the warning LED turns on with a check sensor message on the 16×2 LCD. Finally a custom Mega shield PCB was designed in KiCad.

Features

  • Live temperature measurement
  • Temperature threshold warning
  • Sensor fault detection
  • LCD status messages
  • Standalone battery operation
  • Custom PCB shield

Hardware Used

  • ELEGOO Arduino Mega 2560
  • DHT11 temperature and humidity module
  • 1602A V2.0 16×2 LCD
  • 10 kΩ potentiometer
  • LED
  • 220 Ω resistor
  • Breadboard
  • Jumper wires
  • Battery power supply
  • Custom Arduino Mega shield PCB designed in KiCad to replace the breadboard and jumper wires

System Operation

First the DHT11 takes the temperature reading, then it sends the data to the Mega and the Mega processes the reading using the uploaded code and displays the temperature on the LCD. If the temperature threshold is exceeded the warning LED turns on and a warning message is displayed on the LCD. Finally the function isnan() is used to detect an invalid sensor reading which activates the warning LED and error message on the LCD.

Breadboard Prototype

The system was first built and tested on a breadboard before being transferred into the custom Arduino Mega shield PCB design.

The temperature threshold was temporarily set to 29.8°C so the high-temperature warning could be tested at room temperature.

  • Normal operation — LCD shows live temperature and Normal temp, LED off:
Normal operation
  • High-temperature warning — LCD shows TEMP TOO HIGH, warning LED on:
High-temperature warning
  • Sensor fault — LCD shows the sensor error message, warning LED on:
Sensor fault

Testing and Fault Handling

The system was initially tested on a breadboard to verify the temperature monitoring, warning LED, LCD messages and sensor fault detection before transferring the circuit to the custom PCB.

The manufactured PCB was then assembled and connected to the Arduino Mega 2560 to verify that the completed hardware operated correctly.

TestExpected ResultResult
Temperature below thresholdLED off and normal-temperature message displayed on the LCDPass
Temperature above thresholdLED on and high-temperature warning message displayed on the LCDPass
DHT11 signal disconnectedWarning LED on and sensor error message displayed on the LCDPass
Battery-powered operationSystem operates without a laptop connectionPass
Assembled PCB functionalityAll components operate correctly through the custom PCBPass

Sensor Fault Detection

To test the isnan() fault handling, I deliberately disconnected the DHT11 signal. The Arduino detected the invalid sensor reading, activated the warning LED and displayed an error message on the LCD.

Physical PCB Testing

After soldering the components and headers onto the manufactured PCB, the shield was connected to the Arduino Mega 2560.

The system operated successfully during its initial testing, with the LCD displaying live temperature readings and the warning LED responding to the programmed conditions.

The normal-temperature, high-temperature warning and sensor fault states were successfully tested using the assembled PCB.

The completed system was also tested using a standalone 9V battery connected to the Arduino's power input, confirming that it could operate without a computer connection.

No changes to the PCB design were required for the system to function. However, a possible intermittent solder connection was identified as an area for further inspection.

PCB Design

The PCB was designed as an Arduino Mega shield so it could plug directly into the Mega.

  • A 16-pin header was added for the 16×2 LCD and a 3-pin header for the DHT11
  • The LED, 220 Ω resistor and 10 kΩ potentiometer were placed on the shield
  • The breadboard prototype was used to help plan the PCB layout
  • ERC and DRC were used to check the design
  • The final layout was checked in KiCad's 3D Viewer

KiCad schematic:

KiCad schematic

KiCad PCB layout:

KiCad PCB layout

3D view of the PCB Mega shield:

3D view of the PCB Mega shield

The Mega-template header footprints mainly establish the correct physical positions. In place of the female headers, male headers will be soldered underneath the physical PCB to allow connection to the Mega 2560, and female headers will be soldered on top for removable connections for the DHT11 and LCD.

PCB Manufacturing and Assembly

After completing the PCB design in KiCad, I generated the Gerber and drill files required for manufacturing. These files were uploaded to JLCPCB, where I ordered the custom two-layer PCB.

Once the manufactured boards arrived, I assembled the circuit by soldering the components and pin headers onto the PCB using the soldering facilities at university.

The completed PCB was then connected to the Arduino Mega 2560 and powered using a 9V battery through the Arduino's barrel jack.

During initial testing, I encountered a minor connectivity issue, potentially caused by a solder joint. However, the PCB operated successfully without requiring any modifications to the original design.

This was my first experience taking a PCB design through the complete process of manufacturing, physical assembly and functional testing.

1. Manufactured PCB before assembly

abeaa23c-ff28-453b-9b34-27aee167287b

2. Assembled PCB

7457f3ca-184c-4f7e-a55a-f20ad012b804

3. PCB underside and solder joints

24507200-7832-4bf4-92d5-ca6c81b51798

4. Completed and operational system

14abddc6-8759-4831-aed0-3780acbb3313

Problems Encountered and Fixes

ProblemCauseFix
External LED did not lightBoth LED legs were connected to the same breadboard nodeRepositioned the LED so each leg was connected to a different node
LCD displayed dark blocks instead of textD7 was connected incorrectlyCorrected the LCD wiring so D7 connected to the correct LCD pin
Invalid DHT11 readingSensor communication failed when the signal was disconnectedAdded isnan() fault detection, an LCD error message and warning LED activation
KiCad ERC/DRC warningsUnused and duplicated connections in the Arduino Mega templateUsed No Connect flags, PWR_FLAGs and intentional exclusions where appropriate

Final Result

The temperature warning system has been successfully developed, manufactured, assembled and tested.

After completing the circuit design and programming, I designed a custom Arduino Mega shield PCB using KiCad. The PCB was manufactured by JLCPCB, and I soldered all the components myself using the facilities at university.

Following assembly, the system operated successfully without requiring any PCB design modifications. A minor connectivity issue was encountered, potentially caused by a solder joint, but the system was able to function correctly.

The completed system successfully:

  • Measures and displays live temperature readings on a 16×2 LCD.

  • Detects temperatures exceeding the programmed threshold and displays a high-temperature warning.

  • Detects sensor faults and displays an error message.

  • Operates independently using a 9V battery connected to the Arduino Mega.

This project allowed me to develop practical skills in electronic circuit design, microcontroller programming, PCB design, soldering, troubleshooting and hardware testing. It was particularly rewarding to see a PCB I had independently designed operate successfully after manufacturing and assembly.

Project Files

Future Improvements

A temperature-controlled fan could be added, using PWM (Pulse Width Modulation) to automatically adjust the fan speed based on the measured temperature. This would allow the system to actively regulate temperature rather than simply provide a warning.

User-adjustable buttons could be implemented to allow the temperature warning threshold to be changed without modifying and uploading the Arduino code.

The power supply could be improved by replacing the 9V battery with a more efficient rechargeable power source, allowing the system to operate independently for longer periods.

A protective enclosure could also be designed to house the Arduino, custom PCB and other components, making the completed system more compact and suitable for practical use. Eventually, the Arduino Mega can be replaced with a microcontroller mounted directly on the PCB.

Parts

17
QtyValueFootprintReferences
6MountingHole_3.2mmArduino_MountingHole:MountingHole_3.2mmMH1, MH2, MH3, MH4, MH5, MH6
2AnalogConnector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_VerticalJ3, J5
110KPotentiometer_THT:Potentiometer_ACP_CA9-V10_VerticalRV1
1220RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1
1CommunicationConnector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_VerticalJ6
1Conn_01x03_PinConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ8
1Conn_01x16_PinConnector_PinHeader_2.54mm:PinHeader_1x16_P2.54mm_VerticalJ9
1LEDLED_THT:LED_D5.0mmD1
1PWMConnector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_VerticalJ4
1PWMConnector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_VerticalJ2
1PowerConnector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_VerticalJ1

Questions

How big is the PCB Arduino shield for temperature sensor project PCB?

It measures 101.6 × 53.3 mm and has 2 copper layers, 1.6 mm thick.

What parts does the PCB Arduino shield for temperature sensor project use?

17 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the PCB Arduino shield for temperature sensor project KiCad files?

From the Ryeece/Temperature-Warning-System repository on GitHub, at the commit this page was made from: the board is pcb/PCB Arduino shield for temperature sensor project.kicad_pcb and its schematic pcb/PCB Arduino shield for temperature sensor project.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the PCB Arduino shield for temperature sensor project design in my own project?

Its repository states no licence, so its author keeps all rights: ask Ryeece before reusing the design.

Similar boards

  • 2 layers50 × 35 mmServo power, the printed circuit board in 3D

    Servo power

    earthtojake/text-to-cad

    Design physical products with AI

    17 parts26kMIT
  • 2 layers139.7 × 62.2 mmBreakout 60pin EEC IV, the printed circuit board in 3D

    Breakout 60pin EEC IV

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    17 parts1.2k
  • 2 layers29.2 × 55.9 mmDeniseadapter, the printed circuit board in 3D

    Deniseadapter

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    17 parts1kGPL-3.0
  • 2 layers24.5 × 36.5 mmCluster, the printed circuit board in 3D

    Cluster

    JesusFreke/lalboard

    A 3D-printed keyboard inspired by the DataHand

    17 parts993
  • 2 layers56.3 × 55.7 mmStarNecklace, the printed circuit board in 3D

    StarNecklace

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    17 parts915
  • 2 layers25 × 25 mmSmallEncoder, the printed circuit board in 3D

    SmallEncoder

    DDeGonge/OS-ARM

    This arm is not industrial and it will not be fast, but that is not my goal. But it will hopefully be a very nice looking arm fully capable of 6dof motion, cheap enough to keep it accessable but capable enough to…

    17 parts498MIT
  • 2 layers38.9 × 16.1 mmAmoeba spc, the printed circuit board in 3D

    Amoeba spc

    mtl/keyboard-pcbs

    Keyboard PCBs

    17 parts485
  • 2 layers36 × 51 mmABSIS ALE, the printed circuit board in 3D

    ABSIS ALE

    jrsteensen/OpenHornet

    OpenHornet 1:1 F/A-18C Simulator Repository

    17 parts431