Main Content

thingSpeakWrite

ThingSpeak チャネルへのデータの書き込み

説明

thingSpeakWrite(channelID,data,'WriteKey','channel write API key') は、指定されたチャネルにデータを書き込みます。API 書き込みキーは、'WriteKey' とチャネルの書き込みキーを表す文字ベクトルまたは string で構成されるコンマ区切りのペアとして指定します。

thingSpeakWrite(___,Name,Value) は、1 つ以上の Name,Value のペアの引数によって指定された追加オプションを使用します。

response = thingSpeakWrite(___) は、書き込み操作が正常に完了したときに ThingSpeak™ サーバーから提供される応答を返します。

すべて折りたたむ

チャネルのフィールド 1 に単一の数値を書き込みます。

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

チャネルの最初の 4 つの連続するフィールド [1,2,3,4] に数値を書き込みます。

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

チャネルの最初の 3 つの連続するフィールド [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')

3 つのフィールドを更新し、エントリの緯度、経度、高度のデータを書き込みます。

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)

チャネルの最初の 3 つのフィールドにデータの行列を書き込みます。指定したタイムスタンプは現地時間として解釈されます。

% 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)

チャネルの最初の 2 つのフィールドにデータの timetable を書き込みます。指定したタイムスタンプは現地時間として解釈されます。

% 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)

入力引数

すべて折りたたむ

チャネルの識別番号。正の整数として指定します。

チャネルに書き込むデータ。数値スカラー、数値ベクトル、cell 配列、cell 配列の string、table、または timetable として指定します。スカラー データを指定した場合、チャネルの最初のフィールド (フィールド 1) に値が書き込まれます。ベクトルまたは 1 次元 cell 配列の場合は、フィールド 1 から順番に連続するフィールドにデータが書き込まれます。

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

チャネルの API 書き込みキー。'WriteKey' とチャネルの API 書き込みキーを表す文字ベクトルで構成されるコンマ区切りのペアとして指定します。API 書き込みキーはデータをチャネルに書き込むのに必要です。チャネルの API 書き込みキーは、ThingSpeak チャネル ビューの [API Keys] タブにあります。チャネルの 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' と数値スカラー、数値ベクトル、cell 配列、cell 配列の string、table、または timetable の値で構成されるコンマ区切りのペアとして指定します。'Fields' パラメーターで指定したチャネルのフィールドに書き込むデータを指定します。

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

チャネルのデータの位置情報。'Location' と数値配列で構成されるコンマ区切りのペアとして指定します。位置情報には、緯度、経度、高度が含まれます。次の例では、フィールド 1 に提供される 3 つの点のそれぞれに対して同じ位置情報を書き込みます。

例: 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 の値でなければなりません。タイムスタンプはすべて一意でなければなりません。重複するタイムスタンプを送信した場合はすべての更新がされ、それ以外の場合はチャネルに既に同じタイムスタンプがある更新だけが破棄されます。

メモ

'Values' を timetable で指定した場合は、'Timestamp' は指定しないでください。

例: 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

書き込み操作の高度

制限

  • タイムスタンプはすべて一意でなければなりません。チャネルの既存のデータとタイムスタンプが一致する新しいデータを書き込むことはできません。

  • チャネルの許容される更新頻度にはライセンス タイプに応じた制限があります。詳細については、Frequently Asked Questions および How to Buy を参照してください。table や timetable のように複数のエントリがある場合の更新については、更新頻度が低く制限されます。無料アカウントのユーザーの場合、thingSpeakWrite の 1 回の呼び出しにおけるメッセージ数の上限は 960 です。有料アカウントのユーザーの場合、メッセージ数の上限は 14,400 です。許容される上限を超えるレートでパブリッシュしようとすると、次のエラーが返されます。「要求の頻度が高すぎます。詳細については、ドキュメンテーションの「制限」を参照してください。」

詳細

すべて折りたたむ

ThingSpeak

ThingSpeak は IoT 解析プラットフォーム サービスであり、これによってクラウドにあるライブ データ ストリームの集計、可視化、解析が可能になります。詳細については、License Options および Commercial Use を参照してください。

バージョン履歴

R2019a で導入

参考

関数