树莓派学习笔记(4):利用yeelink实现在线硬件状态监控
2014-10-12 14:06
615 查看
转载请注明:@小五义http://www.cnblogs.com/xiaowuyi
2、进入用户中心,获取API key,如下图。
3、添加设备:进入我的设备--增加新设备--填写后(注意这里的设备先自备设备),会生成新设备。
4、添加传感器
这里分数值型传感器、开关、泛传感器等,具体意思可参考API文档。本文只使用了数值型传感器。
2、CPU占用情况:top命令
3、内存使用情况也是通过top命令获取
4、利用python的requests模块将获取的数据post到yeelink网站。这里用的对应传感器的Url及ID
,具体获取方法,见下图:
这里是CPU温度传感器(我用temp来命令的)的url和ID(25322)。
注:requests模块的安装可参考http://www.zhidaow.com/post/python-requests-install-and-brief-introduction或者http://www.python-requests.org/en/latest/。
yeelink显示结果:
1、CPU 温度结果
2、CPU占用率结果
3、内存占用率结果
程序运行时间较短,所以以上曲线仅后半部分为测量情况。
一、实验目的
本文实验目的是定时获取树莓派CPU的温度、占用率及内存占用率,并其结果上传到yeelink网站,实现在线监控。二、yeelink的简单介绍
1、注册yeelink。2、进入用户中心,获取API key,如下图。
3、添加设备:进入我的设备--增加新设备--填写后(注意这里的设备先自备设备),会生成新设备。
4、添加传感器
这里分数值型传感器、开关、泛传感器等,具体意思可参考API文档。本文只使用了数值型传感器。
三、获取CPU温度、占用率及内存使用情况及准备知识
1、CPU温度:vcgencmd measure_temp2、CPU占用情况:top命令
3、内存使用情况也是通过top命令获取
4、利用python的requests模块将获取的数据post到yeelink网站。这里用的对应传感器的Url及ID
,具体获取方法,见下图:
这里是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)
五、运行结果
终端显示结果:yeelink显示结果:
1、CPU 温度结果
2、CPU占用率结果
3、内存占用率结果
程序运行时间较短,所以以上曲线仅后半部分为测量情况。
>>欢迎加入讨论群:64770604
相关文章推荐
- 树莓派学习笔记(4):利用yeelink实现在线硬件状态监控
- 树莓派学习笔记(7):利用bypy实现树莓派NAS同步百度云
- 树莓派学习笔记——定时向yeelink上传树莓派CPU温度
- 树莓派学习笔记——yeelink 远程控制LED
- 树莓派学习笔记 1 -- 硬件的需求以及raspbian系统的安装
- 安卓个人学习笔记---利用服务实现电话监听
- 孙鑫VC学习笔记:第十六讲 利用事件对象实现线程间的同步
- Effective C# 学习笔记(三十一)利用IComparable<T>和IComparer<T>接口来实现排序关系
- 树莓派学习笔记(5):成功实现NAS家庭服务器(流媒体播放、文件共享及下载机)
- 【学习笔记⑥】ssh中利用struts实现图片的上传功能
- 孙鑫VC学习笔记:第十六讲 (二) 利用关键代码段实现线程间的同步
- Windows 8 Directx 开发学习笔记(十三)利用模板实现木箱镜像
- 孙鑫VC学习笔记:第十六讲 (一) 利用事件对象实现线程间的同步
- 树莓派学习笔记(3):利用VNC远程控制树莓派
- 树莓派学习笔记(5):成功实现NAS家庭服务器(流媒体播放、文件共享及下载机)
- Objective-C学习笔记 利用协议实现回调函数
- Effective C# 学习笔记(四十一)使利用DynamicObject或IDynamicMetaObjectProvider接口实现数据驱动的动态类型
- android 入门学习笔记 利用bundle实现android,activity间消息的传递
- 算法导论学习笔记(4)——利用链接法实现哈希表
- 树莓派学习笔记(3):利用VNC远程控制树莓派