Update Home
parent
264d1ab725
commit
314f394a5c
118
Home.md
118
Home.md
@ -16,120 +16,4 @@ Auf dem Display wird die Aktuelle Temperatur, die Luftfeuchtigkeit und Regen ang
|
|||||||
* LEDs (rot, gelb, grün)
|
* LEDs (rot, gelb, grün)
|
||||||
* Buzzer
|
* Buzzer
|
||||||
* Widerstände
|
* Widerstände
|
||||||
* Verbindungskabel
|
* 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