打造自己的树莓派监控系统2--内存监控-matplotlib显示数据
发布日期:2022-03-18 18:19:19 浏览次数:2 分类:技术文章

本文共 1985 字,大约阅读时间需要 6 分钟。

系列文章:

  • 文章1:
  • 文章2:
  • 文章3:
  • GitHub仓库:

代码编写

树莓派的内存使用情况可以使用如下命令查看:

free -m

结果如下:

total        used        free      shared  buff/cache   availableMem:            927         353          32          48         540         470Swap:             0           0           0

而’free -m’命令是通过查看/proc/meminfo文件获得信息的:

cat /proc/meminfo

使用如下命令查看可用内存:

cat /proc/meminfo | grep MemAvailable

然后开始写代码:

获取内存:

def get_mem():    try:        MemAvailable = os.popen(            "cat /proc/meminfo | grep MemAvailable |awk  '{print $2 / 1024}'").readline()        MemAvailable = float(MemAvailable)        return MemAvailable    except Exception as e:        print(e)

数据存放在数据库:

def create():    # 创建数据库    global conn    conn = sqlite3.connect('data.db')    conn.execute("""                create table if not exists mem(                id INTEGER PRIMARY KEY ,                mem DOUBLE DEFAULT NULL,                time INTEGER DEFAULT NULL)""")    conn.commit()def save(mem):    # 将数据保存至本地    global conn    command1 = "insert into mem \             (mem,time) values (?,?);"    try:        temp = (mem, int(round(time.time() * 1000)))        conn.execute(command1, temp)    except Exception as e:        print(e)        print("insert error!")        conn.rollback()    conn.commit()

最后是画图:

def mem():    import matplotlib    matplotlib.use('Agg')    import matplotlib.pyplot as plt    global conn    connect()    mem,MemTotal = mem_get()    ID = len(mem)    past = datetime.datetime.now()-datetime.timedelta(minutes=ID)    x = [past+datetime.timedelta(minutes=i)         for i in range(ID)]    plt.title("time and memory usage", fontsize=25)    plt.xlabel("time", fontsize=15)    plt.ylabel("memory usage", fontsize=15)    plt.plot(x, mem)    plt.ylim(0,MemTotal)    plt.gcf().autofmt_xdate()    plt.savefig('static/mem.jpg')

运行

此项目的GitHub地址:

运行如下命令:

git clone https://github.com/zhang0peter/raspberry-pi-monitor.gitcd raspberry-pi-monitor/screen -S raspberry-pi-monitorbash main.sh

然后在浏览器中打开即可看到树莓派内存使用情况-时间图:

转载地址:https://zhang0peter.blog.csdn.net/article/details/84288281 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Debian/Ubuntu/Raspbian 时间同步
下一篇:OpenGL(glut)模拟太阳系:太阳,地球,月球,火星

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年03月06日 01时30分56秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

2d游戏地图编辑器_王者荣耀:新版本爆料!地图编辑器“天工”即将开测,游戏怎么玩由你定!... 2019-04-21
5w2h原则指的是什么_什么是5W2H分析法?一首小诗带入进入大门。 2019-04-21
ad19 导出step 没有pcb_几款主流PCB软件哪个最好用,你用过几款? 2019-04-21
json mysql 字段 默认值_Newtonsoft.Json 六个超简单又实用的特性,值得一试 【上篇】... 2019-04-21
ocdma相干非相干_《Acconeer 60GHz脉冲相干雷达芯片:A111》 2019-04-21
修改表格字体颜色_Excel技巧:Excel如何修改字体颜色 2019-04-21
native react 变颜色 点击_React Native主动更改StackNavigator标头颜色 2019-04-21
prism项目搭建 wpf_WPF MVVM使用prism4.1搭建 2019-04-21
python发微信红包群_用Python实现微信自动化抢红包,再也不用担心抢不到红包了... 2019-04-21
python中func自定义函数_Python函数之自定义函数&作用域&闭包 2019-04-21
wget连接指定端口_端口通不通 telnet wget ssh 2019-04-21
eureka 调用服务_Spring Cloud微服务架构从入门到会用(二)—服务注册中心Eureka... 2019-04-21
easyexcel 工具类_问了个在阿里的同学,他们常用的15款开发者工具! 2019-04-21
mysql统计结果大于0时返回true_mysql表查询练习 2021-06-24
c语言对结构体排序中间变量,求助:c语言怎么实现结构体的排序? 总是弄不对啊... 2021-06-24
c语言宏定义只能在最前面吗,C语言宏定义注意事项 2021-06-24
android悬浮窗服务卡死,Android 悬浮窗兼容问题谈 2021-06-24
表格相关的html语言,HTML标记语言——表格标记 2021-06-24
web聊天界面html,PC端Web聊天界面+代码分享(HTML+CSS) 2021-06-24
cmake qt 添加路径 项目_CMake配置Qt工程 2021-06-24