// program to send data to processing.org // jans hendry @2022 const int tp_pin = 5; // sensor pin const int stay = 16; // led pin always on const int red = 9; // red pin const int yellow = 11; // yellow pin const int green = 10; // green pin #define vref 4000 // voltage ref according to vcc #define adcres 1024.0 // adc resolution #define mv 10 // 1oc = 10 mv void setup() { // start serial Serial.begin(9600); // set input pin pinMode(stay, OUTPUT); digitalWrite(stay, HIGH); pinMode(red, OUTPUT); pinMode(yellow, OUTPUT); pinMode(green, OUTPUT); digitalWrite(red, LOW); digitalWrite(yellow, LOW); digitalWrite(green, LOW); // delay delay(500); } void loop() { // read analogue data (lm32 temperature sensor); int sensdata = analogRead(tp_pin); // Serial.print("Sensor reading: "); // Serial.println(sensdata); // convert to celcius float vt = (sensdata / adcres) * vref; // voltage to be converted float suhu = (vt / mv); // celcius temperature // Serial.print("Voltage out: "); // Serial.println(vt); // Serial.print("Temperature (oC): "); // Serial.println(suhu); send_sign(suhu); // turn light indicator Serial.write((int)suhu); // provide INT instead of FLOAT to write to serial. delay(1000); // take a break every 1 second } int send_sign(float tmp){ // turn light if (tmp >= 35){ digitalWrite(red, HIGH); digitalWrite(yellow, LOW); digitalWrite(green, LOW); } else if (tmp >= 30){ digitalWrite(red, LOW); digitalWrite(yellow, HIGH); digitalWrite(green, LOW); } else { digitalWrite(red, LOW); digitalWrite(yellow, LOW); digitalWrite(green, HIGH); } return 0; }