kostenloser Webspace werbefrei: lima-city


Verbindung Arduino mit mysql

lima-cityForumProgrammiersprachenSonstige Programmiersprachen

  1. Autor dieses Themas

    reith

    reith hat kostenlosen Webspace.

    Ist es möglich mit dem Arduino-Board direkt Daten an den mysql-Server von Lima-city zu senden und wie müsste dann der Sketch ausehen? Leider bin ich mit den eigenen Versuchen nicht erfolgreich gewesen.
    Vielen Dank für die Unterstützung!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. mein-wunschname

    mein-wunschname hat kostenlosen Webspace.

    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?
  4. Autor dieses Themas

    reith

    reith hat kostenlosen Webspace.

    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.");
    }
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    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);
    …
  6. Autor dieses Themas

    reith

    reith hat kostenlosen Webspace.

    Herzlichen Dank, es funtioniert.
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!