Skip to content

适用于OrangePi4LTS等Linux开发板的设备信息显示小屏扩展板和代码

Notifications You must be signed in to change notification settings

HelloTheAsia/PantherX2_SSD1315

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

实时设备信息显示(以OrangePi 4 LTS为例)

简介

把stm32上的SSD1306驱动移植到了OPi4上,然后百度还有学习着写了一些获取设备信息的代码

能显示的信息包括:

网络是否链接(图标)、IP地址CPU使用率(CPU)、已用内存和使用率(Mem)CPU温度(Temp)磁盘剩余容量(Disk)上下行网速(Up/Down)

如何使用(以香橙派zero3为例)

0)硬件准备

​ 1.一块Linux开发板,安装了香橙派的wiringOP或者树莓派的wiringPi

​ 2.一个使用四线I2C通信的SSD1306驱动芯片的128*64像素OLED小屏幕

​ 3.杜邦线若干,或使用本仓库提供的小转接板(在Hardware目录下,是一个立创EDA工程)

1)检查一下I2C外设的位置

user@orangepizero3:~$ gpio readall
 +------+-----+----------+------+---+   H616   +---+------+----------+-----+------+
 | GPIO | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | GPIO |
 +------+-----+----------+------+---+----++----+---+------+----------+-----+------+
 |      |     |     3.3V |      |   |  1 || 2  |   |      | 5V       |     |      |
 |  229 |   0 |    SDA.3 | ALT5 | 0 |  3 || 4  |   |      | 5V       |     |      |
 |  228 |   1 |    SCL.3 | ALT5 | 0 |  5 || 6  |   |      | GND      |     |      |
 |   73 |   2 |      PC9 |  OFF | 0 |  7 || 8  | 0 | OFF  | TXD.5    | 3   | 226  |
 |      |     |      GND |      |   |  9 || 10 | 0 | OFF  | RXD.5    | 4   | 227  |
 |   70 |   5 |      PC6 | ALT5 | 0 | 11 || 12 | 0 | OFF  | PC11     | 6   | 75   |
 |   69 |   7 |      PC5 |  OUT | 1 | 13 || 14 |   |      | GND      |     |      |
 |   72 |   8 |      PC8 |  OUT | 1 | 15 || 16 | 0 | OFF  | PC15     | 9   | 79   |
 |      |     |     3.3V |      |   | 17 || 18 | 0 | OFF  | PC14     | 10  | 78   |
 |  231 |  11 |   MOSI.1 | ALT4 | 0 | 19 || 20 |   |      | GND      |     |      |
 |  232 |  12 |   MISO.1 | ALT4 | 0 | 21 || 22 | 1 | OUT  | PC7      | 13  | 71   |
 |  230 |  14 |   SCLK.1 | ALT4 | 0 | 23 || 24 | 0 | ALT4 | CE.1     | 15  | 233  |
 |      |     |      GND |      |   | 25 || 26 | 1 | OUT  | PC10     | 16  | 74   |
 |   65 |  17 |      PC1 |  OFF | 0 | 27 || 28 |   |      |          |     |      |
 |  272 |  18 |     PI16 | ALT2 | 0 | 29 || 30 |   |      |          |     |      |
 |  262 |  19 |      PI6 |  OFF | 0 | 31 || 32 |   |      |          |     |      |
 |  234 |  20 |     PH10 | ALT3 | 0 | 33 || 34 |   |      |          |     |      |
 +------+-----+----------+------+---+----++----+---+------+----------+-----+------+
 | GPIO | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | GPIO |
 +------+-----+----------+------+---+   H616   +---+------+----------+-----+------+

2)将四线I2C的OLED小屏幕连接到某个I2C外设上,例如香橙派Zero3的I2C.3

OLED 香橙派

VCC - 3.3V

GND - GND

SDA - SDA.3

SCL - SCL.3

3)检查设备是否打开 I2C.3

user@orangepizero3:~$ ls /dev/i2c*
/dev/i2c-3  /dev/i2c-4  /dev/i2c-5

如果有/dev/i2c-3,说明已经开启

4)检查屏幕是否正常连接

安装i2c-tools,如果已安装可以跳过

sudo apt-get update
sudo apt-get install -y i2c-tools

屏幕连接的是i2c-3,所以检查i2c-3下面是否有设备

user@orangepizero3:~$ sudo i2cdetect -y 3
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

出现 3c 说明连接正常

5)克隆本仓库

git clone https://github.com/Temperature6/OPi4_RTDevInfo.git

6)进入文件夹

cd OPi4_RTDevInfo/

7)编辑i2c配置

一般来说,只需要更改i2c配置即可,其他由用户自行决定

vim Software/inc/UserCfg.h

文件内容如下

/*无线网卡文件名*/
#define WLAN_IF         "wlan0"
/*有线网卡文件名*/
#define ETH_IF          "eth0"
/*i2c设备文件名*/
#define LINUX_IIC_FILE  "/dev/i2c-3"
/*刷新时间(s)*/
#define REFRESH_TIME    1

/*是否启用运行时间控制: 若启用,屏幕只会在固定时间点亮*/
#define ENABLE_RUNNING_PERIOD   0

#if ENABLE_RUNNING_PERIOD
#define BEG_H           7   //开始运行时
#define BEG_M           00  //开始运行分
#define END_H           23  //结束运行时
#define END_M           00  //结束运行分
#endif //ENABLE_RUNNING_PERIOD

#define WIRELESS    "/sys/class/net/"WLAN_IF"/operstate"
#define ETHERNET    "/sys/class/net/"ETH_IF"/operstate"

#define LINUX_IIC_FILE  "/dev/i2c-3"

改为需要的文件地址,由于本次连接的正好也是i2c3,不需要更改

如果需要更改其他值,更改完成后退出编辑器即可

8)构建

cd Software/
make

如果没有报错,此时ls一下就可以看到编译出来的文件

user@orangepizero3:~/OPi4_RTDevInfo/Software$ ls
inc  Makefile  obj  RTDevInfo  src

RTDevInfo就是可执行文件,可以运行测试,程序设计硬件操作,需要使用sudo权限

sudo ./RTDevInfo

没用问题的话,屏幕会成功点亮,程序默认有个开机画面,如果不需要,可以在main.c中删去

结束

我也是个小白,部分代码参考网上的文章,侵删。

感谢阅读

About

适用于OrangePi4LTS等Linux开发板的设备信息显示小屏扩展板和代码

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 98.9%
  • Makefile 1.1%