ThingsBoard平台通过MQTT协议API接入设备

备注:可通过MQTTbox或者MQTT.fx工具插件模拟设备接入

一:MQTT连接

  1. 连接地址:tcp://192.168.0.30:1883
  2. tcp:通讯协议
  3. 192.168.0.30:服务器地址
  4. 1833:端口地址
  5. client ID:设备ID
  6. User Name:设备访问令牌

二:键值格式

  1. 默认情况选,thingsBoard支持JSON中的键值内容。键始终是一个字符串,而值可以使字符串,布尔值,双精度,长整数或JSON。也可以使用自定义二进制格式或某些序列化框架。
{
 "stringKey":"value1", 
 "booleanKey":true, 
 "doubleKey":42.0, 
 "longKey":73, 
 "jsonKey": {
	   "someNumber": 42,
	   "someArray": [1,2,3],
	   "someNestedObject": {"key": "value"}
	}
}

三:遥测上传API

  1. 连接地址:v1/devices/me/telemetry
  2. 支持最简单数据格式:
{"key1":"value1", "key2":"value2"}
[{"key1":"value1"}, {"key2":"value2"}]

备注 :在这种情况下,中台服务器端时间戳将分配给上传的数据!如果设备能够或得设备端时间戳,则可以使用一下格式

{"ts":1451649600512, "values":{"key1":"value1", "key2":"value2"}}

四:属性API(ThingsBoard属性API使设备能够)

将设备端设备属性上载到中台服务器端
从中台服务器端请求客户属性和共享设备属性
从中台服务器端订阅共享的设备属性

  1. 将属性更新发布到中台服务器端:
    连接地址:v1/devices/me/attributes
    支持最简单数据格式:
{"key1":"value1", "key2":"value2"}
[{"key1":"value1"}, {"key2":"value2"}]
  1. 从中台服务器端请求属性值:
    设备端订阅地址:v1/devices/me/attributes/response/+
    请求地址:v1/devices/me/attributes/request/$request_id

    其中$request_id为整数请求标识符:如1
    从中台服务器端订阅属性更新(共享设备属性)
    订阅地址:v1/devices/me/attributes

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将ESP32-C3通过MQTT协议接入OneNet平台,您需要完成以下步骤: 1. 创建OneNet账号并登录。 2. 创建设备,为设备选择MQTT协议,获取设备ID和API Key。 3. 在ESP32-C3上安装MQTT库,例如PubSubClient库。 4. 编写ESP32-C3的代码,包括连接WiFi和MQTT服务器、发布数据到OneNet云平台等。 以下是一个简单的例子,演示了如何使用ESP32-C3通过MQTT协议连接到OneNet平台: ```c++ #include <WiFi.h> #include <PubSubClient.h> const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; const char* mqtt_server = "mqtt.heclouds.com"; const int mqtt_port = 6002; const char* mqtt_user = "your_DEVICE_ID"; const char* mqtt_password = "your_API_KEY"; const char* topic = "/topic"; WiFiClient espClient; PubSubClient client(espClient); void setup() { Serial.begin(9600); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } client.setServer(mqtt_server, mqtt_port); client.setCallback(callback); while (!client.connected()) { if (client.connect(mqtt_user, mqtt_password)) { Serial.println("Connected to MQTT broker"); } else { Serial.print("Failed to connect to MQTT broker, rc="); Serial.print(client.state()); Serial.println(" retrying..."); delay(5000); } } client.subscribe(topic); } void loop() { if (!client.connected()) { Serial.println("Reconnecting to MQTT broker..."); while (!client.connected()) { if (client.connect(mqtt_user, mqtt_password)) { Serial.println("Connected to MQTT broker"); client.subscribe(topic); } else { Serial.print("Failed to connect to MQTT broker, rc="); Serial.print(client.state()); Serial.println(" retrying..."); delay(5000); } } } client.loop(); } void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); } Serial.println(); } ``` 在这个例子中,我们使用WiFi连接到互联网,使用PubSubClient库连接到OneNet的MQTT服务器,然后订阅主题,并在回调函数中打印收到的消息。您可以根据您的需求修改代码,例如修改主题,发布消息等。 需要注意的是,OneNet的MQTT服务器需要使用TLS/SSL加密,因此您需要使用MQTT库的TLS版本,例如PubSubClientSecure库。同时,OneNet的MQTT服务器需要使用特定的端口6002,而不是标准的MQTT端口1883。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值