Simple demo for plotly library

Dependencies:   EthernetInterface mbed-rtos mbed plotly

A basic example of streaming data to a chart on plot.ly

Assumes a wired ethernet connection with direct internet access and a DHCP server.

Chart URL and status is output via the usb serial port at 115200.

You will need to modify the plot.ly account information at the start of main.cpp to match your account on http://plot.ly

Committer:
AndyA
Date:
Fri Jul 11 10:11:00 2014 +0000
Revision:
0:c7329ea5d8d5
Child:
1:5e7145bb2184
First commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AndyA 0:c7329ea5d8d5 1
AndyA 0:c7329ea5d8d5 2 #include "mbed.h"
AndyA 0:c7329ea5d8d5 3 #include "EthernetInterface.h"
AndyA 0:c7329ea5d8d5 4 #include "plotly.h"
AndyA 0:c7329ea5d8d5 5
AndyA 0:c7329ea5d8d5 6 Serial pc(USBTX,USBRX);
AndyA 0:c7329ea5d8d5 7
AndyA 0:c7329ea5d8d5 8 EthernetInterface eth;
AndyA 0:c7329ea5d8d5 9
AndyA 0:c7329ea5d8d5 10 // plotly account details
AndyA 0:c7329ea5d8d5 11 char PlotlyUsername[] = "YoutUsername";
AndyA 0:c7329ea5d8d5 12 char PlotlyAPIToken[] = "YourAPIKey";
AndyA 0:c7329ea5d8d5 13 char streaming_token[] = "YourStreamToken";
AndyA 0:c7329ea5d8d5 14 char fileName[] = "Mbed Test Chart";
AndyA 0:c7329ea5d8d5 15
AndyA 0:c7329ea5d8d5 16 plotly graph = plotly(PlotlyUsername, PlotlyAPIToken, streaming_token, fileName);
AndyA 0:c7329ea5d8d5 17
AndyA 0:c7329ea5d8d5 18 void plotSetup()
AndyA 0:c7329ea5d8d5 19 {
AndyA 0:c7329ea5d8d5 20 graph.log_level = 2; // turn on status output
AndyA 0:c7329ea5d8d5 21 graph.maxpoints = 72;
AndyA 0:c7329ea5d8d5 22 if (graph.init()) {
AndyA 0:c7329ea5d8d5 23 graph.openStream();
AndyA 0:c7329ea5d8d5 24 }
AndyA 0:c7329ea5d8d5 25
AndyA 0:c7329ea5d8d5 26 }
AndyA 0:c7329ea5d8d5 27
AndyA 0:c7329ea5d8d5 28 // Generate a sample chart
AndyA 0:c7329ea5d8d5 29 void plotGenerateDataPoint()
AndyA 0:c7329ea5d8d5 30 {
AndyA 0:c7329ea5d8d5 31 static int counter = 0;
AndyA 0:c7329ea5d8d5 32 float yValue = sin(counter*3.14159/180);
AndyA 0:c7329ea5d8d5 33 graph.plot(counter, yValue);
AndyA 0:c7329ea5d8d5 34 counter+=5;
AndyA 0:c7329ea5d8d5 35 }
AndyA 0:c7329ea5d8d5 36
AndyA 0:c7329ea5d8d5 37
AndyA 0:c7329ea5d8d5 38 int main()
AndyA 0:c7329ea5d8d5 39 {
AndyA 0:c7329ea5d8d5 40 pc.baud(115200);
AndyA 0:c7329ea5d8d5 41
AndyA 0:c7329ea5d8d5 42 pc.printf("Connecting network...\n");
AndyA 0:c7329ea5d8d5 43
AndyA 0:c7329ea5d8d5 44 eth.init();
AndyA 0:c7329ea5d8d5 45 eth.connect();
AndyA 0:c7329ea5d8d5 46
AndyA 0:c7329ea5d8d5 47 char *ipAddress = eth.getIPAddress();
AndyA 0:c7329ea5d8d5 48 if (ipAddress && (strlen(ipAddress) > 4)) {
AndyA 0:c7329ea5d8d5 49
AndyA 0:c7329ea5d8d5 50 pc.printf("IP Address is %s\n",eth.getIPAddress());
AndyA 0:c7329ea5d8d5 51 pc.printf("Initalise plot..\n");
AndyA 0:c7329ea5d8d5 52
AndyA 0:c7329ea5d8d5 53 plotSetup();
AndyA 0:c7329ea5d8d5 54
AndyA 0:c7329ea5d8d5 55 pc.printf("Generating data, press any key to abort.\n");
AndyA 0:c7329ea5d8d5 56 while (!pc.readable()) {
AndyA 0:c7329ea5d8d5 57 plotGenerateDataPoint();
AndyA 0:c7329ea5d8d5 58 wait(0.5);
AndyA 0:c7329ea5d8d5 59 }
AndyA 0:c7329ea5d8d5 60 graph.closeStream();
AndyA 0:c7329ea5d8d5 61
AndyA 0:c7329ea5d8d5 62 } else
AndyA 0:c7329ea5d8d5 63 pc.printf("No IP Address\n");
AndyA 0:c7329ea5d8d5 64
AndyA 0:c7329ea5d8d5 65 eth.disconnect();
AndyA 0:c7329ea5d8d5 66
AndyA 0:c7329ea5d8d5 67 pc.printf("Done\n");
AndyA 0:c7329ea5d8d5 68
AndyA 0:c7329ea5d8d5 69 while (1) {
AndyA 0:c7329ea5d8d5 70 wait(10);
AndyA 0:c7329ea5d8d5 71 }
AndyA 0:c7329ea5d8d5 72 }