树莓派学习笔记(4):利用yeelink实现在线硬件状态监控

简介: 转载请注明:@小五义http://www.cnblogs.com/xiaowuyi   一、实验目的       本文实验目的是定时获取树莓派CPU的温度、占用率及内存占用率,并其结果上传到yeelink网站,实现在线监控。

转载请注明:@小五义http://www.cnblogs.com/xiaowuyi

 

一、实验目的

      本文实验目的是定时获取树莓派CPU的温度、占用率及内存占用率,并其结果上传到yeelink网站,实现在线监控。

二、yeelink的简单介绍

      1、注册yeelink。

      2、进入用户中心,获取API key,如下图。

 

            image 

 

      3、添加设备:进入我的设备--增加新设备--填写后(注意这里的设备先自备设备),会生成新设备。

            image  

      4、添加传感器

            image

            这里分数值型传感器、开关、泛传感器等,具体意思可参考API文档。本文只使用了数值型传感器。

三、获取CPU温度、占用率及内存使用情况及准备知识

1、CPU温度:vcgencmd measure_temp

2、CPU占用情况:top命令

3、内存使用情况也是通过top命令获取

4、利用python的requests模块将获取的数据post到yeelink网站。这里用的对应传感器的Url及ID

 

 

 

,具体获取方法,见下图:

              image

这里是CPU温度传感器(我用temp来命令的)的url和ID(25322)。

注:requests模块的安装可参考http://www.zhidaow.com/post/python-requests-install-and-brief-introduction或者http://www.python-requests.org/en/latest/

四、代码实现

python2.7环境下实验成功:

import os
import requests
import json,time,string

#获取cpu温度
def getcputemperature():
    cputemp=os.popen('vcgencmd measure_temp').readline()
    sumcputemp=cputemp.replace("temp=","").replace("'C\n","")
    return sumcputemp

#获取CPU及内存使用情况
def getcpuused():
    return(os.popen("top -n1"))

#apikey为用户id
apiheaders={'U-ApiKey':'0e77243b68ff5f7fd65e19261133330d','content-type': 'application/json'}

#CPU温度使用 25322 传感器
cputemp_apiurl="http://api.yeelink.net/v1.0/device/14778/sensor/25322/datapoints"

#cpu 使用情况使用 25356 传感器
cpuused_apiurl="http://api.yeelink.net/v1.0/device/14778/sensor/25356/datapoints"


#内存占用率使用 25357 传感器
memeryused_apiurl="http://api.yeelink.net/v1.0/device/14778/sensor/25357/datapoints"

if __name__=='__main__':
    while 1:
        #上传cpu温度
        cpu_temp=getcputemperature()
        cputemp_payload={'value':cpu_temp}
        r=requests.post(cputemp_apiurl, headers=apiheaders, data=json.dumps(cputemp_payload))
        print cpu_temp

    
        #上传cpu占用率及内存使用率
        tempcpuused=getcpuused()
  
        for cpuline in tempcpuused:

            if cpuline[:3]=="%Cp":
                #cpulineused=cpuline.split(":")[1].split(",")[0].strip("us").split(" ")[1]
     
                cpulineused=cpuline.split(":")[1].split(",")[0].split(" ")[-2]
                cpuused_payload={'value':cpulineused}
                r=requests.post(cpuused_apiurl, headers=apiheaders, data=json.dumps(cpuused_payload))
                print "CPU USED %:"+cpulineused
            if "Mem:" in cpuline:
               #提取数值,仅用字符串操作时,发现在数值前后有多个不可见字符,这里没怎么搞清楚这些字符是些什么
                memlineused=cpuline.split(":")[1].split(",")[1].strip("used").split(" ")[-2]

                memlinetotal=cpuline.split(":")[1].split(",")[0].strip("total").split(" ")[-2]
 
                memeryusedratio=float(str(memlineused))/float(str(memlinetotal))
                memeryusedratiostr="%.2f"%(memeryusedratio*100)
                memeryused_payload={'value':memeryusedratiostr}
                r=requests.post(memeryused_apiurl, headers=apiheaders, data=json.dumps(memeryused_payload))
                
                print memeryusedratiostr
                print "================"
        time.sleep(20)

五、运行结果

终端显示结果:

image

yeelink显示结果:

1、CPU 温度结果

         image

2、CPU占用率结果

         image

3、内存占用率结果

        image

 

程序运行时间较短,所以以上曲线仅后半部分为测量情况。

 

 

>>欢迎加入讨论群:64770604
目录
相关文章
|
监控 API C++
利用C++构建PC端监控软件:实时屏幕录制
在今天的数字化世界中,监控软件变得越来越重要。无论是家庭用户需要监控他们的孩子,还是企业需要监控员工的电脑活动,实时屏幕录制是一种有效的方法。本文将向您介绍如何使用C++构建PC端监控软件,实现实时屏幕录制功能。此外,我们还将讨论如何自动提交监控到的数据到一个网站上。
502 0
|
7月前
|
数据采集 监控 网络协议
LabVIEW开发工业设备远程在线状态监测
LabVIEW开发工业设备远程在线状态监测
46 2
|
7月前
|
传感器 数据可视化 物联网
LabVIEW开发低成本静脉监测和控制输液系统
LabVIEW开发低成本静脉监测和控制输液系统
58 2
|
7月前
|
监控 Linux API
LabVIEW监控实时嵌入式目标上的CPU和内存使用情况
LabVIEW监控实时嵌入式目标上的CPU和内存使用情况
281 4
|
7月前
|
运维 网络协议 安全
【专栏】30个必备的思科设备巡检命令,涵盖设备基本信息、性能、网络连接、安全及其它重要方面
【4月更文挑战第28天】本文列举了30个必备的思科设备巡检命令,涵盖设备基本信息、性能、网络连接、安全及其它重要方面。这些命令包括`show version`、`show running-config`、`show ip route`、`show access-lists`等,对监控设备状态、排查故障及优化性能至关重要。熟悉并运用这些命令能提升网络工程师的工作效率,确保网络稳定运行。不断学习新命令以适应网络技术发展是网络工程师的必修课。
676 1
|
7月前
|
监控 机器人
LabVIEW开发同步磁阻电机匝间短路故障在线诊断技术
LabVIEW开发同步磁阻电机匝间短路故障在线诊断技术
32 0
|
7月前
|
监控 算法
LabVIEW开发异步电动机定子故障在线诊断系统
LabVIEW开发异步电动机定子故障在线诊断系统
32 0
|
7月前
|
传感器 数据采集 人工智能
LabVIEW FPGA开发实时滑动摩擦系统
LabVIEW FPGA开发实时滑动摩擦系统
52 0
计算机维修的工具与设备
计算机维修的工具与设备。
97 1
|
7月前
|
数据采集 监控 物联网
物联网时代的电脑行为监控软件:代码实现与设备连接
随着物联网技术的飞速发展,电脑行为监控软件在日常生活和商业领域中变得愈发重要。这种软件通过对电脑用户行为的监测,提供了有益的数据,有助于改善用户体验、增强安全性,甚至在一些场景中实现自动化操作。本文将探讨物联网时代的电脑行为监控软件的代码实现与设备连接,并重点介绍监控到的数据如何自动提交到网站。
345 0