ThingSpeakのグラフ


デフォルトのグラフ

OptionでDaysを1

OptionでDaysを1でAvergeを60

OptionでResultsを600でAvergeを60

MATLAB Visualization編

二つのデータを重ねてみました。

bhReadChannelID = ;
bhFieldID1 = 2;
bhReadAPIKey = '';

myReadChannelID = ;
myFieldID1 = 2;
myReadAPIKey = '';

%% Read Data %%

now = datetime('now');
% after 4 o'clock
start = hour(now) * 60 + minute(now) - 1 - 60 * 4;

bhTT = thingSpeakRead(bhReadChannelID, 'Field', bhFieldID1, 'NumMinutes', start, 'ReadKey', bhReadAPIKey, 'outputFormat','timetable');
myTT = thingSpeakRead(myReadChannelID, 'Field', myFieldID1, 'NumMinutes', start, 'ReadKey', myReadAPIKey, 'outputFormat','timetable');

TT = synchronize(bhTT,myTT,'union','linear');

plot(TT.Timestamps, TT.FieldLabel2_bhTT,...
    TT.Timestamps, TT.FieldLabel2_myTT);

legend('BH1750','BS120');

照度は数字が大きくなるので対数グラフにしてみました。

now = datetime('now');
start = hour(now) * 60 + minute(now) - 1 - 60 * 4;
[bhdata, bhtime] = thingSpeakRead(bhReadChannelID, 'Field', bhFieldID1, 'NumMinutes', start, 'ReadKey', bhReadAPIKey);

ax1 = subplot(1,1,1)
plot(bhtime, bhdata);
set(ax1,'yscale','log');
legend('BH1750', 'Location', 'northwest');

対数にしないとこうなります。

日の出の線を引いてみました

[ymin,minidx] = min(bhtime);
rise = datenum('17-May-2020 04:35:00') - datenum(ymin);
xline(ymin + rise, 'color', 'red');
ylabel('Lux');
legend('BH1750', '4:35', 'Location', 'northwest');

xlineの値の日時の扱いがよくわからなく、datenumを直接入れるとエラーになるのでこうしました。もっと良い方法がありそうですが。

日の出前の時間は市民薄明と言います。

判例ではなく線に文字を書いてみます。

ax1 = subplot(1,1,1)
p1 = plot(bhtime, bhdata);
set(ax1,'yscale','log');
[ymin,minidx] = min(bhtime);
rise = datenum('17-May-2020 04:35:00') - datenum(ymin);
xs = xline(ymin + rise, '-', {'Sunrise'}, 'color', 'red');
xs.LabelVerticalAlignment = 'bottom';
nan = datenum('17-May-2020 11:37:00') - datenum(ymin);
xt = xline(ymin + nan, '-', {'Meridian', 'transit'}, 'color', 'red');
xt.LabelVerticalAlignment = 'bottom';
ylabel('Lux');
legend([p1], 'BH1750', 'Location', 'south');