LCD显示系统信息脚本
309 字
2 分钟
LCD显示系统信息脚本

包括
from PCD8544 import PCD8544 as lcdimport timeimport osimport threading
cpu_info=""time_info=""
speed_down=[]speed_up=[]speed_name=[]
# 显示cpu温度def cpu_t(): global cpu_info while(True): info=open('/sys/class/thermal/thermal_zone0/temp','r').read() info=(int)(info)/1000 info=(str)(info)+'C' cpu_info=info time.sleep(1)
# 显示开机运行时间def time_local(): global time_info while(True): info=os.popen('cat /proc/uptime| awk -F. \'{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf(\"%dD %d:%d:%d\",run_days,run_hour,run_minute,run_second)}\'') info=info.read() time_info=info time.sleep(1)
# 显示网卡速度def net_speed(): global speed_name global speed_down global speed_up
speed_down_1={} speed_up_1={}
speed_net_time={} #记录各网卡有网速的时间
while True: info=open('/proc/net/dev','r').readlines() for p in info: p=p.split( ) if p[1].isdigit() and p[1] != 0: index = 0 if p[0] in speed_name: index = speed_name.index(p[0])
#若10秒后网速仍然为0就取消显示该网卡速度 if (int)(time.time()) - speed_net_time.get(p[0],0) > 10 and speed_down_1.get(p[0]) == p[1] and speed_up_1.get(p[0]) == p[9]: del speed_name[index] del speed_down[index] del speed_up[index] speed_net_time[p[0]] = (int)(time.time()) else: speed_down[index]=(float)((int)(p[1])-(int)(speed_down_1.get(p[0])))/1000 speed_up[index]=(float)((int)(p[9])-(int)(speed_up_1.get(p[0])))/1000 if speed_down[index] != 0 and speed_up[index] != 0: speed_net_time[p[0]] = (int)(time.time()) speed_down_1[p[0]]=p[1] speed_up_1[p[0]]=p[9] else: if speed_down_1.get(p[0],0) != p[1] and speed_up_1.get(p[0],0) != p[9]: speed_name.append(p[0]) speed_down.append(0) speed_up.append(0) speed_down_1[p[0]] = p[1] speed_up_1[p[0]] = p[9] continue time.sleep(1)
def main(): a = lcd(dc=13, rst=5, sclk=26, din=19, cs=6, vcc=20, bl=21, bk=0) a.begin(contrast=60) #屏幕对比度
#各任务使用多线程运行 tmp=threading.Thread(target=time_local) tmp.setDaemon(True) tmp.start() tmp=threading.Thread(target=cpu_t) tmp.setDaemon(True) tmp.start() tmp=threading.Thread(target=net_speed) tmp.setDaemon(True) tmp.start()
t1=(int)(time.time()) index=0 while(True): try: t2=(int)(time.time()) a.clear() a.draw_str(0,'CPU: '+cpu_info) a.draw_str(1,time_info) try: # 网卡显示,10秒切换网卡信息 if t2-t1>10: t1=t2 if index < len(speed_name)-1: index=index+1 else: index=0 a.draw_str(2,speed_name[index]+" ("+(str)(index+1)+"/"+(str)(len(speed_name))+")") a.draw_str(3,"D: "+(str)(speed_down[index])+"k/s") a.draw_str(4,"U: "+(str)(speed_up[index])+"k/s") except Exception as e: pass a.display() time.sleep(1) except KeyboardInterrupt: a.quit() exit(0)
if __name__ == '__main__': main()支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
相关文章智能推荐
1
【树莓派】Docker安装脚本
树莓派脚本2019-01-20
2
【树莓派】使用Nokia5110显示信息
树莓派笔记2018-07-14
3
frp开机启动与自动检查运行脚本(Python)
树莓派脚本2017-12-08
4
树莓派安装Raspbian
树莓派笔记2018-03-05
5
树莓派配置迅雷远程下载
树莓派笔记2017-12-04
随机文章随机推荐















加载更多…