零基础学ESP32:0.96寸OLED显示屏——让ESP32拥有“微型显示器”!
前面我们学了1602 LCD屏幕(蓝底白字,显示字符),今天再来学一种更精致、更现代的显示设备——0.96寸OLED显示屏。
OLED屏幕比LCD屏幕更清晰、视角更广、对比度更高,而且功耗极低。智能手表、手环、微型仪表盘……这些设备用的都是OLED屏幕。
今天这节课,我们就用SSD1306驱动的0.96寸OLED屏幕,让ESP32拥有一块精致的小屏幕!
第一步:找到课程,看看成品效果
打开逗脑IDE,点击顶部 “文档”,在 “课程” → “ESP32 + MicroPython” 分类下,找到OLED显示屏。

打开课件,你会看到本节课的最终效果:OLED屏幕上清晰显示着“Hello!”、“Hello, World 2!”、“Hello, World 3!”三行白色文字。

第二步:认识OLED屏幕
本节课使用的是 0.96寸OLED屏幕,驱动芯片是SSD1306,接口为I2C。
| 参数 | 规格 |
|---|---|
| 尺寸 | 0.96英寸 |
| 分辨率 | 128×64像素 |
| 驱动芯片 | SSD1306 |
| 接口 | I2C(只需2根数据线!) |
| 颜色 | 白色(或蓝白双色) |
| 特点 | 自发光、高对比度、低功耗 |
OLED与1602 LCD的对比:
| 1602 LCD | 0.96寸 OLED | |
|---|---|---|
| 显示内容 | 字符(16×2行) | 像素(128×64) |
| 显示图形 | ❌ 不可以 | ✅ 可以画图 |
| 对比度 | 一般 | 极高 |
| 视角 | 窄 | 宽(几乎无死角) |
| 功耗 | 较高(需要背光) | 极低(自发光) |
| 接线 | 多根线(或I2C模块) | 仅4根线(I2C) |
📸 截图位置③
画面内容: OLED屏幕实物照片,标注出VCC、GND、SCL、SDA四个引脚。
截图作用: 让用户认识硬件长什么样。
第三步:动手接线——I2C接口,只需4根线!
OLED屏幕(I2C接口)只有4个引脚,接线非常简单:
| 屏幕引脚 | 连接ESP32 | 说明 |
|---|---|---|
| VCC | 3.3V | 电源正极 |
| GND | GND | 电源地 |
| SCK | GPIO22 | I2C时钟线 |
| SDA | GPIO21 | I2C数据线 |

第四步:驱动——MicroPython内置支持!
MicroPython自带了framebuf(帧缓存)库,配合ssd1306.py驱动文件,可以很方便地控制OLED屏幕。
将驱动文件ssd1306.py上传到ESP32后,就可以开始写代码了(驱动文件在课件中自行下载):
from machine import Pin, SoftI2C
from time import sleep
import ssd1306
# 创建I2C对象(SCL=GPIO22, SDA=GPIO21)
i2c = SoftI2C(scl=Pin(22), sda=Pin(21))
# 设置屏幕分辨率
oled_width = 128
oled_height = 64
# 创建OLED屏幕对象(I2C地址默认为0x3C)
oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c)
# 在指定位置显示文字(坐标x, y)
oled.text('Hello!', 0, 0) # 第1行
oled.text('Hello, World 2!', 0, 10) # 第2行(间隔10像素)
oled.text('Hello, World 3!', 0, 20) # 第3行
# 刷新屏幕显示
oled.show()
代码逻辑:
| 步骤 | 函数 | 作用 |
|---|---|---|
| 1 | SoftI2C() | 创建I2C通信对象 |
| 2 | SSD1306_I2C() | 创建OLED屏幕对象 |
| 3 | oled.text() | 在指定(x,y)位置写入文字(存入缓存) |
| 4 | oled.show() | 刷新屏幕,显示所有内容 |
💡 坐标说明: 屏幕左上角为
(0, 0),x向右增加(0127),y向下增加(063)
第五步:保存运行,看效果!
在运行代码之前,需要先将ssd1306.py驱动文件上传到ESP32。这个文件是操作OLED屏幕的底层驱动,上传后主代码才能正常调用。

按 Ctrl + S 保存主代码,选择ESP32开发板设备,给文件命名(比如oled.py),点击保存。

点击运行按钮,OLED屏幕立刻亮起,清晰地显示三行文字!

OLED屏幕还能做什么?
| 应用场景 | 用途 |
|---|---|
| 环境监测仪 | 显示温湿度、光照、空气质量 |
| 智能手表/手环 | 显示时间、步数、心率 |
| 桌面小摆件 | 显示天气、日期、提醒 |
| 菜单显示屏 | 配合按键显示菜单选项 |
| 数据可视化 | 绘制波形图、柱状图 |
| 游戏屏幕 | 贪吃蛇、射击小游戏 |
画图、滚动、动画……玩法超多!
OLED屏幕是像素级的显示设备,你可以用它来画图、画线、画矩形!
# 画一个矩形
oled.rect(10, 30, 50, 20, 1)
# 画一条线
oled.line(0, 0, 127, 63, 1)
# 显示取反(反转颜色)
oled.invert(True)
所有绘图操作结束后,别忘了调用oled.show()刷新屏幕!
全程回顾
| 步骤 | 操作 | 效果 |
|---|---|---|
| 找到课程 | 文档→课程→ESP32+MicroPython→OLED显示屏 | 了解OLED屏幕 |
| 上传驱动 | 上传ssd1306.py到ESP32 | 驱动就绪 |
| 认识原理 | I2C协议 + 帧缓存(framebuf) | 理解显示原理 |
| 动手接线 | VCC→3.3V, GND→GND, SCL→GPIO22, SDA→GPIO21 | 硬件就位 |
| 打开代码 | 点击“打开”按钮 | 代码进入编辑器 |
| 保存运行 | Ctrl+S → 选择ESP32 → 运行 | 屏幕显示文字! |
如果你对本节课感兴趣,去官网(www.dounao.cn)下载逗脑IDE,准备好相关配件,跟着课件走一遍。
有任何问题或建议,欢迎在评论区留言告诉我们。
更多推荐



所有评论(0)