Salve stavo provando a caricare su un database le temperature lette dall'Arduino traite Ethernet Shield ma sto riscontrando dei problemi.
Questo è il codice dell'Arduino:
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//indirizzo server web (locale)
IPAddress server(192, 168, 0, 5);
EthernetServer server1(80);
//indirizzo ip dell'Arduino
IPAddress ip(192, 168, 0, 10);
String strURL = "";
float temp = 0;
char c;
void setup()
{
Serial.begin(9600);
Ethernet.begin(mac);
server1.begin();
Serial.println("Ethernet Shield Arduino : Temperatura");
Serial.println(Ethernet.localIP());
}
void loop()
{
EthernetClient client = server1.available();
if(client){
while(client.connected())
{
if(client.available()){
char c = client.read();
}
if(c=='\n') {Serial.write(c) ;}
temp = analogRead(5);
temp = temp * 0.48828125;
//creo l'url utilizzanso una stringa
strURL = "GET arduino/indice.php?valore=";
strURL += (int)temp;
strURL += "&localita=Casa HTTP/1.1";
//invio la richiesta al server
client.println(strURL);
client.println("Host: localhost");
client.println("Connection: close");
client.println();
//esegui la richiesta ogni 10 secondi
delay(5000);
}
}}
Questo quello PHP salvato nella cartella www/arduino/ :
<?php
//controllo se sono presenti i parametri valore e localita
if(isset($_GET['valore']) && isset($_GET['localita']))
{
//Recupero il valore del parametro "valore"
$valore = $_GET['valore'];
//Recupero il valore del parametro "localita"
$localita = $_GET['localita'];
//eseguo la connessione al database sul server locale
//inserendo nome utente e password
$link = mysql_connect('localhost', '...', '...');
//gestione degli errori
if (!$link) {die('Impossibile connettersi: ' . mysql_error());}
//seleziono il databse di nome arduino
mysql_select_db("Arduino") or die( "Impossibile selezionare il database.");
//creo una stringa sql di inserimento con i valori
//recuperati dall'url
$sql = "INSERT INTO Temperature (Valore,Localita)";
$sql .= "VALUES ('" . $valore . "', '" . $localita . "')";
//eseguo la query
$retval = mysql_query( $sql, $link );
//gestione degli errori
if(! $retval ){die('Impossibile eseguire la query: ' . mysql_error());}
//chiudo la connessione al db
mysql_close($link);
}
?>
Qualcuno potrebbe aiutarmi ? Grazie.