Und zwar habe ich den Code jetzt nochmal verändert. Hatte es irgendwie nicht korrekt eingrefügt.
#include <Time.h>
#include <Wire.h>
#include <DS1307RTC.h>
#include <DHT.h>
#include <DHT_U.h>
#include <Adafruit_Sensor.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //In dieser Zeile wird festgelegt, welche Pins des Mikrocontrollerboards für das LCD verwendet wird
DHT dht(10, DHT11);
DHT dht1(7, DHT11);
void setup()
{
dht.begin();
dht.begin();
lcd.begin(16, 2); //Im Setup wird angegeben, wie viele Zeichen und Zeilen werwendet werden.
Serial.begin(9600); //Öffnet den seriellen Port und legt die Baud Rate (9600) für die serielle Übertragung fest.
setSyncProvider(RTC.get); //Dies ist die Funktion um die Zeit- und Datumsangabe von der RTC zu bekommen
boolean summertime_EU(int year, byte month, byte day, byte hour, byte tzHours)
// European Daylight Savings Time calculation by "jurs" for German Arduino Forum
// input parameters: "normal time" for year, month, day, hour and tzHours (0=UTC, 1=MEZ)
// return value: returns true during Daylight Saving Time, false otherwise
{
if (month<3 || month>10) return false; // keine Sommerzeit in Jan, Feb, Nov, Dez
if (month>3 && month<10) return true; // Sommerzeit in Apr, Mai, Jun, Jul, Aug, Sep
if (month==3 && (hour + 24 * day)>=(1 + tzHours + 24*(31 - (5 * year /4 + 4) % 7)) || month==10 && (hour + 24 * day)<(1 + tzHours + 24*(31 - (5 * year /4 + 1) % 7)))
return true;
else
return false;
}
void loop()
{
//Auslesen und Zwischenspeichern der Temperarur- und Feuchtigkeitswerte
int t = dht.readTemperature();
int h = dht.readHumidity();
int t1 = dht.readTemperature();
int h1 = dht.readHumidity();
//Anzeigen der Werte
lcd.setCursor(0,0); //Selektion 1. Zeile (man beginnt beim Zählen mit 0)
lcd.print("T1: ");
lcd.print(t);
lcd.print("'C");
lcd.setCursor(0,1); //Selektion 2. Zeile
lcd.print("F1: ");
lcd.print(h);
lcd.print("%");
delay(5000);
lcd.setCursor(0,0); //Selektion 1. Zeile (man beginnt beim Zählen mit 0)
lcd.print("T2: ");
lcd.print(t1);
lcd.print("'C");
lcd.setCursor(0,1); //Selektion 2. Zeile
lcd.print("F2: ");
lcd.print(h1);
lcd.print("%");
delay(5000);
Serial.print(hour()); //Serial.print ist der Befehl etwas im seriellen Monitor anzuzeigen (Stunde, Minute, Sekunde, Leerzeichen, Tag, Leerzeichen, usw.)
printDigits(minute()); //bei den Minuten und Sekunden wird der Befehl
printDigits(second()); //printDigits angegeben welcher am Ende des Codes noch festgelegt wird.
Serial.print(" ");
Serial.print(day( ));
Serial.print(" ");
Serial.print(month());
Serial.print(" ");
Serial.print(year());
Serial.println();
//delay(1000); //warte eine Sekunde
lcd.setCursor(0,0);
lcd.print(hour()); //Hier soll jetzt die Uhrzeit angezeigt werden, also „hour" „:" „minute" usw..
lcd.print(":");
lcd.print (minute());
lcd.print(":");
lcd.print(second());
lcd.print(" ");
lcd.print("Uhr"); //Hier soll nach der Uhrzeit noch das Wort „Uhr" angezeigt werden, dazu müssen noch3 Leerzeichen folgen, sonst würde bei Zahlen <10 immer ein weiteres „r" hinter Uhr angezeigt werden. Das liegt daran, dass in der LCD Library der Befehl eine 0 vor Zahlen <10 anzuzeigen nicht vorhanden ist.
lcd.print(" ");
lcd.print(" ");
lcd.print(" ");
lcd.setCursor(0, 1); // Der nächste „Text" soll nun beim zweiten Zeichen in der zweiten Reihe beginnen.
lcd.print(day()); // Das Datum soll nun als
lcd.print("."); // „Tag", „." „Monat" usw. angegeben werden.
lcd.print(month());
lcd.print(".");
lcd.print(year());
delay(5000);
lcd.clear();
}
void printDigits(int digits) //In diesem Abschnitt wird festgelgt, dass bei Zahlen <10 im seriellen Monitor automatisch eine 0 vor den Ziffern angezeigt wird. Das gilt nur für den seriellen Monitor und nicht für LCD Display.
{
Serial.print(":");
if(digits < 10)
Serial.print('0');
Serial.print(digits);
delay(5000);
}
Jetzt habe ich den Fehler:
a function-definition is not allowed here before '{' token
könnte eventuell einer mal drüber schauen. Weil mir erschließt sich nicht warum diese Fehlermeldung.
Rot makiert ist im Sketch die Zeile unter void printDigits...
Also die Zeile wo nur eine Geschwungene Klammer ist.
Danke falls jemand nochmal drüber schaut
LG