What is wrong with this code?

I want to send acceleration data from a mobile phone sensor to ThingSpeak. Error: URL is incorrectly formed, or the requested feature is not supported in this version of ThingSpeak.
[acc, tacc] = accellog(m);
xAcc = acc(:,1);
yAcc = acc(:,2);
zAcc = acc(:,3);
InitialTime = datetime(m.InitialTimestamp,'InputFormat','dd-MMM-yyyy HH:mm:ss.SSS');
AccelTime = InitialTime + seconds(tacc);
channelID = XXXXX;
writeKey = XXXXXXXXXX;
tStamps = AccelTime;
data=[xAcc,yAcc,zAcc];
thingSpeakWrite(channelID,data,'TimeStamp',tStamps,'WriteKey',writeKey)

回答(1 个)

Vinod
Vinod 2021-11-6

0 个投票

Thingspeak can only accept data sampled at 1hz or lower frequency. That is, tStamps should be at least 1s apart. My initial guess is that your accelerometer data is sampled at a much higher rate.

8 个评论

When I set the sampling rate to 1 Hz, more than one value per second is recorded. How to solve this?
For the position sensor everything works. The error occurs when writing data from the other sensors.
[lat, lon, t, speed, course, alt, horizacc] = poslog(m);
InitialTime = datetime(m.InitialTimestamp,'InputFormat','dd-MMM-yyyy HH:mm:ss.SS');
PosTime = InitialTime+seconds(t);
channelID = XXXXXX;
writeKey = XXXXXXXXXXXXX;
tStamps = PosTime;
data=[lat,lon,alt,speed];
thingSpeakWrite(channelID, data,'TimeStamp',tStamps,'WriteKey',writeKey);
Perhaps consider using retime:
newData=retime(myData,'secondly','mean');
This function solved the problem. Thank you.
Is it possible to record data in real time without a paid licence? I am using a loop for this, but I get the error 'requests are too frequent'.
"Real time" means different things for different people. An RF engineer who is measuring phenomena in the Ghz or Thz range has a very different defintion of real time than does an engineer measuring heat transfer across a large body with high thermal capacity.
What is the timescale of the phenomena you are measuring? If you are looking to store raw accelerometer data at over 1Hz, you might be better served by something like the Arduino IO support package. If you are looking to do some feature detection on the edge node based on accelerometer data and send the feature changes to the cloud, when the rate of change of the features are at a longer timescale, ThingSpeak can meet your needs.
If you give more detail of your project someone can guide you towards the right solution.
I want to update the accelerometer data on ThingSpeak every 1 second.
That is possible.
If you have an unstable or slow internet connection, it might be that the data you send from your device does not reach the servers exactly 1s apart. You might want to add a 5-10% buffer to factor in network latencies.

请先登录,再进行评论。

社区

更多回答在  ThingSpeak Community

类别

帮助中心File Exchange 中查找有关 ThingSpeak 的更多信息

产品

版本

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by