write und getdata.php auf Synology

Status
Für weitere Antworten geschlossen.

Matze_83

Benutzer
Mitglied seit
10. Dez 2014
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen!

Ich würde gerne Temperaturwerte über einen Arduino mit http-Aufruf an eine DB auf meiner DS114 senden. Es gibt diverse Projektbeschreibungen dazu im Web (Z. B. hier bei Golem).

Allerdings stehe ich bei der Diskstation total auf dem Schlauch: Eine DB habe ich mit Maria-DB angelegt und mit PHPmyAdmin entsprechend gestaltet. Aber wie rufe ich die jetzt auf? Wo kommen die Dateien für die Dateneingabe und -auslesen auf der Diskstation hin, damit das auch funktioniert?

VIelen Dank für eure Hilfe und schon mal einen guten Rutsch.
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.515
Punkte für Reaktionen
1.110
Punkte
194
Ich verstehe die Frage nicht ganz. Die Daten kommen in deine Datenbank. Entweder kann das Arduino die Daten direkt in die Datenbank schreiben oder du musst mittels eines Skriptes auf der DSM die Daten des Boards per PHP oder Pearl-Skript o.ä. auslesen. Wenn du bereits ein solches PHP-Skript hast, dann gehört diese in das \WEB\ Verzeichnis deiner DS.
 

firatar

Benutzer
Mitglied seit
20. Dez 2017
Beiträge
6
Punkte für Reaktionen
0
Punkte
0
Hi Matze,

ich mache gerade das gleiche Projekt. Du musst die WebStation aktivieren, damit du in der FileStation den web-Ordner hast. Da drinn habe ich einen Ordner "test" erstellt und in diesem liegen PHP-Skripte, welche ich mit dem Arduino aufrufe und meine Daten mitgebe.

Beispiel: Name und Alter in der DB speichern:

HTTP GET Request: 192.168.1.123/test/data.php?Name=Matze&Alter=34 (Aufruf kannst du lokal in deinem testen mit der IP von deinem NAS)

Das PHP-Skript sieht so aus:

<?php
$mysql_host = "localhost:/run/mysqld/mysqld10.sock"; //müsstest du so übernehmen können
$mysql_db = "Namen"; //Name deiner DB
$mysql_user = "root"; //DB User
$mysql_pw = ""; //DB User Passwort

//Daten aus dem GET-Request holen und in Variablen name und alter speichern. Falls nicht vorhanden wird name nicht gesetzt und alter auf 999 gesetzt.

isset($_GET['Name']) ? $name=$_GET['Name'] : $name='';
isset($_GET['Alter']) ? $alter=$_GET['Alter'] : $alter='999';

$connection = mysql_connect($mysql_host, $mysql_user, $mysql_pw) or die("Die Verbindung zur Datenbank ist fehlgeschlagen.");
mysql_select_db($mysql_db, $connection) or die("Datenbank konnte nicht ausgewaehlt werden.");

echo "Verbindung mit Datenbank erfolgreich ";


//Daten in DB schreiben. Tabelle heisst "Daten" und die Spalten name, n_alter und datum

$insert_data = "INSERT INTO `Daten` (`name`, `n_alter`, `datum`) VALUES ('$name', '$alter', NOW());";

mysql_query($insert_data, $connection) or die("Fehler beim Eintragen der Daten in die Datenbank!");

?>


Ich hoffe, ich konnte dir damit helfen.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat