Verbindung Arduino mit mysql
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
auslese
beispiel
code
datenbank
datum
einlesen
http
information
input
kommunizieren
programm
server
sketch
teilweise funktionierenden sketch
test
tun
verbindung
versuchen
voraussetzung
wichtige voraussetzungen
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Grundsätzlich ersteinmal: ja, ist möglich, wichtige Voraussetzungen sind:
- das Board hat eine Verbindung zum Internet, nicht nur zu anderen Geräten in lokalen Netz
- auf dem Board kann man Programme installieren, die es erlauben, eine Verbindung mit einer MySQL-Datenbank herzustellen und mit ihr zu kommunizieren, das ist in sehr, sehr vielen Fällen PHP
Die Informationen über die Voraussetzungen auf dem Arduino-Board sind leider etwas dürftig.
Die Voraussetzungen bzw. Informationen, die notwendig sind, um eine Verbindung mit einer MySQL-Datenbank herzustellen sind eigentlich immer die gleichen:
Server- bzw. Hostname: an Stelle von localhost hier mysql.lima-city.de
Benutzername
Passwort
Datenbank
Wenn ich dieses Beispiel richtig verstehe
http://fluuux.de/2012/09/arduino-mysql-temperatur-sensoren-uber-webserver-auslesen/
so wird dort davon ausgegangen, dass das Board die Daten mit Hilfe eines C-Programms, das auf dem Board läuft, an ein PHP-Programm sendet, das auf einem anderen Gerät (Server) läuft. Erst dieses PHP-Programm schreibt dann die Informationen in die MySQL-Datenbank.
Ein anderes Beispiel:
http://drcharlesbell.blogspot.de/2013/04/introducing-mysql-connectorarduino_6.html
zeigt aber, dass der Umweg über PHP nicht notwendig ist und man eine MySQL-Datenbank auch direkt ansprechen kann.
Worin bestanden denn deine eigenen Versuche? -
Herzlichen Dank für die Tips.
Die Datenbankanbindung funktioniert, aber leider werden nur Nullwerte in die DB geschrieben. Ich fürchte das hat mit den Datentypen zu tun, aber ich habe keine Lösung für das Problem gefunden.
Auf http://www.xively.com habe ich eine Plattform gefunden wie ich meine Daten uploaden und Darstellen kann.
Das Listing meines nur teilweise funktionierenden Sketch.
#include "SPI.h" #include "Ethernet.h" #include "sha1.h" #include "mysql.h" /* Setup for Ethernet Library */ byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress server_addr(212, 83, 45, 132); /* Setup for the Connector/Arduino */ Connector my_conn; // The Connector/Arduino reference const int analogPin = A0; const int analogPin1 = A1; char user[] = "USERXXXXXX"; char password[] = "XXXXXXX"; char INSERT_SQL[] = "INSERT INTO db_XXXXXX_1.test VALUES ('Label4','Label5')"; int Label4 = 0; int Label5 = 0; void setup() { pinMode(analogPin, INPUT); pinMode(analogPin1, INPUT); /* Ethernet.begin(mac_addr); Serial.begin(9600); delay(1000); Serial.println(Label4); Serial.print("server is at "); Serial.println(Ethernet.localIP()); Serial.println("Connecting..."); if (my_conn.mysql_connect(server_addr, 3306, user, password)) { delay(500); my_conn.cmd_query(INSERT_SQL); Serial.println("Query Success!"); } else Serial.println("Connection failed.");*/ } void loop() { Label4 = analogRead(analogPin); Label5 = analogRead(analogPin1); Ethernet.begin(mac_addr); Serial.begin(9600); delay(10000); Serial.println(Label4); Serial.println(Label5); Serial.print("server is at "); Serial.println(Ethernet.localIP()); Serial.println("Connecting..."); if (my_conn.mysql_connect(server_addr, 3306, user, password)) { delay(500); my_conn.cmd_query(INSERT_SQL); Serial.println("Query Success!"); } else Serial.println("Connection failed."); }
-
Das könnte daran liegen, dass das Statement so wie es ist ausgeführt wird. Könnte es sein, dass du eher so etwas vor hast?
const char * INSERT_SQL = "INSERT INTO db_XXXXXX_1.test VALUES ('%d','%d')"; char query[64]; … // Label4 und Label5 einlesen sprintf(query, INSERT_SQL, Label4, Label5); my_conn.cmd_query(query); …
-
Herzlichen Dank, es funtioniert.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage