• sales

    +86-0755-88291180

Raspberry Pi ------ 4.7 OLED display raspberry pi status User Guide

OLED display raspberry pi status

The Raspberry Pi RGB_Cooling_HAT needs to be properly plugged into the GPIO port of the Raspberry Pi and open the Raspberry Pi system I2C function.

This experimental phenomenon shows that OLED display CPU usage, CPU temperature, running memory usage, disk usage and IP address of the Raspberry Pi

1. File transfer

1.1 Install WinSCP tool on the computer side, connect the Raspberry Pi and transfer the temp_control.zip package to the pi directory of the Raspberry Pi.

Path of WinSCP:[Raspberry Pi RGB_Cooling_HAT]---[Tools]---[winscp556_setup.1416364912.exe]


1.2 Extract file

Open the Raspberry Pi terminal and input command ls to find the RGB_Cooling_HAT.zip file. 

As shown below:


Input command to extract file:

unzip RGB_Cooling_HAT.zip


2. Compiling and running program

2.1 Input command to enter RGB_Cooling_HAT find file.

cd RGB_Cooling_HAT/

ls


2.2 Input command to run program.

python oled.py 


We can see that OLED display CPU usage, CPU temperature, running memory usage, disk usage and IP address of the Raspberry Pi.

3. About code

3.1 Import the time module for delay. Import the os module for access to operating system services. And import the library used by the oled display.

SSD1306_128_32 represents the initialization method of the 128×32 resolution screen.


3.2 To read the CPU usage.

First, open /proc/stat file. This file save the CPU activity information.

All the values of this file are accumulated from the system startup to the current moment.

Enter cat /proc/stat in the terminal to check CPU activity data:


To calculate the CPU usage, we only need to use the top row of data. In this course, I will only explain the meaning of this row of data.

(Jiffies is a global variable in the kernel, used to record the number of beats generated since the system started up. In Linux, a beat represents the minimum time slice of operating system process scheduling.

Different Linux kernels may have different values. 1 jiffies = 10ms)

Parameter

Analysis (unit: jiffies)

user(969)

From the system start up to the current moment, the running time in user mode, which not include the process with a nice value.

nice(0)

From the system start up to the current moment, nice value is CPU time occupied by processes negative.

system(1557)

From the system start up to the current moment, running time in the core state

idle(20390)

From the system start up to the current moment, waiting time other than IO waiting time

iowait(623)

From the system start up to the current moment, io waiting time

irq(0)

From the system start up to the current moment, hard interrupts time

softirq(10)

From the system start up to the current moment, soft interrupts time

stealstolen(0)

The time spent in other operating systems when running in a virtual environment

guest(0)

The Time to run the virtual CPU of the guest operating system under the control of the Linux kernel

The calculation formula of the total CPU time (cumulative value):

Total Time = user+nice+system+idle+iowait+irq+softirq+stealstolen+guest

We need to calculate the current CPU occupancy rate by reading the above parameters.

Since it is accumulated from the system start up to the current moment, the difference between the two parameters collected through a short time (1 second) interval can be calculate the total amount of CPU time total.

Then, calculate the idle time idle in the same way.

Finally, the CPU usage rate=100*(total-idle)/total.

In addition, you can also directly enter the command to view the current CPU usage on the Raspberry Pi terminal.

You can display the CPU usage by entering the following command.

cat <(grep 'cpu ' /proc/stat) <(sleep 1 && grep 'cpu ' /proc/stat) | awk -v RS="" '{print ($13-$2+$15-$4)*100/($13-$2+$15-$4+$16-$5) "%"}'


Code:


Obtain the CPU file information through os.popen, and only read the information in the top row to stat1.

Read the information of stat1 to the date_1 list, and then calculate the total_1 and idle_1 of the first reading.

Then, delay by 1 second(the tested data will be invalid if the time is less than 1 second).

Next, save the second reading data in total_2 and idle_2.

Finally, calculate the value of CPU usageRate.

3.3 Read the running memory occupancy rate, get the result of the specified command through subprocess.check_output, cmd defines the command to get the memory ratio of the specified format;


3.4 Read the IP address, you can display the IP address of the network cable and WiFi network.

Display network cable IP address has higher priority

 

5. Get temperature.


6. Read disk space.


7. Display this message on OLED.


The draw.text() function is to set the content displayed on OLED.

The first parameter is x, which controls the left and right offsets;

the second parameter is y, which controls the upper and lower offsets;

the third parameter is the string, which is what to display.

Finally, you need to run the disp.display() function to refresh the display.


TAG: Core3566004000 ADXL354C Development Board Sipeed Tang Primer 25K GW5A RISCV FPGA Development Board Dock SDRAM GW5A-LV25MG121 Retro Game linux Windows Environment User Guide LuckFox Pico UART ESP32 S3 Development Board 2.1 inch Round Rotary Knob LCD Smart Screen 2.1inch Display 480x480 LVGL for Arduino Raspberry Pi 3 LCD HAT Raspberry Pi 1.54inch LCD Bookworm-Desktop Display and Touch JETSON NANO MINI Fan X1300 X1300-A2 Raspberry Pi 5 HDMI to CSI-2 Shield 1080P@60fps & Audio & Video Also Raspberry Pi PICO Raspberry Pi Spotpear Raspberry Pi 5 PCIe to M.2 NVMe SSD Adapter Board HAT Pi5-PCIe-MPS2242-2230-Board Raspberry Pi Pico RTL8723 WIFI SDIO Expansion Module Board For Luckfox Pico Mini B /Luckfox Pico Plus /Luckfox Pico Pro /Luckfox Pico Max Raspberry Pi 1.5inch LCD Industrial Modbus RTU RS485 4-ch Relay With isolation protection and guide rail ESP32-P4-NANO Development Board RISC-V WiFi6 MIPI CSI Camera / 10.1 inch DSI Display / USB / RJ45 Ethernet / POE / Audio Buzzer UGV Beast PT Kit AI OpenCV Robot Car MediaPipe For Jetson Orin