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:
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:
#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:
<?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.');
}
?>