!!!Benötigte Bibliotheken aus Basisprojekt "Monitoring" integrieren!!!

Quellcode inkl. Kommentare zur Programmierung des ESP32 über Arduino:

#include <OneWire.h>

#include <DallasTemperature.h>

#include <TM1637Display.h>


//Daten-Pin für den Temperatursensor festlegen

#define temperatureSensorPIN 32


//Daten- und Taktpin des Displays festlegen und Initialisierung des Displays

#define CLK 23

#define DIO 25

TM1637Display display(CLK, DIO);


//Temperatursensor initialisieren

OneWire temperatureSensorWire(temperatureSensorPIN);

DallasTemperature temperatureSensor(&temperatureSensorWire);


//Pin LED WARM

#define WarmLedPin 17


//Pin LED KALT

#define KaltLedPin 18


//Motor Belüftung

#define MotorPin 19


void setup() 

{

  //Temperatursensor starten

  temperatureSensor.begin();



  //Helligkeit des Displays einstellen

  display.setBrightness(0x0f);


  //Seriellen Monitor mit einer Baudrate von 115200 starten

  Serial.begin(115200);


  //Digitalpin Output

  pinMode(17, OUTPUT);

  pinMode(18, OUTPUT);

  pinMode(19, OUTPUT);

  

}


void loop() 

{

  //Temperatur in °C erfassen

  temperatureSensor.requestTemperatures();

  float tC = temperatureSensor.getTempCByIndex(0);



  //Temperatur in °C mit einer Nachkommastelle auf dem Display anzeigen

  display.showNumberDec(tC * 10);


  //Temperatur in °C ohne Nachkommastelle auf dem Display anzeigen

  //display.showNumberDec(tC * 1);


  //Temperatur auf dem seriellen Monitor ausgeben

  Serial.print(tC);

  Serial.println(" °C");

  delay(500);

  

  //Kühlung

  if (tC >= 30) {

  Serial.print("Erhöhte Tempertur, Kühlung aktiviert");

  digitalWrite (KaltLedPin, HIGH);

  digitalWrite (MotorPin, LOW);

  }

  else if (tC >= 35) {

  Serial.print("TEMPERATUR IM KRITISCHEN BEREICH");

  digitalWrite (MotorPin, LOW);

  digitalWrite (KaltLedPin, HIGH);

  delay(200);

  digitalWrite (KaltLedPin, LOW);

  delay(200);

  }

  else {

  digitalWrite (KaltLedPin, LOW);

  digitalWrite (MotorPin, HIGH);

  }


  //Heizung

  if (tC <= 20) {

  Serial.print("Niedrige Temperatur, Heizung aktiviert");

  digitalWrite (WarmLedPin, HIGH);

  }

  

  else if (tC <= 15) {

  Serial.print("Temperatur wird zu kalt");

  digitalWrite (WarmLedPin, HIGH);

  delay(200);

  digitalWrite (WarmLedPin, LOW);

  delay(200);

  }

  

  else {

  digitalWrite (WarmLedPin, LOW);

  

}

}