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

本文介绍了如何利用Onenet平台通过HTTP协议实时查看树莓派的CPU温度。首先,展示如何获取温度值,然后讲解如何在Onenet注册产品和设备,获取API_KEY和设备ID。接着,提供了将温度数据发送到Onenet的Python程序代码,并测试验证数据成功上传。最后,说明用户可以在Onenet的数据流中实时监控树莓派的温度。

利用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
设备ID
添加数据流模板
添加数据流模板

发送数据到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的随机数
设备数据流

完整程序
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()

在数据流中就可以实时查看树莓派的温度值
查看温度

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值