树莓派cpu检测_获取树莓派cpu温度、cpu使用率、内存使用率

本文介绍了如何通过读取树莓派的/proc/文件夹中的虚拟文件来获取CPU温度、CPU使用率和内存使用率。通过JSP页面实现,详细展示了读取和计算过程,包括内存使用率的计算方法、CPU使用率的两种计算方式以及获取CPU温度的步骤。
摘要由CSDN通过智能技术生成

树莓派的/proc/文件夹中有各种虚拟文件,可以用来读取系统的各种数据。

下面以读取内存使用率、CPU使用率、CPU温度为例进行演示,用JSP页面实现。代码中的说明部分写明了所要读取的文件和计算方法。

代码片段:

-function:get memery usage

-method:(read /proc/meminfo)

-calculation:

total memery = MemTotal

mem free = MemFree + Buffers + Cached

mem usage = MemTotal - mem free

--%>

FileReader fr_mem_usage=new FileReader("/proc/meminfo");

BufferedReader br_mem_usage=new BufferedReader(fr_mem_usage);

String s_mem_total=br_mem_usage.readLine();

String s_mem_free=br_mem_usage.readLine();

String s_mem_buffers=br_mem_usage.readLine();

String s_mem_cached=br_mem_usage.readLine();

String[] s_mem_total_array = s_mem_total.split("\\s+");

String[] s_mem_free_array = s_mem_free.split("\\s+");

String[] s_mem_buffers_array = s_mem_buffers.split("\\s+");

String[] s_mem_cached_array = s_mem_cached.split("\\s+");

int mem_total = Integer.parseInt(s_mem_total_array[1]);

int mem_free = Integer.parseInt(s_mem_free_array[1]);

int mem_buffers = Integer.parseInt(s_mem_buffers_array[1]);

int mem_cached = Integer.parseInt(s_mem_cached_array[1]);

int memUsage = 100 - (100 * (mem_free + mem_buffers + mem_cached) / mem_total);

fr_mem_usage.close();

br_mem_usage.close();

%>

-function:get cpu usage

-method:(read /proc/stat)

-calculation:

CPU total time=user+nice+system+idle+iowait+irq+softirq

cpu usage=(idle2-idle1)/(cpu2-cpu1)*100

OR cpu usage=[(user_2 +sys_2+nice_2) - (user_1 + sys_1+nice_1)]/(total_2 - total_1)*100

--%>

FileReader fr_cpu_usage1=new FileReader("/proc/stat");

BufferedReader br_cpu_usage1=new BufferedReader(fr_cpu_usage1);

String s_cpu_usage1=br_cpu_usage1.readLine();

String[] s_cpu_usage_array1 = s_cpu_usage1.split("\\s+");

int f_cpu_usage_array1[] = new int[7];

for(int i=1;i<=7;i++){

f_cpu_usage_array1[i-1] = Integer.parseInt(s_cpu_usage_array1[i]);

}

fr_cpu_usage1.close();

br_cpu_usage1.close();

Thread.sleep(100);

FileReader fr_cpu_usage2=new FileReader("/proc/stat");

BufferedReader br_cpu_usage2=new BufferedReader(fr_cpu_usage2);

String s_cpu_usage2=br_cpu_usage2.readLine();

String[] s_cpu_usage_array2 = s_cpu_usage2.split("\\s+");

int f_cpu_usage_array2[] = new int[7];

for(int i=1;i<=7;i++){

f_cpu_usage_array2[i-1] = Integer.parseInt(s_cpu_usage_array2[i]);

}

fr_cpu_usage2.close();

br_cpu_usage2.close();

int cputotal1=0,cputotal2=0,idle1=0,idle2=0,cpuUsage=0;

for(int i=0;i<=6;i++){

cputotal1 = cputotal1 + f_cpu_usage_array1[i];

}

for(int i=0;i<=6;i++){

cputotal2 = cputotal2 + f_cpu_usage_array2[i];

}

idle1 = f_cpu_usage_array1[3];

idle2 = f_cpu_usage_array2[3];

cpuUsage = 100 - (100 * (idle2 - idle1)/(cputotal2 - cputotal1));

%>

-function:get cpu temperature

-method:(read /sys/class/thermal/thermal_zone0/temp)

-calculation:

actual temperature = number_you_read / 1000

--%>

FileReader fr=new FileReader("/sys/class/thermal/thermal_zone0/temp");

BufferedReader br=new BufferedReader(fr);

String s=br.readLine();

int temp = (Integer.parseInt(s))/1000;

fr.close();

br.close();

%>

结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值