Hallo zusammen,
Ich plane seit längerem ein kleines Projekt bei uns zuhause, undzwar geht es darum, im Keller einen Lüfter zu steuern, der von außen Kalte Luft einzieht, um den Raum zu kühlen. Der Lüfter soll dazu über ein Relais geschalten werden.
Nämlich immer dann, wenn die Temperatur außen geringer ist, als die im Kellerraum. Und das gaze so lange, bis eine Temperatur im Keller von 7°C oder so erreicht ist, ab dann soll der Lüfter nichts machen.
Dazu habe ich zwei DS18B20 Temeratursensoren, aber leider nicht viel Ahnung vom Programmieren mit dem arduino. Mein Wissen beschränkt sich aktuell noch auf recht einfache Sachen.
Es wäre super, wenn mir jemand helfen könnte!
Folgendes habe ich gefunden, was in die Richtung geht:
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#define DS18B20_DATA 2
#define Knopf_Plus_PIN 3
#define Knopf_Minus_PIN 4
#define Relais_PIN 5
#define start
OneWire oneWire(DS18B20_DATA);
DallasTemperature sensors(&oneWire);
float soll_Temp;
void setup(){
lcd.init();
lcd.backlight();
sensors.begin();
pinMode(Relais_PIN, OUTPUT);
digitalWrite(Relais_PIN,HIGH);
pinMode(Knopf_Plus_PIN,INPUT_PULLUP);
pinMode(Knopf_Minus_PIN,INPUT_PULLUP);
}
void loop(){
if (soll_Temp == 0){
soll_Temp = start;
}
while (digitalRead(Knopf_Plus_PIN) == 0){
soll_Temp = soll_Temp + 0.1;
lcd.setCursor(0,1);
lcd.print("Soll: ");
lcd.print(String(soll_Temp,1));
lcd.print("\337C ");
delay(500);
int knopf_lang_plus = knopf_lang_plus + 1;
while (digitalRead(Knopf_Plus_PIN) == 0 && knopf_lang_plus == 3){
soll_Temp = soll_Temp + 0.1;
lcd.setCursor(0,1);
lcd.print("Soll: ");
lcd.print(String(soll_Temp,1));
lcd.print("\337C ");
delay(100);
}
}
while (digitalRead(Knopf_Minus_PIN) == 0){
soll_Temp = soll_Temp - 0.1;
lcd.setCursor(0,1);
lcd.print("Soll: ");
lcd.print(String(soll_Temp,1));
lcd.print("\337C ");
delay(500);
int knopf_lang_minus = knopf_lang_minus + 1;
while (digitalRead(Knopf_Minus_PIN) == 0 && knopf_lang_minus == 3){
soll_Temp = soll_Temp - 0.1;
lcd.setCursor(0,1);
lcd.print("Soll: ");
lcd.print(String(soll_Temp,1));
lcd.print("\337C ");
delay(100);
}
}
sensors.requestTemperatures();
float temp (sensors.getTempCByIndex(0));
lcd.setCursor(0,0);
lcd.print("Aktuell: ");
lcd.print(String(temp,1));
lcd.print("\337C ");
lcd.setCursor(0,1);
lcd.print("Soll: ");
lcd.print(String(soll_Temp,1));
lcd.print("\337C ");
if(temp >= soll_Temp){
lcd.setCursor(0,3);
lcd.print("Status:aus");
digitalWrite(Relais_PIN,HIGH);
}else{
lcd.setCursor(0,3);
lcd.print("Status:an");
digitalWrite(Relais_PIN,LOW);
}
}
"