Eine Grafik mit Processing ausgeben

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

bmp180-processing-2

Software: Arduino 1.6.1, Processing 2.2.1

Hardware: Arduino Nano, BMP180

von Matthias Busse

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.