int delay_long = 800;
int delay_short = 300;
const float BETA = 3950;
int val_r, val_g, val_b;
byte red = 3;
byte green = 5;
byte blue = 6;
void setup() {
Serial.begin(9600);
pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
pinMode(blue, OUTPUT);
pinMode(4, INPUT_PULLUP);
}
void loop() {
int analogValue = analogRead(A0);
float celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
Serial.print("Temperature: ");
Serial.print(celsius);
Serial.println(" ℃");
delay(10);
if (celsius > 40.0) {
digitalWrite(red, HIGH);
digitalWrite(green, LOW);
digitalWrite(blue, LOW);
}
if (celsius > 32.0 && celsius < 40.0) {
digitalWrite(red, HIGH);
digitalWrite(green, HIGH);
digitalWrite(blue, LOW);
}
if (celsius > 10.0 && celsius < 32.0) {
digitalWrite(red, LOW);
digitalWrite(green, HIGH);
digitalWrite(blue, LOW);
}
if (celsius < 10.0) {
digitalWrite(red, LOW);
digitalWrite(green, LOW);
digitalWrite(blue, HIGH);
}
if (celsius <10.0 or celsius > 40.0) {
digitalWrite(red, HIGH);
digitalWrite(green, LOW);
digitalWrite(blue, LOW);
if (digitalRead(4) == LOW) {
send_s(); Serial.print('S');
delay(400);
send_o(); Serial.print('O');
delay(400);
send_s(); Serial.print('S');
delay(400); Serial.println('.');
}
}
}
void send_o() {
for (int i = 0; i < 3; i++) {
digitalWrite(3, HIGH);
delay(delay_long);
digitalWrite(3, LOW);
delay(150);
}
}
void send_s() {
for (int i = 0; i < 3; i++) {
digitalWrite(red, HIGH);
delay(delay_short);
digitalWrite(red, LOW);
delay(150);
}
}