bir arduino bir role karti ve 3 adet 18b20 isi sensoru ile rahatlikla yapilaiblir.
Kodu da chatgpt ye yazdiraiblirsiniz
Insterseniz ekran ekler isterseniz ethernet ya da usb den kontrol edersiniz sonrasinda
hatta ornek kodu hemen chatgpt ye yazdirdim ihtiyaca gore gelistirilebilir.
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal_I2C.h>
// Data wire is connected to pin 2
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int relay1Pin = 3;
const int relay2Pin = 4;
const int relay3Pin = 5;
const int tempUpButtonPin = 6;
const int tempDownButtonPin = 7;
float tempThreshold1 = 25.0;
float tempThreshold2 = 27.0;
float tempThreshold3 = 30.0;
void setup() {
sensors.begin();
lcd.begin(16, 2);
pinMode(relay1Pin, OUTPUT);
pinMode(relay2Pin, OUTPUT);
pinMode(relay3Pin, OUTPUT);
pinMode(tempUpButtonPin, INPUT_PULLUP);
pinMode(tempDownButtonPin, INPUT_PULLUP);
}
void loop() {
sensors.requestTemperatures();
float temp1 = sensors.getTempCByIndex(0);
float temp2 = sensors.getTempCByIndex(1);
float temp3 = sensors.getTempCByIndex(2);
lcd.setCursor(0, 0);
lcd.print("Temp1: ");
lcd.print(temp1);
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Temp2: ");
lcd.print(temp2);
lcd.print("C");
if (temp1 >= tempThreshold1) {
digitalWrite(relay1Pin, HIGH);
} else {
digitalWrite(relay1Pin, LOW);
}
if (temp2 >= tempThreshold2) {
digitalWrite(relay2Pin, HIGH);
} else {
digitalWrite(relay2Pin, LOW);
}
if (temp3 >= tempThreshold3) {
digitalWrite(relay3Pin, HIGH);
} else {
digitalWrite(relay3Pin, LOW);
}
if (digitalRead(tempUpButtonPin) == LOW) {
delay(50);
tempThreshold1++;
tempThreshold2++;
tempThreshold3++;
}
if (digitalRead(tempDownButtonPin) == LOW) {
delay(50);
tempThreshold1--;
tempThreshold2--;
tempThreshold3--;
}
delay(1000);
}