Go Down

Topic: arduino uno wifi-shied und MySql (Read 784 times) previous topic - next topic

habeda

Hallo,
ich versuche gerade Daten über Wlan an eine mysql Datenbank zu senden.
Dazu habe ich auf einem windows 7 (windows 8 geht nicht!) einen hotspot erstellt. Die Verbindung funktioniert ohne probleme und auch die Serverbeispiele aus der IDE.

Richte mich nach folgendem Beispiel aus github komme aber nicht weiter:
https://github.com/bsalinas/POST-Arduino-Data

Stattdessen gibt der Seriell monitor die fehlermeldung connection failed aus. folglich schlägt die verbindung zur datenbank fehl.
woran liegt das?

hier mein Arduino sketch und meine php datei:
Code: [Select]

#include <SPI.h>
#include <WiFi.h>
char ssid[] = "hotspot";      // Netzwerkname
char password[] = "12345678"; // Passwort
int status = WL_IDLE_STATUS;
WiFiClient client;

// EDIT: 'Server' address to match your domain
char server[] = "127.0.0.1"; // This could also be 192.168.1.18/~me if you are running a server on your computer on a local network.
                             // IP Adresse des Servers bzw.der über phpMyAdmin ausgegeben wird?
                             
// This is the data that will be passed into your POST and matches your mysql column
int yourarduinodata = 999;
String yourdatacolumn = "yourdata=";
String yourdata;

void setup() {
  Serial.begin(9600);
  connectWifi();
  postData();
}

void loop() {
}

void connectWifi() {
  // Attempt to connect to wifi network
  while ( status != WL_CONNECTED) {
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
    status = WiFi.begin(ssid, password);
    delay(10000);
  }
}

// This method makes a HTTP connection to the server and POSTs data
void postData() {
  // Combine yourdatacolumn header (yourdata=) with the data recorded from your arduino
  // (yourarduinodata) and package them into the String yourdata which is what will be
  // sent in your POST request
  yourdata = yourdatacolumn + yourarduinodata;
  
  // If there's a successful connection, send the HTTP POST request
  if (client.connect(server, 3306)) { //3306 ist der Port von MySql
    Serial.println("connecting...");

    // EDIT: The POST 'URL' to the location of your insert_mysql.php on your web-host
    client.println("178.202.228.171/insert_mysql.php HTTP/1.1"); //Hier sollte der Pfad der php Datei rein oder?
                                                                 //folglich IP und Pfad?   

    // EDIT: 'Host' to match your domain
    // den Teil verstehe ich nicht ??
    client.println("Host: www.yourdomain.com");
    client.println("User-Agent: Arduino/1.0");
    client.println("Connection: close");
    client.println("Content-Type: application/x-www-form-urlencoded;");
    client.print("Content-Length: ");
    client.println(yourdata.length());
    client.println();
    client.println(yourdata);
  } 
  else {
    // If you couldn't make a connection:
    Serial.println("Connection failed");
    Serial.println("Disconnecting.");
    client.stop();
  }
}



und php:

Code: [Select]

<?php

foreach ($_REQUEST as $key => $value)
{
if ($key == "yourdata") {
$yourdata $value;
}
}

// EDIT: Your mysql database account information
$username "johnn";
$password "passwort";
$database "johann";
$tablename "test";
$localhost "localhost";

// Check Connection to Database
if (mysql_connect($localhost$username$password))
  {
  
@mysql_select_db($database) or die ("Unable to select database");

    
// Next two lines will write into your table 'test_table_name_here' with 'yourdata' value from the arduino and will timestamp that data using 'now()'
    
$query "INSERT INTO $tablename VALUES ($yourdata,now())";
  
$result mysql_query($query);
  } else {
  
echo('Unable to connect to database.');
  }
?>


qualidat

Ähm ... habe ich da etwas missverstanden? Oder du? So wie es aussieht, versucht du, den Aufruf eines PHP-Scriptes auf einen MySql-Server loszulassen? Das wird so Nichts.

Also entweder brauchst du zusätzlich einen Webserver mit PHP-Interpreter und MySQL (z.B. XAMPP) oder du versuchst direkt mit dem Arduino auf MySQL zuzugreifen. Da gibst doch was ... :

https://launchpad.net/mysql-arduino

Go Up