树莓派默认是不带显示屏的,如果想要查看系统的一些信息,需要使用电脑登录到树莓派,或者通过 HDMI 连接外接显示器查看。这样做总是有点麻烦,我们可以通过外接一个 OLED 屏来显示一些关键参数或者图片。本文将详细介绍操作方法。

OLED 模组介绍

OLED 屏主要有两种:128×32 和 128×64 ,主要颜色是白、黄、蓝。OLED 屏的特点是功耗低,价格便宜,使用 I2C 接口与主机连接。本文所使用的是 128×64 尺寸的屏幕,外形如下:

它的接口很简单,只有 4 个 Pin 脚:VCC,GND,SDA,SCL,所以它与树莓派的连接也很简单,如下图所示(本文使用树莓派 3B):

开启 I2C 接口

树莓派默认是不开启 I2C 接口的,所以我们需要手动打开它。执行以下命令:

$ sudo apt-get install -y python-smbus
$ sudo apt-get install -y i2c-tools
$ sudo raspi-config

然后按下动图方式开启 I2C 功能。

安装 OLED 屏的 Python 库

为了在 OLED 屏上显示文字或图像,我们需要使用到 Adafruit 的 Python 库,这个库支持所有的 SSD1306 相关的显示屏,包括 128×32 和 128×64 屏幕。

首先我们需要下载这个库:

$ git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git

然后进入到目录,再进行安装:

$ cd Adafruit_Python_SSD1306
$ sudo python3 setup.py install    # 如果使用 Python2 ,则使用对应命令

找到 OLED 模组地址

安装好 Python 库之后,我们可以使用 i2cdetect 命令来找到 OLED 屏的物理地址:

$ i2cdetect -y 1

我们会得到类似这样的输出:

不同的模组可能得到不同的输出。这里我们的 I2C 地址就是 0x3C。如果你使用的是初代树莓派(256MB的树莓派1代B),那么需要使用下面的命令:

$ i2cdetect -y 0

使用 OLED 屏显示图像及文字

在刚刚下载的那个库文件里,有一个 examples 目录,在那个目录里,我们可以看到以下内容:

  • animate.py
  • buttons.py
  • image.py
  • shapes.py
  • stats.py

这几个文件我们可以直接运行,比如:

$ python3 shapes.py

这几个文件运行的结果如下图示:

屏幕尺寸适配

以上的几个示例文件里,它们都默认你的屏幕尺寸是 128×32 ,但它们依然可以跑在 128×64 的屏幕上。如果我们想要看得更舒服一点,我们可以将尺寸进行适配。

在每个 Python 文件里,都有下面这么一段代码:

这里也写得很清楚了,上下两行代码分别代表 128×32 和 128×64 的屏幕,使用何种尺寸的屏幕,只需将对应的代码前面的 # 去掉即可。

------

推荐阅读:

到什么程度才叫精通 Linux?​www.zhihu.com

如何更深入地学习 Linux?​www.zhihu.com

学习Linux有没有比《鸟哥的Linux私房菜》更好的书?​www.zhihu.com

程序默认在副屏显示_树莓派使用 OLED 屏显示图片及文字相关推荐

  1. h5 video 手机上无法显示_手机镜象投屏到电视上全屏显示

    手机镜象投屏到电视上全屏显示 随着手机投屏被越来越多的人知道,手机镜像投屏到大屏幕不是全屏的问题成为许多人心中的痛.AWIND奇机在2019年就做出了竖屏投屏器可以轻松让手机镜像投屏到大屏幕上为全屏显 ...

  2. 华为手机如何调时间显示_华为手机不亮屏也能显示时间日期?10秒就能设置,原来这么简单...

    不知道各位在想要查看时间的时候,是不是从口袋中拿出手机,然后按下锁屏键亮屏查看时间之后再按锁屏键熄屏的呢?但是还有一种更加简单的方法不需要亮屏就可以查看时间日期. 这个功能就是华为手机的"灭 ...

  3. 苹果天气不显示_苹果手机自行换屏后手机不显示?这点不注意,你的iPhone会报废...

    收到客户一台iPhone 6sp,客户描述自己换屏幕后忘记断电导致烧了,现在手机不显示.在实际维修中,自行更换屏幕.换电池导致主板受伤的不在少数,再次提醒大家,自行操作时一定小心!如果动手能力不强的话 ...

  4. android大屏适配_华为发布折叠屏官方适配方案

    2 月底,在西班牙巴塞罗那召开的 MWC2019 华为终端全球发布会上,华为正式发布了 5G 折叠屏手机 HUAWEI Mate X,同时,华为也宣布这款手机将在今年年中上市,消息一出,瞬间刷爆朋友圈 ...

  5. elementui table某一列是否显示_汇编语言--键盘扫描及显示实验(含代码解释)

    实验题目 将8255单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示.键盘采用4X4键盘,每个数码管显示值可为0-F共16个数. 实验具体内容如下:将键盘进行编号, ...

  6. 苹果手机投屏软件_苹果手机怎样投屏到电脑上操作,用什么软件?

    金舟苹果手机投屏软件是一款专业的苹果手机投屏软件,支持苹果手机投屏至Windows系统,支持投屏录制.全屏投屏.截屏.白板等功能,全方位解决您的问题! 功能介绍 1.旋转 无需手机操作,软件界面也是可 ...

  7. 戴尔电脑开机黑屏怎么办_笔记本电脑开机黑屏怎么办

    笔记本电脑开机黑屏是什么原因,电脑黑屏问题如何修复解决 众所周知笔记本电脑的散热性能不是特别好,长时间使用笔记本电脑就可能会出现笔记本发烫的状况,严重的有可能造成笔记本电脑出现问题.人们在使用笔记本电 ...

  8. excel行列突出显示_在Excel中突出显示即将到来的日期

    excel行列突出显示 Do you use Excel to keep track of upcoming payments, or other dates? To make that list m ...

  9. 手机投屏不是全屏怎么办_怎么解决投屏到大屏幕不是全屏问题

    怎么解决投屏到大屏幕不是全屏问题 关于用户的反馈,笔记本.PC电脑.手机.平板等设备在通过无线投屏器投影在投影仪上,会出现不能全屏问题.暂时还没有接到一体机用户的反馈. 为什么会出现投屏到大屏幕不全屏 ...

最新文章

  1. 掌握这 7 个编程设计原则,想做菜鸟都难
  2. 在React 组件中使用Echarts
  3. Linux中的防火墙----iptables
  4. csdn无人驾驶汽车_无人驾驶汽车100年历史
  5. AngularJS(1)——入门学习
  6. Servlet规范定义的Servlet 生命周期
  7. python远程执行shell 防止注入脚本_解决 window 上python远程执行shell paramiko 下令 Permission denied...
  8. BugkuCTF-MISC题细心的大象
  9. 使用 Composer 为 ThinkPHP(3.2.3)框架添加和管理组件
  10. 服务器 发布 WebService 错误
  11. java基础-02数据类型
  12. Codeforces Round #246 (Div. 2) D. Prefixes and Suffixe 后缀数组
  13. 微软紧急更新 Windows 8.1 和 Server 2012 R2,修复两个严重漏洞
  14. GLIBCXX_3.4.21 not found(转载)
  15. 如果有人问你 Dubbo 中注册中心工作原理,就把这篇文章给他
  16. Java酒店管理系统项目
  17. 过程FMEA:步骤二 结构分析
  18. SM2国密算法证书解析
  19. Referrer还是Referer? 一个迷人的错误
  20. OpenAVNU 带宽预留协议SRP代码分析

热门文章

  1. 第六章 ---- 面向对象(三)
  2. python文件路径改了需要重新配置环境吗_Django 设置多环境配置文件载入问题
  3. 5.15 vs2019 静态编译_xmake v2.3.8 发布, 新增 Intel C++/Fortran 编译器支持
  4. Tomcat - Springboot启动的时候初始化的线程池默认配置
  5. Thread.sleep()和TimeUnit.SECONDS.sleep()的区别与联系
  6. collection.stream()以及collect()方法
  7. ORACLE(Linux版本)实时同步数据到MYSQL(Linux版本)解决方案:OGG
  8. 大数据从入门到就业的四个必备常识
  9. python开发面向对象基础:封装
  10. RabbitMQ consumer的一些坑