树莓派使用 OLED 屏显示图片及文字
树莓派默认是不带显示屏的,如果想要查看系统的一些信息,需要使用电脑登录到树莓派,或者通过 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

有收获?希望老铁们来个三连击,给更多的人看到这篇文章
树莓派使用 OLED 屏显示图片及文字的更多相关文章
- iOS开发小技巧--即时通讯项目:使用富文本在UILabel中显示图片和文字;使用富文本占位显示图片
Label借助富文本显示图片 1.即时通讯项目中语音消息UI的实现,样式如图: 借助富文本在UILabel中显示图片和文字 // 1.创建一个可变的富文本 NSMutableAttributedStr ...
- UIButton上同时显示图片和文字的方法
copy from CPLASF_lixj http://blog.csdn.net/qijianli/article/details/8152726 项目中经常会遇到Button上同时显示图片和文 ...
- 【小梅哥FPGA进阶教程】第十四章 TFT屏显示图片
十四.TFT屏显示图片 本文由杭电网友曾凯峰贡献,特此感谢 学习了小梅哥的TFT显示屏驱动设计后,想着在此基础上通过TFT屏显示一张图片,有了这个想法就开始动工了.首先想到是利用FPGA内部ROM存储 ...
- UILabel图文混排显示图片和文字
//传入文字 自动图片放在左边文字紧接着后排排布 -(void)setAttrDetailLabelWithTitle:(NSString *)title { NSMutableAttributedS ...
- PMS5003ST+Arduino Nano OLED屏显示
整合OLED显示和PMS5003报数 #include <Arduino.h> #include <pms.h> /////////////////////////////// ...
- Xcode 设置图片全屏显示
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...
- c# ToolStrip控件图片和文字显示--原创
如上图达到这样的效果 首先我们给属性Image和Text分别赋予需要显示的图片和文字 然后设置DisplyStyle属性为ImageAndText,意为同时显示图片和文字 各种设置ImageAlign ...
- 显示图片的(自定义)吐司Toast
一般我们提示的时候都是直接提示文字的,其实Toast也可以显示图片 常用方法 Toast.makeText(context,text,duration)这返回一个Toast对象 toast.setDu ...
- 用STM32玩OLED(显示文字、图片、动图gif等)
目录 用STM32玩OLED(显示文字.图片.动图gif等) 1. 显示字符串 2. 显示中文 3. 显示图片 4. 显示动图 5. 总结测试 用STM32玩OLED(显示文字.图片.动图gif等) ...
随机推荐
- search(14)- elastic4s-统计范围:global, filter,post-filter bucket
聚合一般作用在query范围内.不带query的aggregation请求实际上是在match_all{}查询范围内进行统计的: GET /cartxns/_search { "aggs&q ...
- axios请求拦截器(修改Data上的参数 ==>把data上的参数转为FormData)
let instance = axios.create({ baseURL: 'http://msmtest.ishare-go.com', //请求基地址 // timeout: 3000,//请求 ...
- 14.1 Go数据结构
14.1 Go数据结构 每一个程序都在学习十八般武艺,学习语言.数据库.HTTP等技能. 而程序中的九阳神功就是数据结构与算,掌握了数据结构与算法,你的内功修炼就会有质的飞跃. 无论从事业务开发,测评 ...
- 09 基于模块wsgiref版web框架
09 基于模块wsgiref版web框架 模块引入 真实开发中的python web程序,一般会分为两部分: 服务器程序:负责对socket服务器进行封装,并在请求到来时,对请求的各种数据 ...
- iozone测试报错:Error writing block 12634, fd= 3 write: No space left on device
问题:使用iozone测试GFS的读写性能的时候,一直报错Error writing block 12634, fd= 3 write: No space left on device,百思不得其解: ...
- C语言基础知识(四)——位操作
一.进制基础知识 1.通常,1字节(Byte)包含8位(bit).C语言用字节表示储存系统字符集所需的大小. 2.对于一个1字节8位的二进制数,最右边(第0位)是最低阶位,最左边(第1位)是最高阶位, ...
- 【MySQL】索引的本质(B+Tree)解析
索引是帮助MySQL高效获取数据的排好序的数据结构. 索引数据结构 二叉树 红黑树 Hash表 B-Tree MySQL所使用为B+Tree (B-Tree变种) 非叶子节点不存储data,只存储索引 ...
- SQL Server存储过程模拟HTTP请求POST和GET协议
/****** Object: StoredProcedure [dbo].[sp_http_get] Script Date: 05/23/2020 15:47:09 ******/ SET ANS ...
- WordPress美化百度分享默认图标
因代码中使用了Font Awesome字体图标,如果你的主题没有加载字体图标,可以到WP后台--插件--安装插件页面搜索:Font Awesome 4 Menus 安装并启用,才能显示替换后的图标. ...
- vue 实例化使用模板
var vm = new Vue({ el:"", data:{ }, methods:{ } })