Linkit One - Live Data Monitored in Excel and Displayed Using a Dashboard

by HUKBMBEAR in Circuits > Microcontrollers

12962 Views, 126 Favorites, 0 Comments

Linkit One - Live Data Monitored in Excel and Displayed Using a Dashboard

dash.png

There are lots of ways to collect data from prototyping platforms like the Linkit One many of which you will have to pay for. Probably the simplest is to use Excel for your collection and manipulation.

For example:

But if you want free then try PLX-DAQ from Paralax inc. Once set up to serial print the data you need this excel adding takes the figures and drops them neatly into specified columns. Its a live feed to the column will only grow, unless you impliment VBA code to limit and refresh the column.

Once the data is in Excel then its up to you as to how its manipulated and displayed.

Software and Board Set Up

Ive said in the previous guides that putting lots of detail into a section like this is a way of padding out, so I will try to keep it short. Especially as the manufacturers of the software required are less likely to miss out specifics about their apps.

Install the Linkit One board

The board comes with a 5 step plan that takes you to all the locations you need and here they are - all you have to do is follow the links and use the videos freely available of the suppliers web sites:

1. Install the Arduino IDE 1.5.6 or later (I recommend the 1.5.6) Arduino.cc/en/main/software

2. Register on MediaTek Labs – labs.mediatek.com/register

3. Download Linkit Developer’s Guide – labs.mediatek.com/Linkitguide

4. Install Linkit SDK for Arduino – labs.mediatek.com/linkitsdk

5. Select the Linkit One board (from Tools / Boards in the Arduino application)

Microsoft Excel - Sorry you will have to pay for this bit of software

Excel Addin Macro This is the important bit - Parallax - PLX-DAQ is an addin that uses serial communication to transfer the data as long as you can identify the com port this application will work. select the link above to download direct from the Parallax site.

PLX-DAQ Features

this bit is taken straight from the Parallax website:

PLX-DAQ Features PLX-DAQ is a Parallax microcontroller data acquisition add-on tool for Microsoft Excel. Any of our microcontrollers connected to any sensor and the serial port of a PC can now send data directly into Excel. PLX-DAQ has the following features:

  • Plot or graph data as it arrives in real-time using Microsoft Excel
  • Record up to 26 columns of data
  • Mark data with real-time (hh:mm:ss) or seconds since reset
  • Read/Write any cell on a worksheet
  • Read/Set any of 4 checkboxes on control the interface
  • Example code for the BS2, SX (SX/B) and Propeller available
  • Baud rates up to 128K
  • Supports Com1-15

System Requirements

  • Microsoft Windows 98
  • Microsoft Office/Excel 2000 to 2003
  • May not work with newer software; no longer supported

It does work with excel 2013 this is the version I am using

PLX-DAQ Usage in Excel

Once you have downloaded the PLX zipped file - unpack it and it will create a directory on your desktop that contains an excel file.

- this is your starting point for data collection. Note the form that opens up Make sure you select the port your Linkit One board is connected to and that the Baud rate is set in line with your boards settings. DAQ will collect at baud rates 9600 to 128000. When you click on connect - if the board has been uploaded with a sketch your data will start to fill the first three columns

Example Code

Variables required for the Linkit one Code

LABLE - Used to define the column headings.

Syntax: Serial.println (“LABEL, INT_COLUMN”);

DATE, TIME - Allows the serial port to send data to Excel.

Syntax: Serial.print (“DATE, TIME,”); Serial.println (val);

Note: Serial.print (“DATE, TIME,”) must be used before each Serial.println();

ROW, SET, k, - This allows control over the row that excel accepts data.

Syntax: Serial.println(ROW, SET, #);

The column control: Serial.print(“,”) ; Like CSV

Example code

The following bit of arduino code sends data via the serial connection and is collected by PLX-DAQ when you open the PLX spreadsheet and click connect.

Note there is no need to add any components just yet this code will run as it stands.

Its not very good - and only a start so that you can see what the basic functions of the variables do before I apply them to an application for an example of real data capture.

The code uses two values x and y - Y is fixed and X increments, when x is greater than y it is reset to 0 and the row count is also reset to stop the data set getting too large.

Keep in mind this is only an example to give an indicator as to how to apply the variables in your code.

int x = 0;
int row = 0;

int y=50;

void setup() {

Serial.begin(128000); // opens serial port, sets data rate to 128000 bps

Serial.println("CLEARDATA");

Serial.println("LABEL,Time,x,y"); }

void loop() {

Serial.print("DATA,TIME,"); Serial.print(x); Serial.print(","); Serial.println(y);

row++;

x++;

if (x > y) {

row=0;

x=0;

Serial.println("ROW,SET,2");

}

delay(100);

}

Wire Up the Hardware

board.png

The hardware requirements for this instructable are

  • Linkit One board
  • Jumper wires
  • 33 ohm resistors
  • LEDs - low power
  • Light dependant resistor (LDR)
  • Variable resistor (pot)
  • Bread Board (optional)

Take a look at the two photos and recreate the connections as shown, when wiring and LED place the resistor to between the board pin connection and the anode of the LED the Cathode goes to GND on the board

A Pot has three connections (Left / Middle / Right)

  • Right - connect to the GND on the board
  • Middle - Connect to the A2 pin (analogue connection) on the board
  • Left - connect to the 5v board pin

Actual Code to Generate Data

You can simply copy this code or download the file at the end

byte ledPin[] = {4,5,6,7,8,9,10,11,12};

float ledDelay(65);

float testLow=0;

int row = 0;

int direction=1;

int currentLED = 0;

unsigned long changeTime;

float potPin = A2;

void setup(){

pinMode(13, OUTPUT);

Serial.begin(9600); // opens serial port, sets data rate9600 bps

Serial.println("CLEARDATA"); //clears any residual data

Serial.println("LABEL,Time,limit,Pin,Light Level"); //set the headings for the data transfer to excel Serial.println("ROW,SET,2");

for (int x=0; x<9; x++){

pinMode(ledPin[x], OUTPUT);

}

changeTime = millis();

}

void loop(){

ledDelay = analogRead(potPin);

if ((millis()-changeTime)>ledDelay){

changeLED();

changeTime=millis();

}

}

void changeLED(){

for (int x=0; x<9; x++){

digitalWrite(ledPin[x],LOW);

}

digitalWrite(ledPin[currentLED], HIGH);

currentLED += direction;

if (currentLED ==8){

direction = -1;

}

if (currentLED ==0){

direction = 1;

}

if (ledDelay <=20) {

digitalWrite(13, HIGH);

testLow=0;

}

if (ledDelay >20) {

digitalWrite(13, LOW);

testLow=1;

}

Serial.print("DATA,TIME,");

Serial.print(testLow);

Serial.print(",");

Serial.print(currentLED);

Serial.print(",");

Serial.println(ledDelay);

row++;

if (row > 200) //set the excel data limit {

row=0;

Serial.println("ROW,SET,2");

}

delay(100);

}

Excel Dashboard

dash 2.png
dash.png
dash 3.png
dash 4.png
dash 5.png
dash 6.png

dashboard can be a little tricky to edit so have a play, but only save once you are happy with the settings you want to use.

  1. Open the excel file containing the PLX-DAQ setup.
  2. The file in this instructable has three dials and a chart - all of which can be tailored to your needs
  3. Example - Select one of the dials
  4. Then select the Page Layout from the excel ribbon menu and then click on the selection pane
  5. This brings up a list of all the objects on the charts and dials. By selecting the required objects you can change settings, add calculations etc see image
  6. To change the needle position double click the needle then update the formula for the correct data locations.
  7. In my spreadsheet the data locations are on sheet 1 (they have to be held separately from the simple data sheet. Take a look at the structures and you should be able to adapt the file to your needs.

This section contains a video for the data Aquisition as well as the arduino file (although you can just copy and paste it from the text above) as well as the eddited spreadsheet with the Dashboard I created to show off the live readins from the circuit.