esp8266 get su file php

270 views
Skip to first unread message

Simone

unread,
Jun 25, 2017, 10:45:30 AM6/25/17
to Treviso Arduino User Group
Buon giorno.
Avrei bisogno di un aiutino.
Sto cercando di inviare dei dati da esp8266 ad un file php con il comando get.
se digito sul motore di ricerca funziona.
Ma sembra che arduino non comunichi con il motore di ricerca.
sto usando xampp : apache post: 80,433
                                mysql    port:  3306

il file si trova in localhost/arduino
                         127.0.0.1/arduino
il file php=

    <?php
//controllo se sono presenti i parametri valore e localita
if(($_GET['valore']) && ($_GET['localita']))
{
//Recupero il valore del parametro "valore"
$valore = $_GET['valore'];
 
//Recupero il valore del parametro "localita"
$localita = $_GET['localita'];}
echo $localita. "<br>";
echo $valore;
?>
file arduino inviato con esp8266=

 /*
 *  This sketch demonstrates how to set up a simple HTTP-like server.
 *  The server will set a GPIO pin depending on the request
 *    http://server_ip/gpio/0 will set the GPIO2 low,
 *    http://server_ip/gpio/1 will set the GPIO2 high
 *  server_ip is the IP address of the ESP8266 module, will be 
 *  printed to Serial when the module is connected.
 */

#include <ESP8266WiFi.h>
String strURL = "";
const char* ssid = "xxxxxxx";
const char* password = "xxxxxxxx";
const char* server = "http://127.0.0.1";
//byte server[] = {127,0,0,1};
// Create an instance of the server
// specify the port to listen on as an argument
WiFiClient client;

void setup() {
  Serial.begin(115200);
  delay(10);

  
  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  
  // Start the server
   Serial.println("Server started");

  // Print the IP address
  Serial.println(WiFi.localIP());
}

void loop() {
if (client.connect(server,80)) {
//creo l'url utilizzanso una stringa
strURL = "GET /index.php?valore=10";
strURL += "&localita=10";
 
//invio la richiesta al server
client.print(strURL);
client.println( " HTTP/1.1");
client.println( "Host: http://127.0.0.1" );
//client.print(" Host: ");
//client.println(server);
//client.println( "Content-Type: application/x-www-form-urlencoded" );
client.println("Connection: close");
client.println();
client.println();
//chiudo la connessione
client.stop();

 Serial.println("inviato");
 }
 else{
  Serial.println("fallito");
  }
 delay( 1000 );
 }




Non capisco dove sia l'errore.
Grazie 
Ci vediamo lunedi sera a montebelluna

 

Alberto Righetto

unread,
Jun 25, 2017, 6:23:19 PM6/25/17
to treviso_ardui...@googlegroups.com
Credo che che il problema sia in:
const char* server = "http://127.0.0.1";
Togli http:// e dovrebbe funzionare:
const char* server = "127.0.0.1";

Ciao
Alberto

--
--
----
Per mandare un messaggio al gruppo "Treviso Arduino User Group", invialo a:
treviso_arduino_user_group@googlegroups.com
Per annullare l'iscrizione a questo gruppo, invia un'email a:
treviso_arduino_user_group+unsub...@googlegroups.com
Per altre informazioni, visita la url:
http://groups.google.com/group/treviso_arduino_user_group

---
You received this message because you are subscribed to the Google Groups "Treviso Arduino User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to treviso_arduino_user_group+unsub...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Mirco Piccin

unread,
Jun 26, 2017, 3:07:55 AM6/26/17
to Treviso Arduino User Group
Ciao,

>> Sto cercando di inviare dei dati da esp8266 ad un file php con il comando get.
>> se digito sul motore di ricerca funziona.
>> Ma sembra che arduino non comunichi con il motore di ricerca.

Alberto segnala correttamente che il server deve essere nel formato
solo hostname / ip senza protocollo. Stessa cosa qui:
client.println( "Host: http://127.0.0.1" );
diventa
client.println( "Host: 127.0.0.1" );

Poi aggiungo: metti nel tuo codice una parte che intercetti la
ruisposta del server e te la visualizzi sulla porta seriale, così da
avere feedback (così come lo hai quando imputi a mano la GET).
Nei classici esempi trovi nel loop:

if (client.available()) {
char c = client.read();
Serial.print(c);
}

ed è esattamente quel che ti serve.
Non son poi sicuro che stasera ci sia incontro a Montebelluna!
Vediamo che dicono dalla regia!

Saluti
Mirco

Diego Marconato

unread,
Jun 26, 2017, 3:51:56 AM6/26/17
to treviso_ardui...@googlegroups.com
si e' confermato incontro questa sera a Montebelluna dalle 21 e 30. ciao

Simone

unread,
Jun 26, 2017, 8:43:21 AM6/26/17
to Treviso Arduino User Group
Nelle prove effettuate senza senza "htt://" ,esp non si collega.
Ne parliamo stasera. Ciao
 

Simone

unread,
Jun 27, 2017, 10:22:07 AM6/27/17
to Treviso Arduino User Group
Grande serata quella di ieri sera: ho imparato cose nuove ma soprattutto ho risolto il mio problema. A casa ho scoperto un bug sulla get di arduino, uno spazio in più che sballava la stringa get.
Nozione acquisite:
xampp non mette ip della macchina ,va inserito manualmente sul file config
Grazie a tutti
Reply all
Reply to author
Forward
0 new messages