Update Home

niggo 2024-03-20 10:54:56 +00:00
parent 264d1ab725
commit 314f394a5c
1 changed files with 1 additions and 117 deletions

116
Home.md

@ -17,119 +17,3 @@ Auf dem Display wird die Aktuelle Temperatur, die Luftfeuchtigkeit und Regen ang
* Buzzer
* Widerstände
* Verbindungskabel
## Code
```cpp
#include <Arduino.h> // Arduino Core-Bibliothek
#include <DHT.h> // Bibliothek für den DHT-Sensor
#include <LiquidCrystal_I2C.h> // Bibliothek für das LCD-Display mit I2C-Schnittstelle
const int DHT_PIN = 4; // Pin für den DHT-Sensor
const int PIEZO_PIN = 17; // Pin für den Piezosummer
const int LEDGREEN_PIN = 12; // Pin für grüne LED
const int LEDYELLOW_PIN = 32; // Pin für gelbe LED
const int LEDRED_PIN = 26; // Pin für rote LED
const int LEDWH_PIN = 13; // Pin für weitere LED (nicht genutzt)
int prevRating = -1; // Variable zur Speicherung der vorherigen Bewertung
DHT dht(DHT_PIN, DHT11); // DHT-Objekt mit dem Pin für den Sensor und dem Sensortyp
LiquidCrystal_I2C lcd(0x27, 16, 2); // LCD-Objekt mit I2C-Adresse und Zeilen- und Spaltenzahl
// Funktion zur Wiedergabe des Warnsignals
void playWarnTone()
{
tone(PIEZO_PIN, 2000); // Piezosummer mit Frequenz 2000Hz aktivieren
delay(50); // 50 Millisekunden warten
noTone(PIEZO_PIN); // Piezosummer ausschalten
delay(50); // 50 Millisekunden warten
tone(PIEZO_PIN, 2000); // Piezosummer mit Frequenz 2000Hz aktivieren
delay(50); // 50 Millisekunden warten
noTone(PIEZO_PIN); // Piezosummer ausschalten
}
// Funktion zum Ausschalten aller LEDs
void OFFLEDS()
{
digitalWrite(LEDGREEN_PIN, HIGH); // Grüne LED ausschalten
digitalWrite(LEDYELLOW_PIN, HIGH); // Gelbe LED ausschalten
digitalWrite(LEDRED_PIN, HIGH); // Rote LED ausschalten
}
// Setup-Funktion, die beim Start des Programms einmal ausgeführt wird
void setup()
{
Serial.begin(9600); // Serielle Kommunikation mit Baudrate 9600 starten
dht.begin(); // Initialisierung des DHT-Sensors
lcd.init(); // Initialisierung des LCD-Displays
lcd.backlight(); // Hintergrundbeleuchtung des Displays einschalten
lcd.print("Hello"); // Text "Hello" auf dem Display anzeigen
pinMode(PIEZO_PIN, OUTPUT); // Piezosummer-Pin als Ausgang konfigurieren
pinMode(LEDGREEN_PIN, OUTPUT); // Grüne LED-Pin als Ausgang konfigurieren
pinMode(LEDYELLOW_PIN, OUTPUT); // Gelbe LED-Pin als Ausgang konfigurieren
pinMode(LEDRED_PIN, OUTPUT); // Rote LED-Pin als Ausgang konfigurieren
OFFLEDS(); // Alle LEDs ausschalten
tone(PIEZO_PIN, 1500); // Piezosummer mit Frequenz 1500Hz aktivieren
delay(250); // 250 Millisekunden warten
noTone(PIEZO_PIN); // Piezosummer ausschalten
delay(250); // 250 Millisekunden warten
tone(PIEZO_PIN, 2000); // Piezosummer mit Frequenz 2000Hz aktivieren
delay(250); // 250 Millisekunden warten
noTone(PIEZO_PIN); // Piezosummer ausschalten
}
// Loop-Funktion, die kontinuierlich wiederholt wird
void loop()
{
float temp = dht.readTemperature(); // Temperaturwert vom DHT-Sensor lesen
float humid = dht.readHumidity(); // Luftfeuchtigkeitswert vom DHT-Sensor lesen
delay(100); // 100 Millisekunden warten
int rating = 0; // Bewertung initialisieren
// Bewertung der Umgebungsbedingungen anhand von Schwellenwerten
if ((int)temp > 25)
rating += 1; // Bewertung erhöhen, wenn Temperatur über 25°C liegt
if ((int)humid > 50)
rating += 1; // Bewertung erhöhen, wenn Luftfeuchtigkeit über 50% liegt
// Überprüfen, ob sich die Bewertung geändert hat
if (rating != prevRating)
{
playWarnTone(); // Warnsignal abspielen
switch (rating)
{
case 0:
OFFLEDS(); // Alle LEDs ausschalten
digitalWrite(LEDGREEN_PIN, LOW); // Grüne LED einschalten
break;
case 1:
OFFLEDS(); // Alle LEDs ausschalten
digitalWrite(LEDYELLOW_PIN, LOW); // Gelbe LED einschalten
break;
case 2:
OFFLEDS(); // Alle LEDs ausschalten
digitalWrite(LEDRED_PIN, LOW); // Rote LED einschalten
break;
default:
OFFLEDS(); // Alle LEDs ausschalten
digitalWrite(LEDGREEN_PIN, LOW); // Grüne LED einschalten
break;
}
}
// Aktuelle Bewertung speichern
prevRating = rating;
}
```