ThingSpeak 그래프

12943 단어 ThingspeakIoTmatlab
기본 그래프



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');

좋은 웹페이지 즐겨찾기