INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Daten vom Sensor in einer Text-Datei auf meinem Web-Host speichern.
19.04.2019, 15:06
Beitrag #1
Daten vom Sensor in einer Text-Datei auf meinem Web-Host speichern.
Hallo zusammen,

Ich habe mir eine kleine Wetterstation mit den ESP 8255 D1 mini aufgebaut.
Ich benutze den Sensor von Bosch BME280.

Bisher klappt das auch sehr gut und ich kann die Daten auf dem Seriellen Monitor
und im Browser im eigenen Netzwerk ansehen.

Ich möchte nun diese Daten (Temperatur, Luftfeuchte und Luftdruck) in einer Text-Datei
auf meinem Web-Host speichern damit ich sie später in meine Webseite mit einbinden kann.

Dazu habe ich mir ein kleines PHP-Script geschrieben das mir die Daten in eine Text-Datei speichert.
Wenn ich nun Daten über den Browser von Hand eingebe klappt das alles super.
Ich mache das mit dem folgende Befehl:
http://www.meine Webseite.de/d1_mini/eingabe.php?daten=meine_BME280_daten

Es wird nun der Teil "meine_BME280_daten" mit Datum und Uhrzeit in meine Text-Datei geschrieben.

Wie kann ich das jetzt automatisch machen?
Ich habe das hier schon versucht, aber leider klappt das nicht.


Code:
void storeData(float tempValue,float pressValue){
    WiFiClient client;
    const char* host = "www.meine Webseite.de";
    const int httpPort = 80;
    if (!client.connect(host, httpPort)) {
      Serial.println("connection failed");
      return;
    }
  
    String url = "http://www.meine Webseite.de/d1_mini/eingabe.php?";
    url = url + "temp="+tempValue;
    url = url + "&press="+pressValue;

    client.print(String() );
  
    delay(10);
Ist das der falsche Weg oder stimmt etwas im Code nicht?
Ich kenne mich da zu wenig aus, vielleicht kann mir jemand helfen oder ein Tip geben?

Gruß Manny
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.04.2019, 17:01
Beitrag #2
RE: Daten vom Sensor in einer Text-Datei auf meinem Web-Host speichern.
Hallo,

(19.04.2019 15:06)Manny schrieb:  
Code:
String url = "http://www.meine Webseite.de/d1_mini/eingabe.php?";
    url = url + "temp="+tempValue;
    url = url + "&press="+pressValue;

    client.print(String() );
  
    delay(10);
Ist das der falsche Weg oder stimmt etwas im Code nicht?

Da baust url als String zusammen, dann hängst Du in der Stringklasse mit + "temp=" das ran und anschließend mit + tempValue den Wert. tempValue ist sicherlich kein String, Du hast nicht verraten, wo tempValue herkommt, welchen Typ die hat und was da drin ist...
Unabhängig davon schickst Du anschließend mit client.print(String() ); einen leeren String auf die Reise. Sollte da nicht der Inhalt von url geschickt werden?

Gruß aus Berlin
Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.04.2019, 17:18 (Dieser Beitrag wurde zuletzt bearbeitet: 19.04.2019 18:39 von Manny.)
Beitrag #3
RE: Daten vom Sensor in einer Text-Datei auf meinem Web-Host speichern.
hmm.. wie gesagt, keine Ahnung...
Hab da nur was Kopiert und angepasst, vermutlich falsch ?

Fakt ist das ist das hier über das Programm machen muss.
Zitat:Ich mache das mit dem folgende Befehl:
http://www.meine Webseite.de/d1_mini/eingabe.php?daten=meine_BME280_daten

"daten" ist doch meine Variable mit dem Inhalt:"meine_BME280_daten"

Ich muss also in die "daten" meine Messwerte bekommen und die durch das Programm übergeben?

(19.04.2019 17:01)amithlon schrieb:  Hallo,

(19.04.2019 15:06)Manny schrieb:  
Code:
String url = "http://www.meine Webseite.de/d1_mini/eingabe.php?";
    url = url + "temp="+tempValue;
    url = url + "&press="+pressValue;

    client.print(String() );
  
    delay(10);
Ist das der falsche Weg oder stimmt etwas im Code nicht?

Da baust url als String zusammen, dann hängst Du in der Stringklasse mit + "temp=" das ran und anschließend mit + tempValue den Wert.
Code:
tempValue ist sicherlich kein String,


Das ist eine Variable mit der aktuellen Temperatur.

Code:
Du hast nicht verraten, wo tempValue herkommt, welchen Typ die hat und was da drin ist...
-----------
float tempValue = bme.readTemperature(); //Temperatur vom Sensor lesen
float pressValue = (bme.readPressure() / 100.0F); // Luftdruck vom Sensor lesen
-----------------
Code:
Unabhängig davon schickst Du anschließend mit  client.print(String() );
einen leeren String auf die Reise.

Wie soll das denn aussehen?

Code:
Sollte da nicht der Inhalt von url geschickt werden?
Ja genau, das Ganze setzt sich ja aus der URL und den Variablen zusammen.

Gruß aus Berlin
Michael

Gruß Manny
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.04.2019, 19:25
Beitrag #4
RE: Daten vom Sensor in einer Text-Datei auf meinem Web-Host speichern.
Du musst natürlich auf Deinem Webserver auch ein Programm Eingabe. php haben/schreiben, das die Daten entgegen nimmt und in die Datei schreibt.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.04.2019, 19:55 (Dieser Beitrag wurde zuletzt bearbeitet: 19.04.2019 19:56 von amithlon.)
Beitrag #5
RE: Daten vom Sensor in einer Text-Datei auf meinem Web-Host speichern.
Hallo,

(19.04.2019 17:18)Manny schrieb:  Fakt ist das ist das hier über das Programm machen muss.

Ich mache das mit dem folgende Befehl:
http://www.meine Webseite.de/d1_mini/eingabe.php?daten=meine_BME280_daten

"daten" ist doch meine Variable mit dem Inhalt:"meine_BME280_daten"

Ich muss also in die "daten" meine Messwerte bekommen und die durch das Programm übergeben?
Ja und zwar als Text.

(19.04.2019 17:18)Manny schrieb:  
Code:
float tempValue = bme.readTemperature(); //Temperatur vom Sensor  lesen
  float pressValue = (bme.readPressure() / 100.0F); // Luftdruck vom Sensor  lesen
Das sind float-Variabeln, also binäre Darstellungen des Wertes als Wert und Exponent. Die kannst Du nicht einfach als String mit + anhängen. Eigentlich sollte da auch der Compiler maulen.
Also z.B. mit String(tempValue) einen Text aus dem float-Wert machen.

Befaß Dich mit Variabelntypen, deren Nutzung usw.

(19.04.2019 17:18)Manny schrieb:  
Code:
Sollte da nicht der Inhalt von url geschickt werden?
Ja genau, das Ganze setzt sich ja aus der URL und den Variablen zusammen.

Nein. Du schickst einen leeren String bei client.print(String() );
Sonst würde da ja client.print(url); stehen, wenn Du deren Inhalt senden wolltest...
Befasse Dich mit Funktionesaufrufen, Parametern usw.

@Tommy56: das php-Script schein ja zu laufen wenn sein Test aus dem Browser klappt. Zumindest habe ich es interpretiert...

Gruß aus Berlin
Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.04.2019, 13:31 (Dieser Beitrag wurde zuletzt bearbeitet: 20.04.2019 14:31 von Manny.)
Beitrag #6
RE: Daten vom Sensor in einer Text-Datei auf meinem Web-Host speichern.
(19.04.2019 19:25)Tommy56 schrieb:  Du musst natürlich auf Deinem Webserver auch ein Programm Eingabe. php haben/schreiben, das die Daten entgegen nimmt und in die Datei schreibt.

Gruß Tommy

Das habe ich laufen und es klappt auch ohne Probleme.

Ich will das lediglich nicht nur händisch über den Browser machen sondern automatisch vom Programm aus.
Das soll halt die gemessenen Daten aus den Variablen gleich über http in die Text-Datei schreiben.

Gruß Manny und schöne Ostertage..

Ich habe mir das Ganze noch einmal angesehen und mir was zusammen gebastelt das ihr vielleicht nachvollziehen könnt.

Das sind meine Variablen die ich von dem Sensor erhalte.
Type: float
bme.readTemperature()
bme.readHumidity()
bme.readPressure() / 100.0F

Es sind immer zwei Nachkommastellen.

Wenn ich nun diese Variablen mit int(Variablen*100) nehme mache ich doch aus:
24,23 = 2423 als Ganzzahl
würde dann so aussehen:
temp = (int(bme.readTemperature() *100))
feuchte = (int(bme.readHumidity()*100)
ldruck = (int((bme.readPressure() / 100.0F)*100)

Wenn ich das Ganze jetzt als String zusammen bastle den ich übergeben will,
will ich die Werte mit einem Komma trennen und abschließen mit |~|

Das wollte ich dann so machen:
String url = "http://www.meine Webseite.de/d1_mini/eingabe.php?";
url = url + tempValue + ",";
url = url + feuchteValue + ",";
url = url + ldruckValue; + "," +"|~| + "\r\n"
client.print(String(url));

Das alles im Programm dann so einbinden:
Code:
void storeData(tempValue,feuchteValue,ldruckValue){
    WiFiClient client;
    const char* host = "www.meine Webseite.de";
    const int httpPort = 80;
    if (!client.connect(host, httpPort)) {
      Serial.println("connection failed");
      return;
    }

   String url = "http://www.meine Webseite.de/d1_mini/eingabe.php?";
    url = url + tempValue + ",";
    url = url + feuchteValue + ",";
    url = url + ldruckValue; + "," +"|~| + "\r\n"
    client.print(String(url));

Geht das so oder habe ich ein Denk - oder Syntax - Fehler ? Huh

Gruß Manny und schöne Ostertage
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.04.2019, 20:26
Beitrag #7
RE: Daten vom Sensor in einer Text-Datei auf meinem Web-Host speichern.
(20.04.2019 13:31)Manny schrieb:  Geht das so oder habe ich ein Denk - oder Syntax - Fehler ? Huh

Das geht so nicht, es sind Denk- und ausreichend Syntaxfehler enthalten!

Wenn du die Tastenkombination Strg+R in der Arduino IDE mal betätigst, haut der Compiler dir die Fehler um die Ohren. Big Grin

Gruß Fips

Gruß Fips

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.04.2019, 09:13
Beitrag #8
RE: Daten vom Sensor in einer Text-Datei auf meinem Web-Host speichern.
(20.04.2019 20:26)Fips schrieb:  
(20.04.2019 13:31)Manny schrieb:  Geht das so oder habe ich ein Denk - oder Syntax - Fehler ? Huh

Das geht so nicht, es sind Denk- und ausreichend Syntaxfehler enthalten!

Wenn du die Tastenkombination Strg+R in der Arduino IDE mal betätigst, haut der Compiler dir die Fehler um die Ohren. Big Grin

Gruß Fips

Also ich habe den Teil mal am Seriellen Monitor getestet und da läuft alles super, ich bekomme genau den String den ich gerne hätte.
Der Compiler zeigt kein Fehler

Code:
temp = bme.readTemperature() *100;
    feuchte = bme.readHumidity()*100;
    ldruck = (bme.readPressure() / 100.0F)*100;

    String url = "http://www.meine Webseite.de/d1_mini/eingabe.php?";
    url = url + temp + ",";
    url = url + feuchte + ",";
    url = url + ldruck + "," +"|~|" +"\r\n";
    Serial.println(String(url));

Nur das Scheiben in die Datei im Web funktioniert nicht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  ESP32: Sensor via GPIO deaktivieren DivingJoe 21 887 18.02.2021 22:15
Letzter Beitrag: hotsystems
  ESP8266 SD CSV Datei Zeilen rückwärtz RobertHQ 7 366 14.02.2021 19:29
Letzter Beitrag: Corvus
  Bester Weg um Sensordaten zu speichern und auszuwerten basementmedia 42 2.323 06.01.2021 23:45
Letzter Beitrag: Tommy56
  Wo MQTT LogIn Daten einfügen? Steinspiel 10 830 28.12.2020 14:32
Letzter Beitrag: Tommy56
  ESP32: Binärdaten mit LittleFS speichern / Zerobytes in Strings ultralex 14 984 15.12.2020 14:00
Letzter Beitrag: Tommy56
  Daten auf webserver printen Andreas-ESP32-Beginner 4 511 13.12.2020 17:21
Letzter Beitrag: miq19
  Bewegung erkennen --> ESP8266 als Board --> Welcher Sensor wofür basementmedia 10 1.224 06.12.2020 11:18
Letzter Beitrag: Tellen
  serieller Monitor verschluckt Daten wonk 20 1.777 02.12.2020 21:22
Letzter Beitrag: Tommy56
  DHT 11 Sensor Ausgabe immer NULL (GELÖST) ErzGabriel 9 908 26.11.2020 20:50
Letzter Beitrag: uk1408
  DHT11 Daten via MQTT an Raspi senden Hanibal_Smith 5 584 10.11.2020 16:24
Letzter Beitrag: biologist

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste