Title:Raspberry PI Model B+ (LCD显示CPU温度)  --2015-01-29 17:44

买了块连接Raspberry PI Model B+的LCD显示器,上面没写CPU温度,就加工了下。

https://github.com/binerry/RaspberryPi/tree/master/libraries/c/PCD8544

修改后的pcd8544_rpi.c:

https://github.com/Teaing/Raspberrypi/tree/master/PCD8544

/*
=================================================================================
Name : pcd8544_rpi.c
Version : 0.1 Copyright (C) 2012 by Andre Wussow, 2012, desk@binerry.de Description :
A simple PCD8544 LCD (Nokia3310/5110) for Raspberry Pi for displaying some system informations.
Makes use of WiringPI-library of Gordon Henderson (https://projects.drogon.net/raspberry-pi/wiringpi/) Recommended connection (http://www.raspberrypi.org/archives/384):
LCD pins Raspberry Pi
LCD1 - GND P06 - GND
LCD2 - VCC P01 - 3.3V
LCD3 - CLK P11 - GPIO0
LCD4 - Din P12 - GPIO1
LCD5 - D/C P13 - GPIO2
LCD6 - CS P15 - GPIO3
LCD7 - RST P16 - GPIO4
LCD8 - LED P01 - 3.3V ================================================================================
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
================================================================================
*/
#include <wiringPi.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/sysinfo.h>
#include "PCD8544.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h> #define TEMP_FILE_PATH "/sys/class/thermal/thermal_zone0/temp"
#define MAX_SIZE 32 // pin setup
int _din = 1;
int _sclk = 0;
int _dc = 2;
int _rst = 4;
int _cs = 3; // lcd contrast
int contrast = 50; int main (void)
{
// print infos
printf("Raspberry Pi PCD8544 sysinfo display\n");
printf("========================================\n"); // check wiringPi setup
if (wiringPiSetup() == -1)
{
printf("wiringPi-Error\n");
exit(1);
} // init and clear lcd
LCDInit(_sclk, _din, _dc, _cs, _rst, contrast);
LCDclear(); // show logo
LCDshowLogo(); delay(2000); for (;;)
{
// clear lcd
LCDclear(); // get system usage / info
struct sysinfo sys_info;
if(sysinfo(&sys_info) != 0)
{
printf("sysinfo-Error\n");
} // uptime
char uptimeInfo[15];
unsigned long uptime = sys_info.uptime / 60;
sprintf(uptimeInfo, "Uptime %ld min.", uptime); // cpu info
char cpuInfo[10];
unsigned long avgCpuLoad = sys_info.loads[0] / 1000;
sprintf(cpuInfo, "CPU %ld%%", avgCpuLoad); // ram info
char ramInfo[10];
unsigned long totalRam = sys_info.freeram / 1024 / 1024;
sprintf(ramInfo, "RAM %ld MB", totalRam); // cpu Temperature
char cputemperature[15];
float cpu_temperature_Result = Get_Cpu_Temperature();
sprintf(cputemperature, "TEMP %.2f ^C", cpu_temperature_Result); // build screen
LCDdrawstring(0, 0, "Raspberry Pi:");
LCDdrawline(0, 10, 83, 10, BLACK);
LCDdrawstring(0, 12, uptimeInfo);
LCDdrawstring(0, 20, cpuInfo);
LCDdrawstring(0, 28, ramInfo);
LCDdrawstring(0, 36, cputemperature);
LCDdisplay(); delay(10000);
} //for (;;){
// printf("LED On\n");
// digitalWrite(pin, 1);
// delay(250);
// printf("LED Off\n");
// digitalWrite(pin, 0);
// delay(250);
//} return 0;
} int Get_Cpu_Temperature(void)
{
int fd;
double temp = 0;
char buf[MAX_SIZE]; // 打开/sys/class/thermal/thermal_zone0/temp
fd = open(TEMP_FILE_PATH, O_RDONLY);
if (fd < 0) {
fprintf(stderr, "failed to open thermal_zone0/temp\n");
return -1;
} // 读取内容
if (read(fd, buf, MAX_SIZE) < 0) {
fprintf(stderr, "failed to read temp\n");
return -1;
} // 转换为浮点数打印
temp = atoi(buf) / 1000.0; // 关闭文件
close(fd);
return temp;
}

  

编译执行下:

cc -o cpushow pcd8544_rpi.c PCD8544.c  -L/usr/local/lib -lwiringPi

./cpushow

因为℃跟°C显示有问题,就用^代替那个点了。

Raspberry PI Model B+ (LCD显示CPU温度)的更多相关文章

  1. 树莓派3代B型 Raspberry Pi Model 3 B 安装 centos7系统

    板子类型: Raspberry Pi Model 3 B 搭配 32G的SD卡: 下载支持树莓派版本的centos7系统 https://buildlogs.centos.org/centos/7/i ...

  2. raspberry pi 如何汉化显示中文

    1 树莓派初装系统之后,首次启动会出现“raspi-config”工具,如下图:(若不是初次启动,在命令模式下,请输入 sudo raspi-config 命令,即可调出此界面.若在图形桌面下,打开桌 ...

  3. 树莓派2代 B型 4核 1G内存 raspberry pi 2 model B

    树莓派技术交流群:318799602 期盼已久的PI2 已经到货,Element14版,非RS版本.诚信卖家如期发货,不会像某些淘宝卖家一样,没有货还标注现货,发货时间一拖再拖. 树莓派的最新力作!! ...

  4. 让你的Ubuntu也能像Windows那样显示网速和CPU温度

    致力于Linux桌面操作系统的平民化,一直强迫自己完全在Ubuntu系统下进行日常的电脑使用,但是用长了时间的Windows,还是有些习惯改不过来,比如只要在下载或者看在线视频的时候就会不自觉关注网速 ...

  5. LCD显示GPS时钟[嵌入式系统]

    夏任务102:做一个GPS钟 实验要求 用RPi的串口连接一个GPS模块,从GPS得到实时时间,在7段数码管或LCD上显示 实验工具: Raspberry Pi Model B主机, 8G c10 S ...

  6. Adding an On/Off switch to your Raspberry Pi

    http://www.raspberry-pi-geek.com/Archive/2013/01/Adding-an-On-Off-switch-to-your-Raspberry-Pi#articl ...

  7. Raspberry Pi Kernel Compilation 内核编译官方文档

    elinux.org/Raspberry_Pi_Kernel_Compilation#Use_the_provided_compiler Software & Distributions: S ...

  8. Arduino VS. Raspberry Pi VS. Beaglebone Black

    The Arduino is a small Atmel-based microcontroller development board easily integrated into many dif ...

  9. 【嵌入式开发】Raspberry Pi 树莓派性能测试

    Raspberry Pi 树莓派性能测试 目录: CPU Linpack基准测试 源码 编译/运行 结果 Whetstone/Dhrystone综合基准测试 源码 编译/运行 结果 OpenSSL安全 ...

随机推荐

  1. CentOS虚拟机不能联网状况下yum方式从本地安装软件包(转载的)

    大家都知道yum是linux下一个非常好用的软件安装/卸载软件,它方便操作,而且最厉害的是可以解决令人头疼的包依赖关系.但是若是你的linux不能联网,若想使用yum安装软件,可以依照下面的方法. 1 ...

  2. logback 配置详解(一)(转)

    转自:http://blog.csdn.net/haidage/article/details/6794509/ 一:根节点<configuration>包含的属性: scan: 当此属性 ...

  3. 转载:Ununtu下中文乱码解决方案

    转载: 添加中文字符编码: $sudo vim /var/lib/locales/supported.d/local #添加下面的中文字符集 zh_CN.GBK GBK zh_CN.GB2312 GB ...

  4. [PWA] 4. Hijacking Request

    We want to do offline first, the first thing we need to do is we should able to catch the browser re ...

  5. Etcd学习(一)安装和.NETclient測试

    Etcd是一个比較新的分布式协调框架,由CoreOS的开发团队开发,如今才仅仅到0.4.6版本号,还没公布1.0版本号 我看了一下GitHub上作者们的提交记录,如今应该还在如火如荼的开发以及改动Bu ...

  6. Codeforces Round #258 (Div. 2)[ABCD]

    Codeforces Round #258 (Div. 2)[ABCD] ACM 题目地址:Codeforces Round #258 (Div. 2) A - Game With Sticks 题意 ...

  7. Oracle内存结构(之三)

    [深入解析--eygle] 学习笔记 1.2.3 PGA的管理: sys@felix SQL>show parameter area_size NAME TYPE VALUE --------- ...

  8. 在Ubuntu上安装使用Systemtap

    因为最近开始学习Nginx,在网上看到别人介绍了一款强大的内核探测工具Systemtap,于是便准备学习下这款探测工具为以后代码分析做准备. 第一步便是安装.在自己电脑上安装的时候,也是费了一番劲儿. ...

  9. C#畅谈“网络电视”

    C#畅谈“网络电视” 以上是大家比较喜欢的网络电视软件,例如:PPTV,BOX央视影音,PPS等. 今天我就和大家来聊一下简单的“网络电视”.虽然和上边的软件没发比,但是正在向着这个目标努力中…… 一 ...

  10. js的new操作符

    1.创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型. 2.属性和方法被加入到 this 引用的对象中. 3.新创建的对象由 this 所引用,并且最后隐式的返回 this . ...