Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.text.SimpleDateFormat;
- import java.util.*;
- String dayString = new SimpleDateFormat("EEEE").format(new Date());
- String temp = "--";
- String humid = "--";
- PrintWriter output;
- int[] lastTime = new int[2];
- boolean[] button = { false, false };
- final int timeDelay = 1000;
- int numData = 0;
- int maxTemp;
- int minTemp;
- int maxHumid;
- int minHumid;
- long sumTemp = 0;
- long sumTempSquare = 0;
- long sumHumid = 0;
- long sumHumidSquare = 0;
- float avgTemp = 0;
- float avgHumid = 0;
- float stdDevTemp = 0;
- float stdDevHumid = 0;
- void setup()
- {
- size(260, 490);
- smooth();
- output = createWriter("stats.csv");
- output.println("numData,temp,humid,sumTemp,sumHumid,avgTemp,avgHumid,sumTempSquare,sumHumidSquare,stdDevTemp,stdDevHumid");
- }
- void draw()
- {
- background(#DDF1FF);
- rectangle(20, 20, 100, 50, 255);
- rectangle(140, 20, 100, 50, 255);
- if(millis() - lastTime[0] >= timeDelay)
- {
- lastTime[0] = millis();
- temp = str(int(random(20, 40)));
- humid = str(int(random(30, 80)));
- }
- label(temp + "⁰C", 30, 35, 55, 0);
- label(humid + "%", 30, 165, 55, 0);
- cmdButton(20, 90, 220, 50);
- cmdLabel(button[0], 15, 40, 120, "Hentikan Perekaman", "Jalankan Perekaman");
- rectangle(20, 160, 220, 240, 0);
- rectangle(21, 161, 218, 238, 255);
- cmdLabel(button[0], 12, 30, 180, "Data sedang direkam.", "Perekaman data telah berhenti.");
- label("Num.Data = " + numData, 12, 30, 195, 0);
- label("Tot.Temp = " + sumTemp, 12, 30, 210, 0);
- label("Tot.Humid = " + sumHumid, 12, 30, 225, 0);
- label("Tot.Sq.Temp = " + sumTempSquare, 12, 30, 240, 0);
- label("Tot.Sq.Humid = " + sumHumidSquare, 12, 30, 255, 0);
- label("Avg.Temp = " + avgTemp + "⁰C", 12, 30, 270, 0);
- label("Avg.Humid = " + avgHumid + "%", 12, 30, 285, 0);
- label("Max.Temp = " + maxTemp + "⁰C", 12, 30, 300, 0);
- label("Min.Temp = " + minTemp + "⁰C", 12, 30, 315, 0);
- label("Max.Humid = " + maxHumid + "%", 12, 30, 330, 0);
- label("Min.Humid = " + minHumid + "%", 12, 30, 345, 0);
- label("Std.Dev.Temp = " + stdDevTemp, 12, 30, 360, 0);
- label("Std.Dev.Humid = " + stdDevHumid, 12, 30, 375, 0);
- cmdButton(20, 420, 220, 50);
- label("Simpan dan Keluar", 15, 40, 450, 0);
- if(button[0]==true)
- {
- if(millis() - lastTime[1] >= timeDelay)
- {
- lastTime[1] = millis();
- numData++;
- if(numData == 1)
- {
- maxTemp = int(temp);
- minTemp = int(temp);
- maxHumid = int(humid);
- minHumid = int(humid);
- }
- else
- {
- if(int(temp) > maxTemp)
- {
- maxTemp = int(temp);
- }
- if(int(temp) < minTemp)
- {
- minTemp = int(temp);
- }
- if(int(humid) > maxHumid)
- {
- maxHumid = int(humid);
- }
- if(int(humid) < minHumid)
- {
- minHumid = int(humid);
- }
- }
- sumTemp += int(temp);
- sumHumid += int(humid);
- sumTempSquare += (int(temp)*int(temp));
- sumHumidSquare += (int(humid)*int(humid));
- avgTemp = float(nf(sumTemp / ((float)numData), 3, 1));
- avgHumid = float(nf(sumHumid / ((float)numData), 3, 1));
- stdDevTemp = float(nf(sqrt(sumTempSquare*numData - sumTemp*sumTemp)/numData, 5, 3));
- stdDevHumid = float(nf(sqrt(sumHumidSquare*numData - sumHumid*sumHumid)/numData, 5, 3));
- output.print(numData + ",");
- output.print(temp + ",");
- output.print(humid + ",");
- output.print(sumTemp + ",");
- output.print(sumHumid + ",");
- output.print(avgTemp + ",");
- output.print(avgHumid + ",");
- output.print(sumTempSquare + ",");
- output.print(sumHumidSquare + ",");
- output.print(stdDevTemp + ",");
- output.println(stdDevHumid + ",");
- }
- }
- if(button[1] == true)
- {
- output.flush();
- output.close();
- exit();
- }
- }
- void mousePressed()
- {
- if((mouseX >= 20)&&(mouseX <= 240)&&(mouseY >= 90)&&(mouseY <= 140))
- {
- button[0] =! button[0];
- }
- if((mouseX >= 20)&&(mouseX <= 240)&&(mouseY >= 420)&&(mouseY <= 470))
- {
- button[1] =! button[1];
- }
- }
- void rectangle(int rectPosX, int rectPosY, int rectWidth, int rectHeight, int rectColor)
- {
- pushMatrix();
- translate(rectPosX, rectPosY);
- noStroke();
- fill(rectColor);
- rect(0, 0, rectWidth, rectHeight);
- popMatrix();
- }
- void label(String txt, int txtSize, int txtPosX, int txtPosY, int txtColor)
- {
- textSize(txtSize);
- fill(txtColor);
- text(txt, txtPosX, txtPosY);
- }
- void cmdButton(int pointX, int pointY, int lengthX, int widthY)
- {
- noStroke();
- fill(128);
- rect(pointX+1, pointY+1, lengthX+1, widthY+1);
- if((mouseX >= pointX)&&(mouseX <= pointX+lengthX)&&(mouseY >= pointY)&&(mouseY <= pointY+widthY))
- {
- fill(240);
- }
- else
- {
- fill(225);
- }
- rect(pointX, pointY, lengthX, widthY);
- }
- void cmdLabel(boolean check, int txtSize, int posX, int posY, String messageTrue, String messageFalse)
- {
- fill(0);
- stroke(0);
- textSize(txtSize);
- if(check == true)
- {
- text(messageTrue, posX, posY);
- }
- else
- {
- text(messageFalse, posX, posY);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement