本帖最后由 黄莨元 于 2017-8-10 02:50 编辑
大家好,笔者的这篇文章是基于上一篇文章的,在前面的介绍当中,笔者已经将实现了将香蕉派BPI -M2 Berry
开发板接入到贝壳物联网云平台,并且,通过平台向香蕉派开发板发送各种指令,能实现无线点灯的功能,接下来,笔者要介绍的是,在该平台上创建一个数据接口,将香蕉派BPI -M2 Berry开发板上CPU的温度数据上传到云端平台,并以折线图显示出来,达到实时检测CPU温度的效果。:D一、
创建数据接口在设备首页数据接口按钮中选择添加数据按钮
编辑数据接口
查看数据接口ID
号
二、
通过命令获取CPU
温度值通过命令行可以获取CPU
温度值# cat /sys/class/thermal/thermal_zone0/temp
三、CPU
温度值实时检测基于上篇文章的代码,在这基础上修改,编写为temp.py
脚本,运行# python3 temp.py &
运行上述命令后,将接入到平台,并实现CPU
温度数据上传,效果如下:
代码:#!/usr/bin/python3
import socket
import os
import time
from datetime import datetime
DEVICEID='2922'
APIKEY='08f647972'
DATAID='2777'
host="www.bigiot.net"
port=8181
checkinBytes=bytes('{\"M\":\"checkin\",\"ID\":\"'+DEVICEID+'\",\"K\":\"'+APIKEY+'\"}\n',encoding='utf8')
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
while True:
try:
s.connect((host,port))
break
except:
# print('waiting for connect bigiot.net...')
time.sleep(2)
s.settimeout(0)
s.sendall(checkinBytes)
data=b''
flag=1
t=time.time()
def keepOnline(t):
if time.time()-t>15:
output=os.popen('cat /sys/class/thermal/thermal_zone0/temp')
temp=(output.read()).replace('\n','')
# print(temp)
line='{\"M\":\"update\",\"ID\":\"'+DEVICEID+'\",\"V\":{\"'+DATAID+'\":\"'+temp+'\"}}\n'
s.sendall(bytes(line,encoding='utf8'))
return time.time()
else:
return t
while True:
try:
d=s.recv(1)
flag=True
except:
flag=False
time.sleep(2)
t = keepOnline(t)
if flag:
if d!=b'\n':
data+=d
else:
#do something here...
# print(str(data,encoding='utf-8'))
data=b''
四、
总结 香蕉派BPI -M2 Berry
开发板CPU温度实时监测的介绍就先到这里了,笔者在上篇文章的基础上添加了一个数据接口,并将开发板的CPU温度数据进行上传并通过图表的形式进行实时监测,在后面,还可以完善,添加开启启动脚本,以及添加风扇端控制,当温度过高时,平台进行报警,并且控制风扇转动,后面会慢慢完善,好了,最后感谢云汉电子社区和香蕉派公司给予笔者试用香蕉派BPI -M2 Berry开发板的机会,笔者会尽自己最大努力进行测评的,谢谢。:P
本帖最后由 黄莨元 于 2017-8-10 02:50 编辑
大家好,笔者的这篇文章是基于上一篇文章的,在前面的介绍当中,笔者已经将实现了将香蕉派BPI -M2 Berry
开发板接入到贝壳物联网云平台,并且,通过平台向香蕉派开发板发送各种指令,能实现无线点灯的功能,接下来,笔者要介绍的是,在该平台上创建一个数据接口,将香蕉派BPI -M2 Berry开发板上CPU的温度数据上传到云端平台,并以折线图显示出来,达到实时检测CPU温度的效果。:D一、
创建数据接口在设备首页数据接口按钮中选择添加数据按钮
编辑数据接口
查看数据接口ID
号
二、
通过命令获取CPU
温度值通过命令行可以获取CPU
温度值# cat /sys/class/thermal/thermal_zone0/temp
三、CPU
温度值实时检测基于上篇文章的代码,在这基础上修改,编写为temp.py
脚本,运行# python3 temp.py &
运行上述命令后,将接入到平台,并实现CPU
温度数据上传,效果如下:
代码:#!/usr/bin/python3
import socket
import os
import time
from datetime import datetime
DEVICEID='2922'
APIKEY='08f647972'
DATAID='2777'
host="www.bigiot.net"
port=8181
checkinBytes=bytes('{\"M\":\"checkin\",\"ID\":\"'+DEVICEID+'\",\"K\":\"'+APIKEY+'\"}\n',encoding='utf8')
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
while True:
try:
s.connect((host,port))
break
except:
# print('waiting for connect bigiot.net...')
time.sleep(2)
s.settimeout(0)
s.sendall(checkinBytes)
data=b''
flag=1
t=time.time()
def keepOnline(t):
if time.time()-t>15:
output=os.popen('cat /sys/class/thermal/thermal_zone0/temp')
temp=(output.read()).replace('\n','')
# print(temp)
line='{\"M\":\"update\",\"ID\":\"'+DEVICEID+'\",\"V\":{\"'+DATAID+'\":\"'+temp+'\"}}\n'
s.sendall(bytes(line,encoding='utf8'))
return time.time()
else:
return t
while True:
try:
d=s.recv(1)
flag=True
except:
flag=False
time.sleep(2)
t = keepOnline(t)
if flag:
if d!=b'\n':
data+=d
else:
#do something here...
# print(str(data,encoding='utf-8'))
data=b''
四、
总结 香蕉派BPI -M2 Berry
开发板CPU温度实时监测的介绍就先到这里了,笔者在上篇文章的基础上添加了一个数据接口,并将开发板的CPU温度数据进行上传并通过图表的形式进行实时监测,在后面,还可以完善,添加开启启动脚本,以及添加风扇端控制,当温度过高时,平台进行报警,并且控制风扇转动,后面会慢慢完善,好了,最后感谢云汉电子社区和香蕉派公司给予笔者试用香蕉派BPI -M2 Berry开发板的机会,笔者会尽自己最大努力进行测评的,谢谢。:P