上传数据点到OneNET平台

本教程介绍了如何在OneNET平台上新建数据流并使用MQTT协议的publish报文上传数据点。首先,需在OneNET云平台创建数据流模板,然后通过MicroPython编程,利用TPYBoardv202开发板和特定的publish格式发送JSON数据。此外,文章还提到OneNET平台支持HTTP、TCP等其他协议,鼓励读者尝试更多智能物联网开发。
摘要由CSDN通过智能技术生成

 在之前的教程中,学习过如何使用MQTT协议接入OneNET平台,同时获取该平台下发的命令实现远程控制的功能。
    本次教程,将要学习如何在OneNET平台上新建数据流,同时使用MQTT协议中publish报文格式上传数据点。

    准备工作

    TPYBoard v202开发板(33元某宝可以买到)
    USB数据线
    电脑
    NotePad ++ 软件(其他编辑工具也可以)
    MicroPython File Uploader(MFU)软件
    浏览器(谷歌浏览器为例)

    OneNET平台新建数据流

    OneNET平台官网地址:<https://open.iot.10086.cn/>。
    若没有使用过的该平台的,可以参考上面前言中的教程,先进行产品和设备的添加。
    在数据点上报之前,我们需要在OneNET云平台上添加一个数据流模板。步骤如下:
    1、进入[开发者中心]的[设备管理]页面,在左侧菜单栏中选择[数据流模板],点击[添加数据流]。



    2、会弹出一个添加数据流的对话框,必填项名称,其他可以选填,填完之后点击[添加]。



    3、添加成功后,对话框会自动关闭。数据流展示列表会自动增加刚才新添加的数据流信息。



    到此,数据流模块就建立完成了。

   向OneNET平台上传数据点

    接下来就要进行数据点的上传了。上传数据点时需要参考协议规则说找到[1.1 说明文档]找到关      于MQTT项目中的设备终端接入协议-MQTT进行下载。



    下载的是一个word文档,打开之后找到[5.2消息发布]-[5.2.1 数据点上报]。



    数据类型采用JSON格式,主要看[数据类型1(type == 1)格式说明]。



    了解完publish报文格式后,找到之前[接入OneNET平台]教程的程序,添加上上传数据点的功能即可。
    
    修改mqtt.py文件,如下:
 

from simple import MQTTClient
from machine import Pin
import machine
import micropython
import json

#选择G4引脚
g4 = Pin(4, Pin.OUT, value=0)
# MQTT服务器地址域名为:183.230.40.39,不变
SERVER = "183.230.40.39"
#设备ID
CLIENT_ID = "deviceID"
#随便起个名字
TOPIC = b"TurnipRobot"
#产品ID
username='productID'
#产品APIKey:
password='APIKey'
state = 0
#要上报的数据点
message = {'datastreams':[{
'id':'temperature',
'datapoints':[{'value':35}]}
]}

def pubdata(data):
    j_d = json.dumps(data)
    j_l = len(j_d)
    arr = bytearray(j_l + 3)
    arr[0] = 1 #publish数据类型为json
    arr[1] = int(j_l / 256) # json数据长度 高位字节
    arr[2] = j_l % 256      # json数据长度 低位字节
    arr[3:] = j_d.encode('ascii') # json数据
    return arr
   
def sub_cb(topic, msg):
    global state
    print((topic, msg))
    if msg == b"on":
        g4.value(1)
        state = 1
        print("1")
    elif msg == b"off":
        g4.value(0)
        state = 0
        print("0")
    elif msg == b"toggle":
        state = 1 - state
        g4.value(state)
           
def main(server=SERVER):
    #端口号为:6002
    c = MQTTClient(CLIENT_ID, server,6002,username,password)
    c.set_callback(sub_cb)
    c.connect()
    c.subscribe(TOPIC)
    print("Connected to %s, subscribed to %s topic" % (server, TOPIC))
    #publish报文上传数据点
    c.publish('$dp',pubdata(message))
    print('publish message:',message)

    try:
        while 1:
            c.wait_msg()
    finally:
        c.disconnect()



    程序解析:

def pubdata(data):
    j_d = json.dumps(data)
    j_l = len(j_d)
    arr = bytearray(j_l + 3)
    arr[0] = 1 #publish数据类型为json
    arr[1] = int(j_l / 256) # json数据长度 高位字节
    arr[2] = j_l % 256      # json数据长度 低位字节
    arr[3:] = j_d.encode('ascii') # json数据
    return arr

c.publish('$dp',pubdata(message))
    设备使用publish报文来上传数据点。$dp为系统上传数据点的指令(2个字节的字符串)。

    运行结果:

找到设备管理页面,在tpyboardv202设备信息的操作列中,点击[查看详情]。

选择[数据展示],
选择数据流[temperature]信息行的最右侧展开小三角,查看详细数据点。
大家可根据上面学习到的内容进行扩展,比如接DHT11温湿度模块等各类传感器,上传温湿度、气压、光照等信息。
    OneNET云平台除了支持MQTT协议外,还支持HTTP、TCP透传等多种协议,大家可以尝试添加其他协议的产品进行智能物联的开发。

本帖子中包含更多资源

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: OneNet平台是一个物联网平台,旨在帮助用户连接、管理和控制各类物联网设备。在OneNet平台上,可以方便地上传数据点,使用户可以实时监测和分析设备的数据。 首先,对于OneNet平台,用户需先注册一个账号并登录。在登录后,用户可以创建设备并绑定到OneNet平台上。每个设备在OneNet平台上都有一个唯一的设备ID,用户需要在设备上进行相应的配置,将设备与网络连接起来,以便可以进行数据上传。 一旦设备成功连接到OneNet平台,用户可以使用设备ID和设备的API Key来进行数据上传。用户可以通过使用OneNet提供的RESTful API进行数据上传。首先,用户需要构建一个JSON格式的数据包,包含要上传数据点的信息。然后,用户可以使用HTTP POST请求,将数据包发送到OneNet平台的云端服务器。 在数据上传的过程中,用户需要注意数据格式的正确性和数据点的准确性。OneNet平台支持多种数据类型,如整数、浮点数、字符串等,用户在上传数据时需要将数据按照对应的类型进行转换和上传。此外,用户还可以为数据点设置一些其他的属性,如时间戳、数据单位等,以便更好地进行数据分析和可视化。 值得一提的是,OneNet平台还支持批量数据上传和历史数据查询。用户可以一次性上传多个数据点,减少数据上传的频率和流量消耗。同时,用户可以通过OneNet平台提供的API查询历史数据,了解设备的数据变化情况。 总之,通过OneNet平台上传数据点是一种方便快捷的方式,使用户可以实时监测和分析设备的数据,提高设备的管理和控制效率。 ### 回答2: OneNet平台是一个物联网云平台,可以方便地上传数据点。 首先,我们需要在OneNet平台上创建一个设备,并为设备生成一个唯一的设备ID和API Key。 然后,我们可以选择使用HTTP或者MQTT等协议来上传数据点。如果选择HTTP协议,我们可以通过发送HTTP请求将数据传输到OneNet平台。在HTTP请求中,我们需要将数据点的数值以及设备ID和API Key作为参数进行传递。OneNet平台会验证设备的身份,然后将数据点保存到数据库中。 另外,如果选择使用MQTT协议,我们可以通过建立一个MQTT连接来上传数据点。首先需要将设备ID和API Key配置到MQTT客户端中,然后通过MQTT发布者发布数据点的消息。OneNet平台会根据设备ID和API Key验证设备的身份,并将数据点保存到数据库中。 无论是使用HTTP还是MQTT协议,我们都可以在OneNet平台的设备管理界面中查看上传数据点。通过设备管理界面,我们可以查看数据点的实时数值、历史数据数据分析等信息,方便我们进行进一步的数据处理和分析。 总结来说,OneNet平台提供了多种方式上传数据点,方便我们通过物联网设备收集和管理数据,并进行进一步的数据分析和处理。 ### 回答3: OneNet是一个物联网平台,它提供了一种方式来上传数据点。在OneNet平台上,设备可以通过不同的方式将数据上传到云端。以下是一种常见的方法: 首先,设备需要与OneNet平台建立连接。可以通过使用平台提供的SDK或API来完成此操作。设备需要提供相应的认证信息,例如设备ID和API密钥,以便与平台进行身份验证。 一旦设备与OneNet平台建立了连接,它可以开始上传数据点。数据点可以是设备收集到的传感器数据或设备状态等信息。设备可以将数据点封装为JSON格式,然后使用API将其发送到OneNet平台OneNet平台接收到数据点后,会对其进行处理和存储。可以使用平台提供的设备管理功能,对上传数据进行分组和分类。此外,OneNet平台还提供了数据分析和可视化功能,可以方便地查看和分析上传数据点。 除此之外,OneNet平台还提供了一些其他功能来辅助数据上传,例如设备命令控制、设备升级和远程监控等。设备可以通过与OneNet平台的交互,实现更高级的物联网应用。 总结而言,OneNet平台提供了一种简单方便的方法来上传数据点。设备只需要建立连接并使用API发送JSON格式的数据点,即可将数据上传到云端,以便进行后续的处理和分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值