Die Arduino Datei aus diesem Beitrag wird ab Zeile 31 etwas verändert, sodass Temperatur und Luftdruck ohne Leerzeichen, aber mit einem Komma getrennt ausgegeben werden: 25.3,1015.1
Serial.print(((float)temp_mittel/10.0)+temp_offset, 1); Serial.print(","); Serial.println(((float)druck_mittel/100.0)+druck_offset, 1);
Und hier die Processing Datei um die Linien Grafik auszugeben.
// Von der Seriellen Schnittstelle (Arduino) einlesen // und ein Grafik Fenster mit Processing 2.2 ausgeben // // Matthias Busse 28.6.2015 Version 1.1 import processing.serial.*; Serial myPort; // Serielle Schhnittstelle definieren int xPos = 1; float temp, druck; //float zahlen[]; void setup() { size(400,300); // Fenstergröße // textSize(33); // Textgröße frame.setTitle("Temperatur & Luftdruck vom Arduino"); myPort = new Serial(this, Serial.list()[0], 9600); // Seriellen Port öffnen } void draw() { } void serialEvent (Serial myPort) { String inString = myPort.readStringUntil('\n'); if (inString != null) { inString = trim(inString); float zahlen[] = float(split(inString,',')); temp=zahlen[0]; druck=zahlen[1]; println(inString); println(temp); println(druck); fill(200, 200, 200); rect(0,0,500,30); // Text Hintergrund neu zeichnen fill(0,100,0); // Temperatur schreiben text(temp+ " Grad", 100, 20); temp = map(temp, 10, 30, 45, height-45); text("30 ", 1, 45); // Temp. Skala links text("10 ", 1,295); text("20 ", 1, 295-((295-45)/2)); stroke(0, 100, 0); // Linie zeichnen line(xPos, height-temp-1, xPos, height-temp); fill(100, 0, 0); // Luftdruck schreiben text(druck+ " hPa", 250,20); druck = map(druck, 980, 1040, 45, height-45); text("1040 ", 370, 45); // Druck Skala rechts text("980 ", 380,295); text("1000 ", 370,295-((295-45)/3)); text("1020 ", 370,295-((295-45)/3*2)); stroke(100, 0, 0); // Druck zeichnen line(xPos, height-druck-1, xPos, height-druck); if (xPos >= width) { xPos = 0; background(200,200,200); } else { xPos++; } } }
Das Ergebnis sieht dann so aus
Software: Arduino 1.6.1, Processing 2.2.1
Hardware: Arduino Nano, BMP180
von Matthias Busse