Tutorial: How to use 0.96 OLED - a small and cute display
Table of Contents
SPECIFICATIONS
Description: 0.96 inch monochrome OLED display
Resolution: 128x64 pixels
Dimension: WxHxT 27.3 mm x 27.8 mm x 4.3 mm
Protocol: I2C
Operating Voltage: 3V to 5V
Common variations of this OLED module
- Different monochrome color: white, blue, yellow
- Different resolution: 128x64 and 128x32 pixels
- Different communication protocol: I2C and SPI
- Different driver IC: SSD1306 and SSH1106
- Some has additional reset pin.
CIRCUIT DIAGRAM

VIDEO DEMONSTRATION
CALL TO ACTION
If you have any question regarding this tutorial, please do not hesitate to write it in the comment box below and I will be happy to answer it.
If you like this video, please kindly consider supporting me by Subscribing to TechToTinker Youtube channel. Click this to SUBSCRIBE.
Thank you and have a good day.
SOURCE CODE
// Load the libraries for the DHT sensor
#include "Wire.h"
#include "DHT.h"
#include "Adafruit_Sensor.h"
// Load the libraries for the OLED display
#include "Adafruit_GFX.h"
#include "Adafruit_SSD1306.h"
// OLED display size in pixels
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
// DHT11 data pin assignment
#define DHTPIN A0
// Define the type of sensor to be use
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Create the "oled" object
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
// Create the "dht" object
DHT dht(DHTPIN, DHTTYPE);
// Declare global variables here
float temperature;
float humidity;
void setup() {
// Initialized the Serial
Serial.begin(115200);
// Initialized the DHT11
dht.begin();
// Initialized the OLED
if(!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 failed"));
for(;;);
}
oled.clearDisplay();
oled.setTextColor(WHITE);
}
void loop() {
// Get the sensor readings
getSensorValue();
// and display it to the oled
updateDisplay();
// Delay for some time
delay(3000);
}
void getSensorValue() {
// Get the temperature and humidity sensor readings
temperature = dht.readTemperature();
humidity = dht.readHumidity();
if (isnan(humidity) || isnan(temperature)) {
Serial.println("DHT sensor failed");
}
}
void updateDisplay() {
// Clear the display
oled.clearDisplay();
// Display the current temperature
oled.setTextSize(1);
oled.setCursor(0,0);
oled.print("Temperature: ");
oled.setTextSize(2);
oled.setCursor(0,10);
oled.print(temperature);
oled.print(" ");
oled.setTextSize(1);
// Enable the Code Page 437
// https://en.wikipedia.org/wiki/Code_page_437
oled.cp437(true);
// Then print the chosen characters
// which in this case is the degrees symbol
// https://www.ascii-codes.com/
oled.write(248);
oled.setTextSize(2);
oled.print("C");
// Display the current humidity
oled.setTextSize(1);
oled.setCursor(0, 35);
oled.print("Humidity: ");
oled.setTextSize(2);
oled.setCursor(0, 45);
oled.print(humidity);
oled.print(" %");
// Update and show the display
oled.display();
}
CREDITS AND REFERENCES
×