Daten anzeigen
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
#include "SoftwareSerial.h" #include "DHT.h" SoftwareSerial BTSerial(2, 3); // über Bluetooth vom Smartphone gesendeter Wert char btDaten; // Pin des DHT-Sensors int SENSOR_DHT = 8; // Sensortyp festlegen // DHT22 oder DHT11 #define SensorTyp DHT11 // Sensor DHT einen Namen zuweisen DHT dht(SENSOR_DHT, SensorTyp); void setup() { BTSerial.begin(9600); Serial.begin(9600); delay(500); // DHT-Sensor starten dht.begin(); } void loop() { if (BTSerial.available()) { // vom Smartphone gesendeten Wert lesen btDaten = BTSerial.read(); if (btDaten == '1') { // Daten lesen String Temperatur = String(dht.readTemperature()); String Luftfeuchtigkeit = String(dht.readHumidity()); // in Strings umwandeln, . durch , ersetzen Temperatur.replace(".", ","); Luftfeuchtigkeit.replace(".", ","); // Daten in der App ausgeben BTSerial.println("Temperatur: "); BTSerial.println(Temperatur + "\u00b0C"); BTSerial.println("Luftfeuchtigkeit:"); BTSerial.println(Luftfeuchtigkeit + "%"); BTSerial.println("----------"); // Daten im Seriellen Monitor ausgeben Serial.print("Temperatur: "); Serial.println(Temperatur + " °C"); Serial.print("Luftfeuchtigkeit: "); Serial.println(Luftfeuchtigkeit); Serial.println("-------------------------"); } } } |
Daten anzeigen und speichern
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
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 String Temperatur = String(dht.readTemperature()); String Luftfeuchtigkeit = String(dht.readHumidity()); // in Strings umwandeln, . durch , ersetzen Temperatur.replace(".", ","); Luftfeuchtigkeit.replace(".", ","); // Daten in der App ausgeben BTSerial.print(aktuell.toString(Datum)); BTSerial.print(F(" ")); BTSerial.println(aktuell.toString(Zeit)); BTSerial.println(F("Temperatur: ")); BTSerial.println(Temperatur); BTSerial.println(F("Luftfeuchtigkeit:")); BTSerial.println(Luftfeuchtigkeit + "%"); BTSerial.println(F("----------")); // Daten im Seriellen Monitor ausgeben Serial.print(aktuell.toString(Datum)); Serial.println(aktuell.toString(Zeit)); Serial.print(F("Temperatur: ")); Serial.println(Temperatur + " C"); Serial.print(F("Luftfeuchtigkeit:")); Serial.println(Luftfeuchtigkeit); Serial.println(F("-------------------------")); } // Daten in Datei Messung.csv schreiben if (btDaten == '2') { // Daten lesen String Temperatur = String(dht.readTemperature()); String Luftfeuchtigkeit = String(dht.readHumidity()); // in Strings umwandeln, . durch , ersetzen Temperatur.replace(".", ","); Luftfeuchtigkeit.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) + ';'); Temperaturmessung.print(aktuell.toString(Zeit) + ';'); Temperaturmessung.print(Temperatur + ";"); Temperaturmessung.print(Luftfeuchtigkeit); Temperaturmessung.println(); // Datei schließen Temperaturmessung.close(); BTSerial.println(F("Abgeschlossen.")); } else BTSerial.println(F("Daten konnten nicht geschrieben werden!")); } // 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(); } else BTSerial.println(F("Daten konnten nicht geschrieben werden!")); } // 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!")); } else BTSerial.print("Datei nicht gefunden!"); } } } |
Letzte Aktualisierung: