A simple ESP32 project that displays real-time clock, temperature, and WiFi signal strength on a 1.3" OLED screen.
A compact ESP32-based mini-dashboard that displays real-time clock, temperature, and WiFi RSSI on a 1.3" SH1106/SSD1306 OLED display.
Designed to be simple, readable, and always on.
- Real-time NTP-synchronized clock
- Temperature monitoring (internal/external)
- WiFi signal strength indicator
- Button-controlled screen switching
- Large, easy-to-read text
- Auto WiFi reconnect
- ESP32 development board
- 1.3" I2C OLED (SH1106 or SSD1306)
- Momentary push button
- 10kΩ resistor (pull-down)
- Optional temperature sensor (DHT11/DHT22)
- Jumper wires
- Arduino IDE
- Libraries:
- WiFi.h
- Wire.h
- NTPClient
- WiFiUdp
- U8g2 / Adafruit SSD1306
- Adafruit GFX
- Temperature sensor library (optional)
| OLED Pin | ESP32 Pin |
|---|---|
| VCC | 3.3V |
| GND | GND |
| SDA | GPIO 21 |
| SCL | GPIO 22 |
| Button Part | ESP32 Pin / Connection |
|---|---|
| One leg | GPIO 23 |
| Other leg | 3.3V |
| 10kΩ resistor | GPIO 23 → GND (pull-down) |
Explanation:
The 10kΩ resistor pulls GPIO 23 LOW by default.
Pressing the button connects GPIO 23 to 3.3V → reads HIGH → screen changes.
| DHT Pin | ESP32 Pin |
|---|---|
| VCC | 3.3V |
| GND | GND |
| DATA | GPIO 4 |
- Install ESP32 board support in Arduino IDE
- Install required libraries
- Open the
.inofile - Set WiFi SSID and password
- Select ESP32 Dev Module
- Upload
- ESP32 connects to WiFi on boot
- Button on GPIO 23 switches between screens:
- Clock
- Temperature
- WiFi signal strength
- Display updates automatically
This project is open-source under the MIT License.
Amiel Josh Basug
