ThingSpeakにアクセスしてモジュールの安定度のテストをしています。無料のアカウントでのアクセスは15秒以上の間隔が必要で30秒のインターバルでアクセスして試しています。
データを送信しているmrubyスクリプトは以下のようにしています。
MATLAB Visualizationで直近1000個のアクセス間隔を集計してます。
readChannelID = 0;
readAPIKey = 'abc';
t1 = thingSpeakRead(readChannelID, 'ReadKey', readAPIKey, 'NumPoints',1000, 'OutputFormat','table');
[m,n] = size(t1);
for c = 1:m - 1
d = seconds(t1.Timestamps(c+1) - t1.Timestamps(c));
s(c) = d(1);
end
ma = max(s)
for c = 1:ma
v(c) = 0;
end
for c = 1:m - 1
v(s(c)) = v(s(c)) + 1;
end
plot(v, 'LineStyle','--','LineWidth',2,'Color','green','Marker','s');
一行追加してX軸の範囲を指定してみます。
xlim([30 ma+1])
棒グラフにしてみます。
bar(v);
xlim([30 ma+1])
配列を行列に変換してaccumarray関数で集計しても同じグラフになりました。
readChannelID = 0;
readAPIKey = 'abc';
t1 = thingSpeakRead(readChannelID, 'ReadKey', readAPIKey, 'NumPoints',1000, 'OutputFormat','table');
[m,n] = size(t1);
for c = 1:m - 1
d = seconds(t1.Timestamps(c+1) - t1.Timestamps(c));
s(c) = d(1);
end
B = reshape(s,[m-1,1])
A = accumarray(B,1);
bar(A);
xlim([30 ma+1])
無料アカウントでの使用はCPU利用時間に制限があり、データ量が多い場合は、できるだけ関数で処理するほうが有利なのかと思われます。
MATLABあまり良く分かってないので、よいこはまねしないでくださいね。