主要内容

本页采用了机器翻译。点击此处可查看英文原文。

thingSpeakWrite

将数据写入 ThingSpeak 通道

说明

thingSpeakWrite(channelID,data,'WriteKey','channel write API key') 将数据写入指定通道。写入 API 密钥指定为以逗号分隔的对,由 'WriteKey' 和表示通道写入密钥的字符向量或字符串组成。

示例

thingSpeakWrite(___,Name,Value) 使用一个或多个 Name,Value 对参量指定的附加选项。

示例

response = thingSpeakWrite(___) 在写入操作成功完成后返回 ThingSpeak™ 服务器提供的响应。

注意

如果您正在使用 thingSpeakWrite 编写数据表,并且您有一个与此通道关联的 React,那么当 Condition TypeCondition 匹配时,您的 React 只会触发一次,即使 Condition 匹配多次。

示例

示例

全部折叠

将单个数值写入通道的字段 1。

thingSpeakWrite(17504,2.3,'WriteKey','23ZLGOBBU9TWHG2H')

将数值写入通道的前四个连续字段 [1,2,3,4]

response = thingSpeakWrite(17504,[2.3,1.2,3.2,0.1],'WriteKey','23ZLGOBBU9TWHG2H')

将非数字数据写入通道的前三个连续字段 [1,2,3]

thingSpeakWrite(17504,{2.3,'on','good'},'WriteKey','23ZLGOBBU9TWHG2H')

将混合值写入通道的非连续字段 [1,4,6]

thingSpeakWrite(17504,'Fields',[1,4,6],'Values',{2.3,'on','good'},'WriteKey','23ZLGOBBU9TWHG2H')

更新三个字段,并为条目写入纬度、经度和海拔数据。

thingSpeakWrite(17504,[1.1,2.3,4],'Location',[-40,23,35],'WriteKey','23ZLGOBBU9TWHG2H')

将纬度、经度和海拔数据写入通道,而无需向字段添加值。

thingSpeakWrite(17504,'Location',[-40,23,3500],'WriteKey','23ZLGOBBU9TWHG2H')

为写入通道的值写入时间戳。提供的时间戳被解释为当地时间。

tStamp = datetime('now')
thingSpeakWrite(17504,[2.3,1.2,3.2,0.1],'WriteKey','23ZLGOBBU9TWHG2H','TimeStamp',tStamp)

将数据矩阵写入通道的前三个字段。提供的时间戳被解释为当地时间。

% Generate Random Data
data = randi(10,10,3);

% Generate timestamps for the data
tStamps = datetime('now')-minutes(9):minutes(1):datetime('now');

channelID = 17504; % Change to your Channel ID
writeKey = '23ZLGOBBU9TWHG2H'; % Change to your Write API Key

% Write 10 values to each field of your channel along with timestamps
thingSpeakWrite(channelID,data,'TimeStamp',tStamps,'WriteKey',writeKey)

将数据时间表写入通道的前两个字段。提供的时间戳被解释为当地时间。

% Generate random data
dataField1 = randi(10,10,1);
dataField2 = randi(10,10,1);

% Generate timestamps for the data
tStamps = [datetime('now')-minutes(9):minutes(1):datetime('now')]';

% Create timetable
dataTable = timetable(tStamps,dataField1,dataField2);
channelID = 17504; % Change to your channel ID
writeKey  = '23ZLGOBBU9TWHG2H'; % Change to your Write API Key

% Write 10 values to each field of your channel along with timestamps
thingSpeakWrite(channelID,dataTable,'WriteKey',writeKey)

输入参数

全部折叠

通道标识号,指定为正整数。

要写入通道的数据,指定为数值标量或数值向量、元胞数组、元胞数组字符串、表或时间表。如果指定标量数据,则该值将写入通道中的第一个字段(字段 1)。对于向量或一维元胞数组,数据将写入从字段 1 开始的连续字段。

示例: thingSpeakWrite(17504,{2,3,'on','good'},'WriteKey','channel write api key');

通道的写入 API 密钥,指定为以逗号分隔的对,由 'WriteKey' 和表示通道写入 API 密钥的字符向量组成。将数据写入通道需要写入 API 密钥。您可以在 ThingSpeak 通道视图的 API Keys 选项卡上找到通道的写入 API 密钥。为了方便起见,请将您的_API_密钥保存在变量中。

示例: thingSpeakRead(12397,'WriteKey','XXXXXXXXXXXXXXXX');

名称-值参数

全部折叠

将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

如果使用的是 R2021a 之前的版本,请使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: thingSpeakWrite(17504,[1.1,2.2],'Fields',[1,2,3],'WriteKey','channel write api key');

通道字段 ID,指定为由 'Fields' 和 1×n 正整数值组成的逗号分隔的对。

示例: thingSpeakWrite(17504,[2.3,1.2,3.2,0.1],'Fields',[1,2,3,4],'WriteKey','channel write api key');

数据值,指定为以逗号分隔的对,由 'Values' 和数值标量、数值向量、元胞数组、元胞数组字符串、表或时间表值组成。指定要写入由 'Fields' 参数指定的通道字段的数据。

示例: thingSpeakWrite(17504,'Fields',[1,3,4],'Values',[1,2,3],'WriteKey','channel write api key');

通道中数据的位置信息,指定为由 'Location' 和数值数组组成的逗号分隔的对。位置信息包括纬度、经度和海拔。此示例为字段 1 提供的三个点分别写入相同的位置信息。

示例: thingSpeakWrite(17504,[2.3,1.2,3.2,0.1],'Location',[-40,23,200],'WriteKey',' write api key');

服务器连接超时时间,指定为由 'TimeOut' 和数值组成的逗号分隔的对。超时时间是允许 thingSpeakRead 在请求终止之前连接到服务器的秒数。

示例: thingSpeakWrite(17504,[2.3,1.2,3.2,0.1],'WriteKey','write API key','Timeout',15);

写入写入通道中的字段的数据值的时间戳,指定为由 'Timestamp' 和一个值组成的逗号分隔的对。该值必须是 MATLAB® datetime 值。所有时间戳必须是唯一的。如果您提交重复的时间戳,您的所有更新都会被拒绝,否则只有通道中已有时间戳的更新才会被拒绝。

注意

如果您已指定 'Timestamp' 作为时间表,请不要指定 'Values'

示例: thingSpeakWrite(17504,[2.3,1.2,3.2,0.1],'WriteKey','channel write api key','Timestamp',[datetime('2/6/2018 9:27:12','format','MM/dd/uuuu HH:mm:ss')]);

数据类型: datetime

输出参量

全部折叠

写入操作的通道响应,以具有表中所示顺序的字段的结构返回。该结构的字段指示写入通道字段的值:

字段描述
FieldX

FieldX 条目的数据,最多 8 个字段

Latitude

写入操作的自由度

Longitude

写入操作的经度

Channel ID

通道识别号

Created

写入操作和源条目的日期时间

Last EntryID

最新通道更新的条目 ID

Created

通道创建日期的日期时间

Updated

通道设置上次更改的日期时间

Last EntryID

最新通道更新的条目 ID

Altitude

写入操作的提升

限制

  • 所有时间戳必须是唯一的。您无法写入具有与通道中现有数据匹配的时间戳的新数据。

  • 根据您的许可证类型,通道允许的更新频率受到限制。请参阅常见问题如何购买了解具体信息。包含多个条目的更新(例如表格或时间表中的条目)受限于较慢的更新频率。对于免费账户的用户,单次调用 thingSpeakWrite 的消息数量限制为 960 条。对于付费账户的用户,限制为 14,400 条消息。尝试以超过允许限制的速度发布将返回以下错误:请求太频繁。有关更多信息,请参阅文档中的限制。

详细信息

全部折叠

版本历史记录

在 R2019a 中推出

另请参阅

函数