View RSS Feed


Android client ThingSpeak extension for MIT Application Inventor 2

Rate this Entry
The following attached file contains a ThingSpeak client extension Name:  IconTS.png
Views: 2841
Size:  785 Bytes that allows one to easily make use of the Read and Write features of the ThingSpeak cloud service provided by MathWorks in such a manner that programmer is able to transparently make use of the service without having to deal with much details of the implementation in the code side. With the App - also attached - you can easily check the extension working on a friendly interface:

Click image for larger version. 

Name:	AppRunning.png 
Views:	531 
Size:	66.5 KB 
ID:	153144

Essentially ThingSpeak is a Web server on which data is read and written via GET commands of the Http protocol. All replies come on the JSon format in raw text with no formatting, which means that no LF or CR characters are added, as can be seen on the left side of the following picture:

Click image for larger version. 

Name:	JSonFormatter.png 
Views:	159 
Size:	70.0 KB 
ID:	153161
( picture taken form Jsonformatter )

All you have to do is subscribe to the ThingSpeak website, create a channel, and take note of the following data automatically generated:

Click image for larger version. 

Name:	ThingSpeak.png 
Views:	144 
Size:	55.6 KB 
ID:	153171

If you are not going to use multiple fields simultaneously, you can configure the channel to use only 1 of the 8 fields available, which would also reduce the size of the JSON structure:

Click image for larger version. 

Name:	Channel.png 
Views:	112 
Size:	221.7 KB 
ID:	153199

It is important to note that all data sent and received are in the ASCII format at the URL body, which means that if one wish provide extra security, it should be considered any kind of cyphering or even cryptography in order to atleast detect whether data was maliciously corrupted or not. Another poit to remark is that parsing was performed without using any JSon library, which means that if on the one hand the structural integrity of the JSON format is not checked out, on the other hand it means that tasks are performed lightweight, not wasting core processing if application require update realtime.

Here's an overview of the "source code" or rather, "source blocs" of the above demo application.
That's all you need, nothing else:

Click image for larger version. 

Name:	AppProject.png 
Views:	173 
Size:	78.6 KB 
ID:	153145

Below, a snapshot of the components:

Click image for larger version. 

Name:	Components.png 
Views:	162 
Size:	96.9 KB 
ID:	153149

Here, a snippet showing how much of the boring coding task can be avoided by customer, once it is embedded on the extension itself:

Click image for larger version. 

Name:	Snippet.png 
Views:	130 
Size:	43.9 KB 
ID:	153170

This project is also available on Github repository, at which releases will be updated.
Feel free to make experiments and give feedback.

Parameters to Fill:
  • Channel: A number containing 6 or 7 decimal digits which is the ID of the channel
  • ReadKey: The alphanumerical key provided by ThingSpeak to read the channel you have just created
  • WriteKey: The alphanumerical key provided by ThingSpeak to write at the channel you have just created
  • Field: One of the 8 available at each channel
  • Value (w): The value (atually, a string) to be stored at the cloud service
  • Security: The mode you selected to grant access to the channel (public/ private)

Returned parameters:
  • TimeStamp: Date-Time of the last value updated to cloud server
  • Value (r): Value got from cloud server (Read:Field content / Write:Opperation succeeded)
  • Status: Just to trace some inner status of the component during execution
Attached Thumbnails Attached Files
Tags: None Add / Edit Tags