Daten mittels http über LAN (Ehternet) übertragen

Hi

Ich bin auf der Suche nach einer Lösung, die auch funktioniert.

Ich habe mit Arduino Mega und 2 Nano sowie 7 Sensoren eine Wetterstation aufgebaut. Diese läuft und sendet alle 10 Minuten die Daten per http - Protokoll an die Wetter-Cloud (also extern).
Nun möchte ich auch die selben Daten lokal im Haus weiter verwenden, nämlich auf einem Raspberry 4, via mysql/MariaDB speichern.
Im Sketch vom Arduino Mega ist die Sequence (client.print) erstellt und gibt keine Fehlermeldung zurück (Serial-Monitor)
Auf dem Raspi habe ich ein php script erstellt, der bei Run jedoch „ (program exited with code: 0)“ zurück gibt

Der script habe ich von einem Tut entnommen und entsprechend angepasst. Nur bin ich mir mit der Schreibweise für MariaDb hier nicht sicher

Gibt es da eine Möglichkeit, mir da weiter zu helfen?

Arduino_LAN-Data_send.txt (1.48 KB)

php_receiving _data.txt (1.76 KB)

Ohne dass Du uns die Quelltexte gibst? Da sehe ich kaum Möglichkeiten.

Gruß Tommy

Quellenliste?

es sind beide im Anhang Sketch-Teil von Arduino PGM sowie der gesamte Script vom php-file

Gruss Max

This is the full Code/Sketch

Max

code Weatherstation_k.txt (13.7 KB)

Vorhin waren die Anhänge noch nicht dran.

Was funktioniert denn nicht? Hast Du Dir mal im php die Inhalte der Variablen ausgegeben?

Gruß Tommy

Edit: Dein Zeilenaufbau ist falsch. Die Zeile sollte so aussehen:

url/file.php?var1=wert1&var2=wert2&...

/ haben da drin nichts zu suchen.

hi Tommy
besten Dank für die Unterstützung

habe nun bemerkt, dass der Aufruf in Sketch von der Station (Zeile 391) falsch war, bzw die aufzurufende php- Datei gar nicht erwähnt ist. Dies ist nun korrigiert.

Trotzdem hat sich nichts geändert. Im Serial-Monitor bekomme ich die Bestätigung, dass die Daten gesendet werden.

Ich kann jedoch nicht sehen, ob der Raspi (Server) eine Meldung zurück gibt, ebenfalls sehe ich auf dem Raspi nicht, ob, was und wie die Sendung ankommt.

Dann hast Du 3 Möglichkeiten:

  1. Das PHP schickt die Daten zurück und Du wertest die HTTP-Antwort aus
  2. Das PHP schreibt die erhaltenen Daten in ein Log-File auf dem Raspi, das Du dann lesen kannst.

In beiden Fällen sollte das Array $_REQUEST Dir die Inhalte liefern.

  1. Zu Testzwecken die Parameter vor dem Senden in einen String schreiben und diesen auf dem seriellen Monitor ausgeben.
    Den kannst Du dann auch im Browser nutzen, um Dein PHP zu testen.

Gruß Tommy