利用Onenet平台实时查看树莓派cpu温度(http协议)

利用Onenet平台实时查看树莓派cpu温度(http协议)

因为树莓派没有装外壳,今天舍友吓我说温度要爬上80,树莓派没有跑满,80℃不至于把,简单查看了一下温度也没有到80℃。刚好舍友今天又推荐了onenet平台,我想那把树莓派的cpu温度发送到onenet就可以通过网页端实时查看了。

查看温度值

46738除以1000是树莓派的温度值,即46.7℃

pi@raspberrypi:~/Desktop $ cat /sys/class/thermal/thermal_zone0/temp
46738

python程序如下

f=open('/sys/class/thermal/thermal_zone0/temp', 'r') 
s=f.read()
temp =int(s)
temp=temp/1000
print(temp)
f.close()

获取onenet产品api

注册账户不多介绍,注册产品选择多协议,选择http协议,注册一个产品,获取产品Api_key
产品apikey
在设备列表中注册一个设备,获取设备ID
利用Onenet平台实时查看树莓派cpu温度(http协议)_第1张图片
添加数据流模板
利用Onenet平台实时查看树莓派cpu温度(http协议)_第2张图片

发送数据到onenet

模板程序如下,参考教程python3通过HTTP上传数据并显示

import urllib.request
import json
import time
import datetime
import random
import requests

APIKEY = ''  # 改成你的APIKEY
apiurl = 'http://api.heclouds.com/devices/1111111111/datapoints'#改成你自己的 
apiheaders = {'api-key': APIKEY, 'Content-Length': '120'}

def http_put():
    temperature = random.randint(60,100)
    CurTime = datetime.datetime.now()
    payload = {'datastreams': [{"id": "test1", "datapoints": [{"at": CurTime.isoformat(), "value": temperature}]}]}
    # payload = {"datastreams": [{"id": "girlA", "datapoints": [{"value": 11}]}]}
    print("当前时间为: %s" % CurTime.isoformat())
    print("上传值为: %.3f" % temperature)

    jdata = json.dumps(payload)  # 对数据进行JSON格式化编码
    # 打印json内容
    print(jdata)
    r = requests.post(apiurl, headers=apiheaders, data=json.dumps(payload))
    return r

while True:
    time.sleep(2)
    resp = http_put()
    print("OneNET请求结果:\n %s" % resp)

测试一下,可以在设备列表的数据流中看到大于50的随机数
利用Onenet平台实时查看树莓派cpu温度(http协议)_第3张图片

完整程序

import urllib.request
import json
import time
import datetime
import requests

APIKEY = 'api_key'  # 改成你的APIKEY
apiurl = 'http://api.heclouds.com/devices/设备号/datapoints'#改成你自己的 
apiheaders = {'api-key': APIKEY, 'Content-Length': '120'}

def get_temp():
    f=open('/sys/class/thermal/thermal_zone0/temp', 'r') 
    s=f.read()
    temp =int(s)
    last_temp=temp/1000
    return last_temp
    
def http_put():
    temperature=get_temp()
    CurTime = datetime.datetime.now()
    payload = {'datastreams': [{"id": "raspberrypi_temperature", "datapoints": [{"at": CurTime.isoformat(), "value": temperature}]}]}
    jdata = json.dumps(payload)  # 对数据进行JSON格式化编码
    # print(jdata)
    r = requests.post(apiurl, headers=apiheaders, data=json.dumps(payload)
    # return r

if __name__ == '__main__':
    while True:
        time.sleep(2)
        http_put()

在数据流中就可以实时查看树莓派的温度值
利用Onenet平台实时查看树莓派cpu温度(http协议)_第4张图片

你可能感兴趣的:(树莓派)