Pages: [1]   Go Down
Author Topic: arduino e web  (Read 397 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 8
Posts: 2955
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

0
Offline Offline
Edison Member
*
Karma: 24
Posts: 2319
Have you mooed today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao

Quote
if ( client.connect(server, 21) )

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

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 8
Posts: 2955
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

0
Offline Offline
Edison Member
*
Karma: 24
Posts: 2319
Have you mooed today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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 :
http://arduino.cc/forum/index.php/topic,90575.msg680326.html#msg680326
c'è proprio uno sketch che fa la stessa cosa (su altro sito, ovviamente)




Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 115
Posts: 7254
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
« Last Edit: March 08, 2012, 05:07:24 pm by PaoloP » Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

0
Offline Offline
Edison Member
*
Karma: 24
Posts: 2319
Have you mooed today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
IP e il Gateway

apperò, non me ne ero neppure accorto.
Certo che di "errori da distrazione" ce ne son parecchi, eh ?!  smiley-mr-green
Logged

Pages: [1]   Go Up
Jump to: