How do I write to a ThingSpeak channel from a Raspberry pi via code deployed using the Matlab Coder?

I am making use of the Matlab Coder to deploy Matlab functionality to a Raspberry pi. I would like to be able to deploy the ability to write to a ThingSpeak channel from the pi. I realise that this is possible using Simulink (via the ThingSpeak block) but was wondering if there is a simple way to do this via code deployed using the Matlab Coder. I have tried the obvious and found that the Matlab Coder does not recognise the ThingSpeakWrite command. However, it also doesn’t appear to be very straightforward to deploy http methods to enable updating the channel via the POST method. Any advice welcome.

1 Comment

Using curl via the system command deploys via the coder without any problems. Not sure if it the most sensible way but does enable updating of a thingSpeak channel and is very easy to implement. Example code below adds random number to field 1 of channel.
% raspberry pi object
r = raspi();
% log file
fid = fopen( 'logFile.log', 'w' );
% write random number to thingSpeak channel
v = rand;
commandStr = [ 'sudo curl -s "https://api.thingspeak.com/update.json?api_key=<your api key here>&field1=' sprintf( '%f', v ) '"' ];
result = system( r, commandStr );
% log command
fprintf( fid, '%s \n', commandStr );
% log result
fprintf( fid, '%s \n', result );
% close log
fclose( fid );

Sign in to comment.

Answers (1)

As you said, there is a block in the Raspberry Pi Support Package that you can use.
Curious why you don't want to use the built-in blocks.

5 Comments

Hi Vinod, From what I recall I was experimenting with deploying code via simulink and also via the Matlab Coder. I was making more use of the Matlab Coder and wanted a way to update a thingSpeak channel without relying on simulink?
Do your http requests work via a browser?
If so does using the curl command from the Pi command prompt also work with the http request?
John, thanks man for your brilliance! I can now update my thingspeak channel using the pi via code deployed using MATLAB coder. I have been struggling for months. Appreciated!!!

Sign in to comment.

Communities

More Answers in the  ThingSpeak Community

Asked:

on 19 Jun 2019

Commented:

on 24 Nov 2020

Community Treasure Hunt

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

Start Hunting!