Day 01

Begineer

Day 18 :- OLED System Monitor

Aug 25, 2026

Completed

Wiring Schematic

Arduino Code

ARDUINO / C++

Day 18 Core Training Documentation

Project Overview

The OLED System Monitor project teaches you how to use advanced display technology to show real-time system information: displaying live data on an OLED screen.

In this project, an OLED 128×64 display is connected to Arduino to show dynamically updated information including temperature readings, sensor data, system status, and custom graphics.

When the Arduino powers up, the OLED display illuminates with crystal-clear text and images. As sensor values change, the display updates in real-time, showing live information about system conditions. Multiple data points can be displayed simultaneously in an organized layout.

This project teaches OLED Display Operation, I2C Communication, Real-Time Data Visualization, Graphics Rendering, and Professional Information Systems.

By finishing this project, you’ll understand how OLED displays work in smartwatches, fitness trackers, advanced appliances, and professional monitoring equipment.

Components Required

To build this circuit, collect these specific items from your kit:

Arduino Uno × 1, Breadboard × 1, OLED Display 128×64 (I2C) × 1, DHT11 Sensor × 1, 10kΩ Resistor × 1, Jumper Wires × 6, USB Cable × 1

Circuit Connections

Step 1: Connect Ground Rail

Connect the Arduino GND pin to the negative rail of the breadboard. This creates a shared ground connection for all components.

Step 2: Connect OLED VCC

Connect the VCC (power) pin of the OLED display to Arduino 5V. This provides power to the OLED screen module.

Step 3: Connect OLED GND

Connect the GND (ground) pin of the OLED display to the breadboard GND rail. This completes the power circuit for the display.

Step 4: Connect OLED SDA Pin

Connect the SDA (data) pin of the OLED display to Arduino Pin A4. This wire carries data to the OLED using I2C communication protocol.

Step 5: Connect OLED SCL Pin

Connect the SCL (clock) pin of the OLED display to Arduino Pin A5. This wire provides the timing signal for I2C communication.

Step 6: Connect DHT11 Sensor VCC

Connect the VCC pin of the DHT11 temperature sensor to Arduino 5V. This provides power to the temperature measurement device.

Step 7: Connect DHT11 Sensor GND

Connect the GND pin of the DHT11 sensor to the breadboard GND rail. This completes the power circuit for the sensor.

Step 8: Connect DHT11 Data Pin

Connect the DATA pin of the DHT11 to Arduino Pin 7. This pin receives temperature and humidity measurements from the sensor.

Step 9: Connect Pull-Up Resistor

Connect one end of the 10kΩ pull-up resistor to Arduino Pin 7 and the other end to Arduino 5V. This stabilizes the DHT11 data signal.

Step 10: Verify All Connections

Double-check OLED I2C connections and DHT11 sensor connections before uploading your code. Ensure all power and ground connections are secure.

Important: The OLED display uses I2C communication just like the LCD from Day 13. The DHT11 sensor requires a pull-up resistor on its data line for reliable operation.

How the Arduino Code Works

Initialize Displays and Sensors

In setup(), Arduino initializes the OLED display library and sets the I2C address. The DHT11 sensor library is also initialized to begin reading temperature and humidity data.

Configure OLED Display

The display size is set to 128 pixels wide by 64 pixels high. The text size and font are configured for readable information display. The display orientation and rotation options are set if needed.

Read Sensor Values

Inside loop(), Arduino reads temperature and humidity from the DHT11 sensor using dht.readTemperature() and dht.readHumidity() functions. These values are stored in variables for display.

Format Display Information

The OLED library provides functions to draw text, numbers, rectangles, and lines. Information is formatted with labels and values positioned at specific coordinates on the screen creating an organized display layout.
 

Update Display Continuously

The clearDisplay() function clears the screen, new information is drawn, and display() pushes the changes to the OLED. This repeats every few seconds, updating the displayed information in real-time.

Expected Output

After uploading your code, here is what happens.

The OLED screen illuminates showing a welcome message or title. Temperature and humidity values appear below the title. The display shows formatted text with labels and numeric values. As temperature or humidity changes, the values update on the screen every 2 to 3 seconds. Additional information like time or status can be displayed in different sections of the OLED screen. The display remains clear and readable with proper contrast and brightness.

Operational Troubleshooting

OLED Display Shows Nothing :- Verify that the I2C address in your code matches the display. Check that SDA connects to Pin A4 and SCL connects to Pin A5. Confirm VCC and GND have proper power connections.

Text Appears Garbled :- Check that the display initialization size matches your OLED (typically 128×64). Verify the font and text size settings are appropriate. Ensure the OLED library is correctly installed.

Temperature Readings Do Not Display :- Verify the DHT11 connects to Pin 7 and check that the pull-up resistor is between Pin 7 and 5V. Confirm the DHT11 library is installed and the sensor is receiving proper power.

Sensor Values Do Not Update :- Check the delay between sensor readings and ensure it is at least 2 seconds apart. Verify the display refresh rate is appropriate for your data update frequency.

Display Contrast Too Dark or Too Bright :- Use the setContrast() function to adjust display brightness. Values typically range from 0 to 255 for brightness adjustment.

What You Learned

By finishing this project, you now know :-

How OLED displays work and communicate via I2C, how to integrate multiple sensors and displays in one system, how to format and organize information for clear display, how to create real-time data visualization, and how to build professional monitoring and information systems.

Next Lesson

Congratulations on completing Stage 3: Displays and Control! You have mastered six essential projects covering LCD displays, 7-segment displays, Servo Motor control, joystick input, interactive games, and advanced OLED systems. These skills form the foundation for building interactive user interfaces, robotic systems, and smart devices. You are now ready to progress to advanced projects involving wireless communication, data logging, and complete autonomous systems.