香蕉派BPI-M2Z加装OLED模块SSD1306显示时间

作者: Litthins
上传时间为: 2018-06-25 09:47 AM
2018-06-25
阅读:

本次要和大家分享的经验是香蕉派BPI-M2Z加装OLED模块SSD1306来显示时间,先上图。

我们之前已经实现了香蕉派BPI-M2Z的桌面系统安装,详情请参考我的经验:香蕉派BPI-M2Z刷基于Ubuntu16.04的Armbian桌面系统

这一次我们直接使用UART来快速操作一波,跳过桌面系统。

一、SSD1306OLED模块简介

其实没有特别的地方,SSD1306就是一块OLED液晶显示屏,强调一下我这个屏是I2C接口的。

二、luma-oled模块的安装

luma-oled模块是在python下使用的一个模块,可以直接操作SSD1306 / SSD1322 / SSD1325 / SSD1331 / SSD1351 / SH1106型号的屏。这个项目挂在github上,感兴趣的朋友们可以跳到这个链接:https://github.com/rm-hull/luma.oled

这里我们使用python2.7版本,安装代码如下:

sudo apt-get install python-dev python-pip libfreetype6-dev libjpeg-dev build-essential
sudo -H pip install --upgrade luma.oled
这样luma-oled就安装好了,之后是接线,查了官方的资料,这里我们使用I2C1的这几个引脚,注意接线,不要错了。

CON2-P01	VCC-3V3
CON2-P06	GND
CON2-P27	TWI1-SDA	
CON2-P28	TWI1-SCK

然后我们去Armbian里打开I2C功能,注意用的是i2c1,输入

armbian-config

进到系统设置界面,依次选择:System->Hardware->i2c1。

然后系统会提示重启,重启之后我们输入:

i2cdetect -y 1
查看设备是否被识别到,图中显示3c这个地址,就表示识别到了。

最后就是心心念念的编写代码的时候啦,直接上代码:

import time
from luma.core.interface.serial import i2c
from luma.core.render import canvas
from luma.oled.device import ssd1306
from PIL import ImageFont

serial = i2c(port=1, address=0x3C)
device = ssd1306(serial)

while 1:
    with canvas(device) as draw:
        draw.rectangle(device.bounding_box, outline="white", fill="black")
        draw.text((10, 18), str(time.strftime("%Y-%m-%d",time.localtime())),fill="white")
        draw.text((15, 18), str(time.strftime("%H:%M:%S",time.localtime())),fill="white")
        draw.text((20,40),"---------------",fill="white")
        draw.text((8,50),"jingyan.eeboard.com",fill="white")

运行一下,很好,效果很完美~

今天的分享就到这里啦,喝杯咖啡,我们下次再见哦!

作者:Litthins

日期:2018年6月24日

全部评论 ()
条评论
写评论

创建讨论帖子

登录 后参与评论
系统提示