arduino e web

ciao,
ho un problema io voglio collegare il mio arduino a internet in modo tale
da poter passare dai dati a uno script php che risiede su un server altervista,
il mio problema sta nel fatto che non si connette al server.
P.S. vi ricordo che sono alle prime armi

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

#define RXBUFFERLENGTH 4

WeatherShield1 weatherShield;
float fTemperature = 0.0f;

byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0xFE, 0x72};
byte ip[] = {192, 168, 0, 200};
byte server [] = { 176, 9, 63, 23 }; //176.9.63.23
byte gateway [] = { 192, 168, 1, 1 } ;
byte subnet [] = { 255, 255, 255, 0 } ;

void setup() {
Serial.begin ( 9600 ) ;
Ethernet.begin ( mac, ip, gateway, subnet );
}

void loop() {
/* This is the buffer for the answers */
unsigned char ucBuffer[RXBUFFERLENGTH];

/* Check for the weather shield connection */
if (weatherShield.sendCommand(CMD_ECHO_PAR, 100, ucBuffer)) {}

/* Start reading temperature */
unsigned short shTemperature = 0;
if (weatherShield.sendCommand(CMD_GETTEMP_C_AVG, 0, ucBuffer))
fTemperature = weatherShield.decodeFloatValue(ucBuffer);
if (weatherShield.sendCommand(CMD_GETTEMP_C_RAW, 0, ucBuffer))
shTemperature = weatherShield.decodeShortValue(ucBuffer);

Serial.print ( " Connecting..." ) ;
EthernetClient client ;
if ( client.connect(server, 21) )
{
Serial.println ( " Connected. " ) ;
Serial.println ( fTemperature ) ; // Le seguenti istruzion inviano il dato allo script PHP:
client.print ( "GET http://ncmeteo.altervista.org/arduino/inserimento.php?fTemperature=" ) ;
client.print ( fTemperature ) ;
client.println (" HTTP/1.1" ) ;
client.println ( "Host: http://ncmeteo.altervista.org" ) ;
client.println () ;
Serial.println ( "disconnecting." ) ;
client.stop();
}
// if the server's disconnected, stop the client:
else
{
Serial.println();
Serial.println ( "disconnecting..." ) ;
client.stop();
while ( client.status() != 0 ){}
delay ( 5 ) ;
}
delay(5000);
}

grazie

ciao benvenuto :slight_smile:
http://arduino.cc/forum/index.php/topic,91560.0.html

Ciao

if ( client.connect(server, 21) )

Io penso che altervista non stia in ascolto sulla porta 21, soprattutto per una get ...

ciao, scusate
innanzitutto sto usando un arduino uno, con ethernet shield ufficiale
e la weather shield per rilevare temperatura, pressione e umidità.
il mio problema sta proprio nel fatto di non riuscire a connettermi al
server di altervista

ciao, se cerchi nel forum troverai sicuramente vari topic dove il problema è stato affrontato e risolto.

il mio problema sta proprio nel fatto di non riuscire a connettermi al
server di altervista

hai letto la mia risposta?
Ti stai connettendo ad altervista alla porta 21.
http (e php insieme a lui) viaggiano solitamente sulla porta 80

Dopo c'è da dire che, passato quel problema, se ne pone un'altro, ovvero la struttura della GET.

Come suggerisce Brain, nel forum trovi parecchi post al riguardo (l'argomento è gettonato, ultimamente).

Per esempio in quest post :

c'è proprio uno sketch che fa la stessa cosa (su altro sito, ovviamente)

nicola1993:
byte ip[] = {192, 168, 0, 200};
byte server [] = { 176, 9, 63, 23 }; //176.9.63.23
byte gateway [] = { 192, 168, 1, 1 } ;
byte subnet [] = { 255, 255, 255, 0 } ;

L'IP e il Gateway si trovano su sottoreti diverse e la maschera non permette di vedere il Gateway.
O cambi la maschera con 255,255,0,0 oppure cambi l'ip 192,168,1,200.

IP e il Gateway

apperò, non me ne ero neppure accorto.
Certo che di "errori da distrazione" ce ne son parecchi, eh ?! :grin: