Home aktualisiert
parent
632b5773f8
commit
264d1ab725
115
Home.md
115
Home.md
@ -17,4 +17,119 @@ 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;
|
||||
}
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user