如何使用Curl通过HTTP API向ThingsBoard IoT平台设备发送多组数据?
解决ThingsBoard HTTP API发送多组遥测数据的问题
别担心,你遇到的其实是个常见的小误解——设备的唯一$ACCESS_TOKEN和发送多组数据的格式完全不冲突,你只需要在请求的JSON体中添加多个键值对,同时保持使用你自己设备的token即可。
正确的命令示例
直接修改你原来的单数据请求,在JSON对象里加入第二个数值字段就行,比如假设你要发送photoresistor和另一组比如temperature的数据:
curl -v POST --data "{\"photoresistor\":10,\"temperature\":25}" https://thingsboard.cloud/api/v1/nIjlT58Xo81AdU2Pwymm/telemetry --header "Content-Type:application/json"
为什么这个能行?
- 你的设备token(
nIjlT58Xo81AdU2Pwymm)只是用来验证你有权限向该设备上报数据,不管你发1组还是10组数据,都用同一个token。 - 核心是请求体的JSON结构:只要是合法的JSON对象,每个键对应一个遥测参数的名称,值是对应的数值,键值对之间用逗号分隔,ThingsBoard就能正确解析并存储多组数据。
更易读的写法(避免转义双引号)
如果觉得转义双引号麻烦,可以用多行JSON的写法,这样更不容易出错:
curl -v POST https://thingsboard.cloud/api/v1/nIjlT58Xo81AdU2Pwymm/telemetry \ --header "Content-Type:application/json" \ --data '{ "photoresistor": 10, "temperature": 25 }'
排查小提示
如果之前尝试多数据格式失败,大概率是JSON语法错误:
- 确保所有键名和字符串都用双引号(不能用单引号)
- 键值对之间必须用逗号分隔,最后一个键值对后面不要加多余的逗号
- 可以先把JSON内容单独拿出来校验合法性,确保格式正确
内容的提问来源于stack exchange,提问作者Taha AkhlaghPasndi
相关产品推荐
相关产品推荐

