Sending ECG Data to ThingSpeak
Show older comments
Hi,
I am trying to send ECG datd to ThingSpeak, however, at one sample per 15seconds it is rather useless when I have 650k samples.
What I want to do is send a certain amount of samples before and after each R peak (I am usung find peaks to locate R-peaks after filtering the data). That way I can reduce the amount of samples sent and get more ECG signals inside the graph.
Can anyone advise?
PS - Patient 101 is data from MIT database.
Thank you in advance!
Gabriel N. Nicolau
My current code is below:
% clc
% clear all
% close all
%load ( 'patient100.csv');
dat=csvread('patient100.csv');
figure;
subplot(4,1,1)
plot(dat)
findpeaks(dat,'MinPeakHeight',0.5,'MinPeakDistance',200);
title('Original')
x=lowpass(dat,15,360);
y=highpass(x,10,360);
subplot(4,1,2)
plot(x)
findpeaks(x,'MinPeakHeight',0.5,'MinPeakDistance',200);
title('Low-Pass')
subplot(4,1,3)
plot(y)
findpeaks(y,'MinPeakHeight',0.3,'MinPeakDistance',200);
title('High-Pass')
y_diff=diff(y);
y_abs = y_diff.^2;
subplot(4,1,4)
plot(y_abs);
%for i=1: 1/length(dat)*100000: length(dat)*10000+ 1/length(dat)*100000;
%t=dat(dat(i)>dat(i+1));
%end
yy = y';
%%% DATA TO BE SENT TO THINGSPEAK CHANNEL
a = yy;
b = 0;
c = 650000;
x = [a];
chId = 622307;
writeKey = 'XXXYYYZZZ';
tOut = 99999999;
% tStamps = [datetime('now')-minutes(899):minutes(1):datetime('now')]';
for i = 1:c
pause(15)
b = x(i)
thingSpeakWrite(chId,[b],'WriteKey',writeKey)
end
1 Comment
ekta yadav
on 20 Nov 2021
Hi I am working on the same thing but stuck on few things.
- Can you tell me how did you calculated number of samples of MIT database.
- How u sent numeric values of heart beat.
Thanks in advance.
Accepted Answer
More Answers (0)
Communities
More Answers in the ThingSpeak Community
Categories
Find more on ThingSpeak in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!