I have been experimenting with a Data Capture and Visualization software for Arduino written in Processing and would like to share the results with the community. This is the first Alpha release of the software. See github link below to try out. This application works on the desktop to capture serial data sent from any Arduino board.
The first alpha release of Duino DCS. Currently supports viewing of data from four sensors connected to an Arduino. Can view data as:
All sensors on a single 2D graph
All sensors on a live moving 2D graph
All sensors on multiple 2D graphs
Single sensor on a single 2D graph
It currently supports:
The live capturing and saving of data at intervals of one second and up.
So I created this application to work on the PC. Am currently using it in school to capture serial data sent from any Arduino project to save data and add to project reports etc. At the moment it can capture data sent from any Arduino board with up to 4 different serial tags. See example Arduino Code below. The first picture above shows Duino DCS (Data Capture Software) setup to capture serial data send from an Uno program with this code. ( The GetError() and CalculatePID() functions are missing)
float Temperature = 0;
long Error1[10];
int syetemValue = 0;
void setup() {
Serial.begin(115200);
pinMode(A0, INPUT);
}
void loop() {
// Read analog values
float var2 = 1024 - analogRead(0);
float Resistance = (98 * var2) / (1024 - var2); //98k resistor in series with the 503 thermister
// Calculate temperature
float Ln_Resist = log(Resistance);
float Temp = log(Resistance);
float Ln_Resist3 = Ln_Resist * Ln_Resist * Ln_Resist;
Temperature = (1 / (0.00237531 + 0.00024632 * Ln_Resist + 0.00000028 * Ln_Resist3) - 273);
// Print output with the Celsius serial tag/identifier
Serial.print("Celsius: "); // Serial Identifier for Duino DCS to read. New data begin at this point
Serial.print(Temperature); // output current temperature value
Serial.println(" "); // serial tag terminator. New data ends at this point
//End of output for Celsius serial tag/identifier
GetError(Temperature, 35, Error1); // Function to get error for PID control
Serial.print("PID: "); // Serial Identifier for Duino DCS to read
int pid = CalculatePID(2000, 250, 5, Error1, 0) / 4; // Function to calculate PID
Serial.print((pid / 4)); //PID Output
Serial.println(" ");
Serial.print("Heater: "); // Serial Identifier for Duino DCS to read
int val;
if (pid >= 47) val = 10; else val = 0;
Serial.print(val); // Heater state output
Serial.println(" ");
delay(1000);
}//End of Function