import meter.*;
import processing.serial.*;
Serial port;
String[] list;
Meter m, m2, m3;
void setup() {
size(1260, 900);
background(255, 255, 200);
port = new Serial(this, "COM4", 9600);
fill(120, 50, 0);
m = new Meter(this, 10, 100);
// Adjust font color of meter value +
m.setMeterWidth(400);
m.setTitleFontSize(20);
m.setTitleFontName("Arial bold");
m.setTitle("Temperature (C)");
m.setDisplayDigitalMeterValue(true);
// Meter Scale
String[] scaleLabelsT = {"0", "10", "20", "30", "40", "50", "60", "70", "80"};
m.setScaleLabels(scaleLabelsT);
m.setScaleFontSize(18);
m.setScaleFontName("Times New Roman bold");
m.setScaleFontColor(color(200, 30, 70));
m.setArcColor(color(141, 113, 178));
m.setArcThickness(10);
m.setMaxScaleValue(80);
m.setNeedleThickness(3);
m.setMinInputSignal(0);
m.setMaxInputSignal(80);
// A second meter for reference
int mx = m.getMeterX();
int my = m.getMeterY();
int mw = m.getMeterWidth();
m2 = new Meter(this, mx + mw + 20, my);
m2.setMeterWidth(400);
m2.setTitleFontSize(20);
m2.setTitleFontName("Arial bold");
m2.setTitle("Humidity (%)");
m2.setDisplayDigitalMeterValue(true);
String[] scaleLabelsH = {"0", "10", "20", "30", "40", "50", "60", "70", "80", "90", "100"};
m2.setScaleLabels(scaleLabelsH);
m2.setScaleFontSize(18);
m2.setScaleFontName("Times New Roman bold");
m2.setScaleFontColor(color(200, 30, 70));
m2.setArcColor(color(141, 113, 178));
m2.setArcThickness(10);
m2.setMaxScaleValue(100);
m2.setNeedleThickness(3);
m2.setMinInputSignal(0);
m2.setMaxInputSignal(100);
// A third meter for reference
int m2x = m2.getMeterX();
int m2y = m2.getMeterY();
int m2w = m2.getMeterWidth();
m3 = new Meter(this, m2x + m2w + 20, m2y);
m3.setMeterWidth(400);
m3.setTitleFontSize(20);
m3.setTitleFontName("Arial bold");
m3.setTitle("Pressure (HPa)");
m3.setDisplayDigitalMeterValue(false);
String[] scaleLabelsP = {"990", "995", "1000", "1005", "1010", "1015", "1020", "1025", "1030", "1035", "1040"};
m3.setScaleLabels(scaleLabelsP);
m3.setScaleFontSize(15);
m3.setScaleFontName("Times New Roman bold");
m3.setScaleFontColor(color(200, 30, 70));
m3.setArcColor(color(141, 113, 178));
m3.setArcThickness(10);
m3.setMaxScaleValue(1040);
m3.setNeedleThickness(3);
m3.setMinInputSignal(990);
m3.setMaxInputSignal(1040);
}
public void draw() {
textSize(70);
fill(0, 255, 0);
text("ARDUINO Weather Station", 200, 700);
if (port.available() > 0) {
String val = port.readString();
list = split(val, ',');
float temp = float(list[0]);
float hum = float(list[1]);
float press = float(list[2]);
println("Temperature: " + temp + " C " + "Humidity: " + hum + " %" + "Pressure: " + press + "HPa");
m.updateMeter(int(temp));
m2.updateMeter(int(hum));
m3.updateMeter(int(press));
}
}
Comments
Please log in or sign up to comment.