我是靠谱客的博主 甜美柠檬,最近开发中收集的这篇文章主要介绍python实现onenet平台上传、获取数据向onenet平台传数据onenet平台查看数据从平台上获取数据总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

向onenet平台传数据

  • 代码只实现了简单的上传的功能,没有做其他的功能,比如说数据的产生什么的,所以上传的数据是直接给出的
"""
@author:wgc
@Time:2019/5/10 15:19
@Version: v1.0
"""

import urllib.request
import json
import time
from time import sleep
#设备ID
deviceId = "525627026"
APIKey = "Sda0nUGoDiV4TfgZh=S8gZLALZ0="


#上传函数
def http_put_data(data):
    url = "http://api.heclouds.com/devices/" + deviceId + '/datapoints'
    d = time.strftime('%Y-%m-%dT%H:%M:%S')

    values = {"datastreams": [ {"id": "CO2", "datapoints": [{"value": data}]}, {"id": "PM25", "datapoints": [{"value": data}]},
                               {"id": "PM10", "datapoints": [{"value": data}]},{"id": "VOC", "datapoints": [{"value": data}]} ]}

    jdata = json.dumps(values).encode("utf-8")
    request = urllib.request.Request(url, jdata)
    request.add_header('api-key', APIKey)
    request.get_method = lambda: 'POST'
    request = urllib.request.urlopen(request)
    return request.read()


if __name__ == '__main__':
    R = http_put_data(10)
    print(R)

  • 效果

在这里插入图片描述
这个返回结果也只是直接把平台自定义的返回输出一下,这个结果就表明已经成功了,如果上传出错,他会告诉我们错误的个数及提示错误

  • 平台上的效果
    在这里插入图片描述

--------------------------2021-4-17更新部分-------------------

onenet平台查看数据

1、登陆onenet平台 --> 控制台
链接:https://open.iot.10086.cn/
在这里插入图片描述

2、进入设备管理:鼠标滑到’全部产品服务‘那里 --> 增值服务 --> 设备管理DMP在这里插入图片描述
3、查看数据
1)通过设备概览查看数据量(可以用来检测是否上传成功)
在这里插入图片描述

在这里插入图片描述
这里只能看到数据数看不到具体的数值,可以通过2)看到具体数据。
2)查看具体数值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果不断地传输数据就可以看到实时动态,这个我应该是做了,后面整理好可以分享出来。
--------------------------更新部分到这里结束------------------

从平台上获取数据

  • 源码
"""
@author:wgc
@Time:2019/5/9 13:55
@Version: v1.0
"""

import requests
import json

#设备ID
deviceId = "525627026"
APIKey = "Sda0nUGoDiV4TfgZh=S8gZLALZ0="

# 基本设置
url = "http://api.heclouds.com/devices/"+deviceId+"/datastreams"
headers = {'api-key': APIKey}

# 获得结果并打印
r = requests.get(url, headers=headers)
t: str = r.text


#print(t)
params = json.loads(t)
#上面这个语句是将我们获得的内容转成数据字典,这样转是因为我们接收到的内容具有数据字典的形式
#转换成数据字典利于我们后面的操作
#print params['error'][]


#print(type(params))
#如果执行上面这条语句我们可以看到返回的结果是dict,也就是我们已经成功转换


x = params['data']
#这个语句是从数据转换后的数据字典中获取我们需要的数据,从结果上看params是一个list
#在data前面的都只是一些描述内容,参考教程:https://blog.csdn.net/zhiaicq_r/article/details/79278530


print('环境参数'+'tttt'+'更新时间'+'ttttt'+'数值')
#接下来是获取不同的数据流
for index,values in enumerate(x):
    #只需要更新时间,id和值,所以这里对获得的数据字典做一下更改
    #print(values)
    #这里得到的values也是一个数据字典

    #因为在onenet那边对这些数据没有给出来,而且也没有意义,所以我们就不在这里显示,因此现将其删除
    del values['unit']
    del values['unit_symbol']
    del values['create_time']

    #print(values.items())


    #print(values['update_at'])
    #这里不知道为什么直接使用values.get('update_at','')和values.get('current_value','')
    #或者用values['update_at']和values['current_value']报:KeyError错误,而且if里面的那条语句会执行
    #所以我们通过get方法解决,其中要注意的是,如果没有给定第二个参数,那么默认输出NONE
    a= str(values.get('update_at',''))
    b= str(values.get('current_value',''))

    #因为如果有更新时间就会有相应最新的值,所以这里只用其中一个作为判断条件
    if (a != ""):
        if (values['id'] == 'PM25' or values['id'] == 'PM10' ):
            print(str(values['id']) + 'ttt' + a + 'ttt' + b)
        else:
            print(str(values['id']) + 'tttt' + a + 'ttt'+ b)
    else:
        if(values['id'] == 'VOC' or values['id'] == 'VOC'):

           print(values['id']+ 'ttt' +'目前还没有收到任何数据')
        else:
           print(values['id'] + 'tt' + '目前还没有收到任何数据')
  • 效果

在这里插入图片描述

  • 说明

    这里得到的数据是经过处理的,如果不处理的话,会包含一些没有没有用的数据,不便于我们看,而且这样 分割之后我们好引用。从平台上获取到的是一个json的格式,里面是数据字典和列表的嵌套,用python的话很 轻松就搞定了

总结

不管是数据的上传还是下载,其实都挺简单的,代码的可移植性也很高,只要改了设备ID和APIKey就能用在别的设备上,所以只要我们大概了解一下协议怎么封装数据,以及自己设备的ID和PAIKey就可以了,对于onenet的使用,平台上都有很详细的解释,这个还挺友好的

最后

以上就是甜美柠檬为你收集整理的python实现onenet平台上传、获取数据向onenet平台传数据onenet平台查看数据从平台上获取数据总结的全部内容,希望文章能够帮你解决python实现onenet平台上传、获取数据向onenet平台传数据onenet平台查看数据从平台上获取数据总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部