Go Down

Topic: Problema comunicazione client (arduino) - server php (Read 499 times) previous topic - next topic

semresca

Ciao ragazzi,
ho un problema durante la comunizaione tra server e client.
Il client esegue la prima richiesta al server di un dato, il server risponde facendo un randon tra 1 e 100 e lo stampa con un echo, il client riceve la risposta poi tramite substring rimuovo tutto l'output del server ("HTTP 200 OK....") e tengo solamente il dato che mi interessa.
E qui viene il problema, il client esegue la prima richiesta ed elabora come sopra scritto, ma dopo continua a stampare sempre lo stesso dato come se non eseguisse piĆ¹ la GET verso il server.
Allego il codice di arduino e del server per capire meglio il problema.

Client arduino:
Code: [Select]
#include <SPI.h>
#include <Ethernet.h>

// ethernet mac address - must be unique on your network
byte mymac[] = { 0x90,0xA2,0xDA,0x00,0x3B,0xD4 };
// ethernet shield interface ip address
byte myip[] = { 192,168,1,10 };
// server ip address
byte srv[] = { 192,168,1,5 };
// inizialize connection to server
EthernetClient client;
// String with the server response
String serverResponse="";

void setup() {
  Ethernet.begin(mymac, myip);
  Serial.begin(9600);
 

  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  connection();
}

void connection() {
  Serial.print("connecting");
  delay(350);
  Serial.print(".");
  delay(350);
  Serial.print(".");
  delay(350);
  Serial.println(".");
 
  if(client.connect(srv, 80)) {
    Serial.println("connected!");
  }
  else {
    Serial.println("connection failed");
    Serial.println("retring");
    Serial.println("");
    connection();
  }
}

void request() {
    client.println("GET /WebServer/invio.php HTTP/1.0");
    client.println("HOST: localhost");
    client.println("");
}

void getResponse() {
     char c;
   
     while((c=client.read())!=-1){
     serverResponse=serverResponse+c;
    }
    int i=serverResponse.lastIndexOf('<')+1;
    int j=serverResponse.lastIndexOf('>');
    serverResponse=serverResponse.substring(i, j);
    Serial.println(serverResponse);
}

void loop() {
  request();
  getResponse();
  delay(100);
}


Server php:
Code: [Select]
<?php

$pend
=rand(1100);

echo 
'<'.$pend.'>';

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy