MQTT发布与JSON Thingspeak负载

20视图(30天)
MQTT发布有效负载格式的客户在我的物联网设备是JSON。它能够只发布一个属性像{“温度”:25}。这个{“名称”:<价值>}JSON格式不能改变我的设备上。所以它不能转换为纯文本field1 = 25或25。如何发布JSON有效载荷从Thindspeak我的设备?
我试着将“name”转换为“field1”在我的设备的负载和发布到通道饲料,Thingspeak不接受作为一个有效的数据,没有可视化仪表板;
主题:/ < channelID > /发布渠道
有效载荷:{25}“field1”:
或者我试着与我的“温度”设备负载和发布到频道领域饲料,它不工作,;
主题:渠道/ / field1 < channelID > /发布/字段
有效载荷:{25}“温度”:
而不是我的设备,当我试着那些PC MQTT客户机软件之一,致力于我的频道!
主题:/ < channelID > /发布渠道
有效载荷:field1 = 25
主题:渠道/ / field1 < channelID > /发布/字段
有效载荷:25
如何使用JSON格式吗?
注:
  1. 我不能用我写在MQTT发布API密匙。我总是试图添加关键的主题行通道/ < channelID > /发布/ < writeAPIKEY >。发布到这个话题时发生错误的连接。我看不出在MQTT API文档如何使用API密钥。这与我有关JSON的问题吗?
  2. 我的频道是私有的。

接受的答案

克里斯托弗Stapels
克里斯托弗Stapels 2023年2月15日
两种方法可以自动触发代码:
反应 (在数据插入)
TimeControl (集团数据处理自去年工作)

更多的答案(2)

克里斯托弗Stapels
克里斯托弗Stapels 2023年2月13日
你是正确的,ThingSpeak需要有特定的格式fieldx =你的负载。你可以看到所有正确的参数 MQTT API文档
你能考虑使用REST API吗?
发布到一个字段 可能成为可能。这里的有效载荷是完全不使用fieldx = 1。然而,ThingSpeak可能以字段值为整个字符串即“温度”:25。然后实地也没自动工作,但是你可以编写一个MATLAB脚本(在ThingSpeak),去掉“温度”这个词,然后画出值。
当前版本的MQTT API不使用API的关键主题或负载。不添加一个API密匙,连接将被拒绝。我认为因为你成功的桌面版设备设置正确。

Mazlum Serkan Urkmez
Mazlum Serkan Urkmez 2023年2月14日
编辑:克里斯托弗Stapels 2023年2月14日
@Christopher Stapels 谢谢你的回应。
你的回答;这段代码的工作原理;读通道从field1读取数据,分析,编写数据field1写通道。
设备发布到MQTT JSON载荷。
主题:渠道/ / field1 < readChannelID > /发布/字段
有效载荷:{“温度”:30}
readChannelID = (< readChannelID >);
writeChannelID = (< writeChannelID >);
writeAPIKey =“< writeAPIKey >”;
% % field1的读取数据读通道输出一次表。
data = thingSpeakRead (readChannelID“字段”[1],OutputFormat =“时间表”);
disp(数据);
% % 1中的值。行作为数组。
data =数据。(1);
disp(数据);
% %去除不必要的字符
data =取代(数据、“温度”:“,);
data =取代(数据、“{”,);
data =取代(数据、“}”,);
data =取代(数据、“{”,);
data =取代(数据、“}”,);
% % 1。唯一索引的数组。
数据={1}的数据;
% %转换为数值
data = str2num(数据);
disp(数据);
% %写的最后价值field1写通道。
thingSpeakWrite (writeChannelID、数据“字段”[1],“WriteKey”,writeAPIKey);
显示输出:
时间戳Scaklk
____________________ ______________________
14 - 2023年2月——20:42:39{'{“温度”:30}}
{'{“温度”:30}}
30.
如何自动Matlab代码为每个发布的新数据设备运行吗?

类别

找到更多的在写数据通道帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!