香橙派 Zero 2 连接的OLED i2c屏幕 SSD1306

1 篇文章 0 订阅
1 篇文章 0 订阅

要在香橙派Orange Pi Zero 2上连接的OLED SSD1306上显示CPU温度、硬盘内存占比、IP地址和时间日期

先按照官方手册的3.24《3.24. I2C 接口的 0.96 寸 OLED 模块使用方法》先点亮屏幕测试通后进行下面的操作。

接线 

显示器 — 香橙派

SDA — SDA

SCL — SCK

VCC — 5v或者3.3v(看自己买的屏幕所需要的电压)

GND — GND

以下是一个示例代码,假设您已经连接了SSD1306 OLED屏幕。

首先,请确保您的Orange Pi Zero 2上已安装了必要的库,您可以使用以下命令来安装:

sudo apt-get update
sudo apt-get install python-dev python-pip
sudo pip install luma.oled psutil netifaces
 

然后,您可以使用以下Python代码来获取并显示所需的信息: 代码中的serial = i2c(port=1, address=0x3C),port=1,自行查看dev目录下i2c设备号

import time
from luma.core.interface.serial import i2c
from luma.core.render import canvas
from luma.oled.device import ssd1306
import psutil
import netifaces
from datetime import datetime

# 初始化OLED屏幕
serial = i2c(port=1, address=0x3C)
device = ssd1306(serial)

def get_cpu_temperature():
    try:
        with open('/sys/class/thermal/thermal_zone0/temp', 'r') as file:
            temp = float(file.read()) / 1000.0
            return temp
    except FileNotFoundError:
        return None

def get_ip_address(interface='eth0'):
    try:
        addrs = netifaces.ifaddresses(interface)
        ip = addrs[netifaces.AF_INET][0]['addr']
        return ip
    except (KeyError, ValueError):
        return None

while True:
    with canvas(device) as draw:
        cpu_temp = get_cpu_temperature()
        if cpu_temp is not None:
            draw.text((0, 0), f"CPU Temp: {cpu_temp:.1f}°C", fill="white")

        mem_usage = psutil.virtual_memory().percent
        draw.text((0, 16), f"Memory: {mem_usage:.1f}%", fill="white")

        ip_address = get_ip_address()
        if ip_address is not None:
            draw.text((0, 32), f"IP Address: {ip_address}", fill="white")

        current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        draw.text((0, 48), f"Time: {current_time}", fill="white")

    time.sleep(5)  # 更新屏幕数据的时间间隔,这里设置为5秒
 

这段代码将定期更新OLED屏幕上的信息,显示CPU温度、内存使用率、IP地址和当前时间日期。请根据您的需求调整屏幕布局和更新频率。确保您的OLED屏幕已正确连接到香橙派Orange Pi Zero 2,并且I2C总线设置正确。您还可以根据需要更改显示的信息。 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值