树莓派基础-GPIO、CPU、温度、内存


Raspberry Pi




0x01.About

入手树莓派已经几个月,但是一直没有做什么东西,系统搭起来就是一个ubuntu,所以熟悉linux的同学就比较好入门。

很多有意思的创意,都在创客中心: http://www.dfrobot.com.cn/community/portal.php

还有树莓派社区: http://shumeipai.nxez.com/

感觉树莓派的好用在于,Linux系统较容易开发python、c,不需要烧录;板子简洁,方便携带;I/O简单,方便。

如果只是单用一个系统,不如服务器,优势就在于,外接各种传感器,板子。

玩完树莓派,准备入手Arduino,感觉这个更多开发接口,设备。




0x02.GPIO管脚

想要使用树莓派管脚,在python下,要先安装GPIO库,在c下,要安装WiringPi.

安装GPIO

sudo apt-get install python-setuptools

sudo easy_install -U distribute

sudo apt-get install python-dev

sudo easy_install RPi.GPIO


安裝WiringPi

官网中有2种方式安裝,一种使用的是GIT方式;另一種使用的是下载包方式。

sudo apt-get install git-core

sudo apt-get update && sudo apt-get -y upgrade

用GIT取得WiringPi:

git clone git://git.drogon.net/wiringPi

cd wiringPi

git pull origin

cd wiringPi

./build

當指令执行结束后便完成安装WiringPi步驟。


关于GPIO

树莓派引脚图

树莓派有两种引脚模式,BCD和BOARD,选择不同的引脚模式,引脚结果不一样。

外侧一排为5V电压。内侧一排为3.3V电压。

引脚只能识别模拟信号,无法识别数字信号,所以只能检测高低电平,输入输出高低电平。

关于引脚图,查看这里。http://www.geekfan.net/8972/




0x03.CPU、温度、内存

关于cpu,温度,内存,网上很多了,从网上抄了个下来。

新建脚本

vim info.py

源码:

import os

# Return CPU temperature as a character string                                     
def getCPUtemperature():
    res = os.popen('vcgencmd measure_temp').readline()
    return(res.replace("temp=","").replace("'C\n",""))

# Return RAM information (unit=kb) in a list                                      
# Index 0: total RAM                                                              
# Index 1: used RAM                                                                
# Index 2: free RAM                                                                
def getRAMinfo():
    p = os.popen('free')
    i = 0
    while 1:
        i = i + 1
        line = p.readline()
        if i==2:
            return(line.split()[1:4])

# Return % of CPU used by user as a character string                               
def getCPUuse():
    return(str(os.popen("top -n1 | awk '/Cpu\(s\):/ {print $2}'").readline().strip()))

# Return information about disk space as a list (unit included)                    
# Index 0: total disk space                                                        
# Index 1: used disk space                                                        
# Index 2: remaining disk space                                                    
# Index 3: percentage of disk used                                                 
def getDiskSpace():
    p = os.popen("df -h /")
    i = 0
    while 1:
        i = i +1
        line = p.readline()
        if i==2:
            return(line.split()[1:5])

# CPU informatiom
CPU_temp = getCPUtemperature()
CPU_usage = getCPUuse()

# RAM information
# Output is in kb, here I convert it in Mb for readability
RAM_stats = getRAMinfo()
RAM_total = round(int(RAM_stats[0]) / 1000,1)
RAM_used = round(int(RAM_stats[1]) / 1000,1)
RAM_free = round(int(RAM_stats[2]) / 1000,1)

# Disk information
DISK_stats = getDiskSpace()
DISK_total = DISK_stats[0]
DISK_used = DISK_stats[1]
DISK_perc = DISK_stats[3]

if __name__ == '__main__':
    print('')
    print('CPU Temperature = '+CPU_temp)
    print('CPU Use = '+CPU_usage)
    print('')
    print('RAM Total = '+str(RAM_total)+' MB')
    print('RAM Used = '+str(RAM_used)+' MB')
    print('RAM Free = '+str(RAM_free)+' MB')
    print('') 
    print('DISK Total Space = '+str(DISK_total)+'B')
    print('DISK Used Space = '+str(DISK_used)+'B')
    print('DISK Used Percentage = '+str(DISK_perc))

运行

chmod +x info.py

python info.py

结果

系统信息




本文出自 夏日小草,转载请注明出处: 《 树莓派基础-GPIO、CPU、温度、内存 》


-by小草

2014-10-09 10:13:15

Fork me on GitHub