Stap 5: Verwerking code
importeren van processing.serial.*;PFont p;
Seriële myPort; De seriële poort
int xPos = 100; horizontale positie van de grafiek
void setup () {}
size(700,500);
p=createFont("Arial",16,True);
Background(0); instellen achtergrond zwart
voor (int u = 99; u < breedte; u = u + 60) //loop creëert verticaal raster
{
Stroke(100);
line(u,0,u,height-99);
}
voor (int t = hoogte-99; t > 0; t = t-25) //loop creëert horizontaal raster
{
Stroke(100);
line(99,t,width,t);
}
textFont(p,12); lettergrootte instellen tot en met 12
textAlign(LEFT);
Fill(255,0,0); rood
tekst ("Wind snelheid MPH", 100, hoogte-25); Printsnelheid van de wind
Fill(0,255,0); groen
tekst ('barometerdruk mb', 210, hoogte-25);
Fill(0,0,255); blauw
tekst ("Graden", 355, hoogte-25);
Fill(255); wit
tekst ("Wind richting N = 0 deg", 460, hoogte-25);
Fill(100); grijs
textAlign(RIGHT);
Text("0",110,height-87);
voor (int m = 160; m < breedte; m = m + 60) //loop plaatsen 0-9 minuten
{
int Min =(m-100)/60;
Fill(100);
textAlign(CENTER);
Text(min,m,height-87);
}
Fill(100);
textAlign(CENTER);
Text("minutes",Width/2,height-70);
voor (int p = 400; p > 0; p = p-50) elke andere regel genummerd //loop plaatsen op verticaal raster
{
float pat=map(p,400,0,0,200);
int pati=int(pat); wijzigingen float pat aan een int
Fill(255,0,0);
textAlign(RIGHT);
Text(Pati,98,p+5); Wind snelheidsmetingen
float patie=map(p,400,0,850,1100);
int paties=int(patie);
Fill(0,255,0);
tekst (paties, 75, p + 5); //pressure metingen
float patiesTemp=map(p,400,0,-30,55);
int patiesTemp1 = int (patiesTemp);
Fill(0,0,255);
Text(patiesTemp1,45,p+5); Temp metingen
float patiesDirec=map(p,400,0,0,359);
int patiesDirect=int(patiesDirec);
Fill(255);
Text(patiesDirect,25,p+5); Wind richting metingen
}
Lijst van alle beschikbare seriële poorten
println(Serial.List());
Ik weet dat de eerste poort in de seriële lijst op mijn mac
is altijd mijn Arduino, zodat ik Serial.list() [0 open].
Open welke poort is degene die u gebruikt.
myPort = nieuwe Serial (dit, Serial.list() [0], 9600);
niet het genereren van een serialEvent() tenzij u een newline karakter:
myPort.bufferUntil('\n');
eerste achtergrond instellen:
}
VOID draw() {}
VOID serialEvent (seriële myPort) {}
de ASCII-tekenreeks ophalen:
InString koord = myPort.readStringUntil('\n');
XWindSpeed koord = inString.substring(0,4);
XPressure koord = inString.substring(4,8);
Xtemp koord = inString.substring(8,12);
String xWindDirect=inString.substring(12,16);
int yWindSpeed=int(xWindSpeed);
int yPressure=int(xPressure);
int ytemp=int(xtemp);
int yWindDirect=int(xWindDirect);
float WindSpeed=map(yWindSpeed,0,1023,height-104,-3);
float Pressure=map(yPressure,0,1023,height-104,-3);
float temp=map(ytemp,0,1023,height-104,-3);
float WindDirect=map(yWindDirect,0,1023,height-104,-3);
Stroke(255,0,0,150);
line(xpos,WindSpeed+4,xpos,WindSpeed);
Stroke(0,255,0,150);
line(xpos,Pressure+4,xpos,Pressure);
Stroke(0,0,255,150);
line(xpos,temp+4,xpos,temp);
Stroke(255,255,255,150);
line(xpos,WindDirect+4,xpos,WindDirect);
xPos ++;
Als (xPos > breedte =) {//if de grafiek is volledige afbeelding opslaan als jpeg en start over
saveFrame("Weather-###.jpg");
xPos = 100;
p=createFont("Arial",16,True);
Background(0); instellen achtergrond zwart
voor (int u = 99; u < breedte; u = u + 60) //loop creëert verticaal raster
{
Stroke(100);
line(u,0,u,height-99);
}
voor (int t = hoogte-99; t > 0; t = t-25) //loop creëert horizontaal raster
{
Stroke(100);
line(99,t,width,t);
}
textFont(p,12); lettergrootte instellen tot en met 12
textAlign(LEFT);
Fill(255,0,0); rood
tekst ("Wind snelheid MPH", 100, hoogte-25); Printsnelheid van de wind
Fill(0,255,0); groen
tekst ('barometerdruk mb', 210, hoogte-25);
Fill(0,0,255); blauw
tekst ("Graden", 355, hoogte-25);
Fill(255); wit
tekst ("Wind richting N = 0 deg", 460, hoogte-25);
Fill(100); grijs
textAlign(RIGHT);
Text("0",110,height-87);
voor (int m = 160; m < breedte; m = m + 60) //loop plaatsen 0-9 minuten
{
int Min =(m-100)/60;
Fill(100);
textAlign(CENTER);
Text(min,m,height-87);
}
Fill(100);
textAlign(CENTER);
Text("minutes",Width/2,height-70);
voor (int p = 400; p > 0; p = p-50) elke andere regel genummerd //loop plaatsen op verticaal raster
{
float pat=map(p,400,0,0,200);
int pati=int(pat); wijzigingen float pat aan een int
Fill(255,0,0);
textAlign(RIGHT);
Text(Pati,98,p+5); Wind snelheidsmetingen
float patie=map(p,400,0,850,1100);
int paties=int(patie);
Fill(0,255,0);
tekst (paties, 75, p + 5); //pressure metingen
float patiesTemp=map(p,400,0,-30,55);
int patiesTemp1 = int (patiesTemp);
Fill(0,0,255);
Text(patiesTemp1,45,p+5); Temp metingen
float patiesDirec=map(p,400,0,0,359);
int patiesDirect=int(patiesDirec);
Fill(255);
Text(patiesDirect,25,p+5); Wind richting metingen
}
Als (xPos < breedte) {}
_ / / verhogen de horizontale positie:
xPos ++;
}
}
}