Problema con la funzione client.connect

Salve a tutti e grazie in anticipo per la risposta, dispongo di una ethernet shield w5100 ,ho trovato un codice per arduino sul web per inviare dati a una pagina web php che carica i dati su un db,il problema è che non mi si connette,proprio sulla funzione client.connect(sto simulando un server web con easyphp ) per ip del server ho inserito l’IP del mio PC (statico ) 192.168.1.107 e per porta l’80 che è quella indicata da easyphp ,inoltre ho stabilito che l’IP di arduino è 192.168.1.108 dopo ho provato a simulare un server web con arduino e a pingare arduino con il pc e tutto funge, il problema è quando l’arduino cerca di inviare la richiesta di connessione al server , vi ringrazio di nuovo se riuscirete a risolvermi il problema perché mi salvate il progetto d’esame

In conformità al REGOLAMENTO della sezione Italiana del Forum, punto 13, il cross-posting è proibito (anche tra lingue diverse) e tu ne stai parlando già QUI.

Non è ancora un vero cross-posting, per cui ... tengo d'occhio la situazione e se vedo che tu poni domande sia di qua che di la ... chiudo questo thread.

Guglielmo

Scusami è che mi sono incasinato con i post,cancello subito l'altro

Non ho mai provato ad accedere a easyPHP dalla rete. Localmente (sul PC dove é installato EasyPHP) l' indirizzo IP delle pagine PHP é 127.0.0.1 o anche localhost
Ciao Uwe

Si localmente è visto in quel modo dal pc ma quel l’indirizzo sta ad indicare l’IP della stessa macchina ,ho pensato fosse la porta e ho provato ad aprirla da Windows firewall ma niente :frowning: comunque pubblico lo sketch

#include <DHT.h>
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//indirizzo server web (locale)
IPAddress server(192, 168, 1, 107);

//indirizzo ip dell'Arduino
//IPAddress ip(192, 168, 1, 108);

//byte server[] = { 192, 168, 1, 107 };
byte ip[] = { 192, 168, 1, 108 };

//169.254.137.205
//definizione pin arduino per sensore temp ecc
#define DHTPIN 8
// 8 è il pin di Arduino a cui collego il sensore di temperatura
#define DHTTYPE DHT11
// dht11 è il tipo di sensore che uso
DHT dht(DHTPIN, DHTTYPE);

EthernetClient client;

String strURL = "";
float temp = 0;

void setup()
{
    Serial.begin(9600);

    /*if (Ethernet.begin(mac) == 0)
{
Serial.println("Configurazione DHCP fallita!");*/
    Ethernet.begin(mac, ip);
    //}

    delay(1000);
}

void loop()
{
    UpdateTemp();

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

    if (!client.connected()) {
        Serial.println();
        Serial.println("Disconnesso.");
        client.stop();
    }

    //esegui la richiesta ogni 10 secondi
    delay(1000);
}

void UpdateTemp()
{
    Serial.println("Connessione...");
//non entra qua
    if (client.connect(server, 80)) {

        Serial.println("Connesso");
        //acquisisco il valore analogico dal sensore DHT11
        temp = dht.readTemperature(); //leggo temperatura da sensore
        //creo l'url utilizzanso una stringa
        strURL = "GET http://192.168.1.107:80/edsa-progettoEsame/RaccogliementoDati.php?valore="; //devo modificare nome pagina
        strURL += (int)temp;
        strURL += "&localita=Viterbo HTTP/1.1"; //Inserisco località che più mi piace

        //invio la richiesta al server
        client.println(strURL);
        client.println("Host: localhost");
        client.println("Connection: close");
        client.println();
        //chiudo la connessione
        client.stop();
    }
    else {
        Serial.println("Errore Connessione");
    }
}

ok buone notizie ho cambiato PWS,ora ho installato xampp e sembra che il blocco della funzione client.connect si sia risolto ora non riesco a capire perché non mi manda i valori alla pagina php

#include <DHT.h>
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//indirizzo server web (locale)
IPAddress server(169 , 254, 137, 205);

//indirizzo ip dell'Arduino
IPAddress ip(169, 254, 137, 208);

//definizione pin arduino per sensore temp ecc
#define DHTPIN 8
// 8 è il pin di Arduino a cui collego il sensore di temperatura
#define DHTTYPE DHT11
// dht11 è il tipo di sensore che uso
DHT dht(DHTPIN, DHTTYPE);


EthernetClient client;

String strURL = "";
float temp = 0;

void setup()
{
Serial.begin(9600);

Ethernet.begin(mac, ip);

delay(1000);

}

void loop()
{
UpdateTemp();

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

if (!client.connected())
{
Serial.println();
Serial.println("Disconnesso.");
client.stop();
}

//esegui la richiesta ogni 10 secondi
delay(10000);
}

void UpdateTemp()
{
Serial.println("Connessione...");

if (client.connect(server, 443))
{
Serial.println("Connesso");
//acquisisco il valore analogico dal sensore DHT11
temp = dht.readTemperature();//leggo temperatura da sensore

//creo l'url utilizzanso una stringa
strURL = "GET /www.ChartTemp.it/RaccogliementoDati.php?valore=";//devo modificare nome pagina
strURL += (int)temp;
strURL += "&localita=Viterbo HTTP/1.1";//Inserisco località che più mi piace

//invio la richiesta al server
client.println(strURL);
client.println("Host: 169.254.137.205");
client.println("Connection: close");
client.println();
//chiudo la connessione
client.stop();
//Serial.println(strURL);
 
}
else
{
Serial.println("Errore Connessione");
}
}

Il code è con le quadre e non con le angolari < >

Up

Risolto