void loop() { if (BTSerial.available()) { // vom Smartphone gesendeten Wert lesen btDaten = BTSerial.read(); if (btDaten == '1') { DateTime aktuell = rtc.now(); char Datum[] = "DD.MM.YYYY "; char Zeit[] = "hh:mm:ss"; // Daten lesen float Temperatur = dht.readTemperature(); float Luftfeuchtigkeit = dht.readHumidity(); // in Strings umwandeln, . durch , ersetzen AnzeigeTemperatur = String(Temperatur); AnzeigeTemperatur.replace(".", ","); AnzeigeLuftfeuchtigkeit = String(Luftfeuchtigkeit); AnzeigeLuftfeuchtigkeit.replace(".", ","); // Daten in der App ausgeben BTSerial.println(aktuell.toString(Zeit)); BTSerial.println(F("Temperatur: ")); BTSerial.println(AnzeigeTemperatur + " °C"); BTSerial.println("Luftfeuchtigkeit:"); BTSerial.println(AnzeigeLuftfeuchtigkeit + "%"); BTSerial.println(F("----------")); // Daten im Seriellen Monitor ausgeben Serial.print(aktuell.toString(Datum)); Serial.println(aktuell.toString(Zeit)); Serial.print(F("Temperatur: ")); Serial.println(AnzeigeTemperatur + " C"); Serial.print("Luftfeuchtigkeit:"); Serial.println(AnzeigeLuftfeuchtigkeit); Serial.println(F("-------------------------")); } // Daten in Datei Messung.csv schreiben if (btDaten == '2') { // Daten lesen float Temperatur = dht.readTemperature(); float Luftfeuchtigkeit = dht.readHumidity(); // in Strings umwandeln, . durch , ersetzen AnzeigeTemperatur = String(Temperatur); AnzeigeTemperatur.replace(".", ","); AnzeigeLuftfeuchtigkeit = String(Luftfeuchtigkeit); AnzeigeLuftfeuchtigkeit.replace(".", ","); /* O_CREAT -> Datei erstellen, wenn sie nicht existiert O_WRITE -> in die Date schreiben O_AT_END -> Startposition zum Schreiben an das Ende der Datei setzen */ Temperaturmessung.open("Messung.csv", O_CREAT | O_WRITE | O_AT_END); // wenn die Datei geöffnet werden konnte ... if (Temperaturmessung) { BTSerial.println(F("Schreibe Messdaten")); // Überschrift schreiben schreibeUeberschrift(); DateTime aktuell = rtc.now(); char Datum[] = "DD.MM.YYYY "; char Zeit[] = "hh:mm:ss"; Temperaturmessung.print(aktuell.toString(Datum) + TrennZeichen); Temperaturmessung.print(aktuell.toString(Zeit) + TrennZeichen); Temperaturmessung.print(AnzeigeTemperatur + TrennZeichen); Temperaturmessung.print(AnzeigeLuftfeuchtigkeit); Temperaturmessung.println(); // Datei schließen Temperaturmessung.close(); BTSerial.println(F("Abgeschlossen.")); } } // Daten lesen if (btDaten == '3') { Temperaturmessung = SD.open("Messung.csv", O_RDONLY); if (Temperaturmessung) { // solange sich Zeilen in der Datei befinden ... while (Temperaturmessung.available()) { // ... bis return lesen ('\n') String GeleseneZeile = Temperaturmessung.readStringUntil('\n'); // für die bessere Lesbarkeit ; durch Leerzeichen ersetzen GeleseneZeile.replace(";", " "); // in der App und im Seriellen Monitor ausgeben Serial.println(GeleseneZeile); BTSerial.print(GeleseneZeile); } // Datei schließen Temperaturmessung.close(); } } // Datei entfernen if (btDaten == '4') { if (SD.exists("Messung.csv")) { SD.remove("Messung.csv"); Serial.println(F("Datei 'Messung.csv' entfernt!")); BTSerial.println(F("Datei 'Messung.csv' entfernt!")); } } } }