Problema con Ethernet shield e il MAC su Vodafone station

stampati sulla seriale tutta la stringa get che stai inviando e vedi cosa stai trasmettendo

...ehm...

L'ho cambiato, ora invio un numero, però sulla seriale vedo il numero, e ho fatto una controprova, mi son connesso tramite browser direttamente ad arduino tramite il suo IP e infatti mi stampa a video quel numero. solo che nella altra pagina php non si vede nulla. l'indirizzo è questo :http://ratto93.altervista.org/index.php

ora sto provando così :

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

byte mac[] = {0x90,0xA2,0xDA,0x00,0x74,0x99};
byte ip[] = {192,168,1,2};
byte gateway[] = {192, 168, 1, 1};
byte subnet[] = {255, 255, 255, 0};
int temp = 50;

Server server(80);

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

void loop()
{
  // listen for incoming clients
  Client client = server.available();
  if (client) {
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        if (c == '\n' && currentLineIsBlank) {
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("GET http://http://ratto93.altervista.org/index.php?temperatura=temp&umidita=valore2 HTTP/1.0");
          

        }
        if (c == '\n') {
          currentLineIsBlank = true;
        } 
        else if (c != '\r') {
          currentLineIsBlank = false;
        }
      }
    }
    delay(1);
    client.stop();
  }
}

Il .php è uguale…

se vuoi che funzioni, da arduino devi far uscire una stringa di questo tipo: http://ratto93.altervista.org/index.php?temperatura=22&&umidit%E0=20 (la à di umidità...) così ho mandato una temp di 22 gradi ed il 20% di umidità. se vuoi provare incollala nel browser.

si, più o meno faccio anch'io così solo che genero la pagina al volo e scrivendola nell'eeprom su richiesta del client.

e come fate ? scusate ma causa neve e robe varie non son riuscito a provare ancora nulla…

Ho trovato questo codice, che dite ? può andare ?

Me lo son dimenticato :roll_eyes:

    while (client.connected())
    {
    // keep it simpler ..
    int celsius = 100;

    Serial.println();
    client.print("Temp.");  // Serial??
    client.print(" is ");
    client.print(celsius);
    client.println(".C");
    client.print("POST /http://192.168.1.20/ard_log/update_db.php?temp=");
    client.print(celsius);

    Serial.print("GET /ard_log/update_db.php?temp=");  // GET vs POST difference

Ma quello di prima funzionava, vovevi solo correggere la stringa inviata :roll_eyes:

Ho provato ma proprio non va' =(

Non capisco quale sia l'errore, ora invio la stringa in questo modo:

client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("GET http://ratto93.altervista.org/index.php?temperatura=22&&umidit%E0=20");

mandala senza GET

Ho provato... Se apro l'IP di arduino la eth shield si mette a lampeggiare come le luci di natale ma non fà nulla,se apro il mio sito remoto non vedo nulla..

ma hai provato a stamparti temperatura e umidità sulla seriale prima di inviarli?

apparte che hai un altro thread dove si stanno trattando quasi le stesse cose, io a questo punto li unificherei...

Cmq, penso di capire donde stia l'inghippo (da parte tua):

se apro il mio sito remoto non vedo nulla

tu ti aspetti di vedere sul sito i dati che passi con Arduino?

pitusso: apparte che hai un altro thread dove si stanno trattando quasi le stesse cose, io a questo punto li unificherei...

Cmq, penso di capire donde stia l'inghippo (da parte tua):

se apro il mio sito remoto non vedo nulla

tu ti aspetti di vedere sul sito i dati che passi con Arduino?

Si ! :P

Ho aperto l'altro tread per non incasinare questo :)

tu ti aspetti di vedere sul sito i dati che passi con Arduino?

Si !

:cold_sweat:

attenzione perchè con quel che stai facendo tu, ovvero far "sparare" ad arduino una stringa del tipo: http://ratto93.altervista.org/index.php?temperatura=22&&umidit%E0=20 tu vai a generare dinamicamente la pagina php.

Per lo stesso motivo, se tu digiti a mano quella url, vedi la pagina compilata. Se invece digiti la url senza parametri, la vedrai senza valori. Questo perchè lo script php compila la pagina on demand (detto semplicisticamente).

Se vuoi che ti faccia vedere i dati inviati da Arduino, necessiti appunto di salvarli su file o db, e di modificare lo script php affinchè, in caso di mancanza di GET, ti torni gli ultimi valori passati da Arduino.

Sempre che io abbia capito quale è il tuo obiettivo...

EDIT

Devo leggere dei dati ed inviarli ciclicamente ad una pagina php su server remoto che li salverà in un database, come potrei fare ?

ho capito bene

Quel si !

Non era in tono cattivo anzi tutt'altro ;)

comunque indagando anche grazie ad un consiglio di Brainbooster ho scoperto una cosa... Non posso mandare i dati così alla mia pagina su altervista poichè è tutto su virtuale, dovrò cambiare qualche impostazione. Ho provato con WebClient e mettendo l'IP del mio sito ricavato dal ping non si connette cosa che non avviane se mi collego ad esempio a google.. Infatti se prendo l'IP del mio sito e lo inservisco nella barra del browser mi apre la pagina principale di altervista non la mia...

Non posso mandare i dati così alla mia pagina su altervista poichè è tutto su virtuale, dovrò cambiare qualche impostazione.
Ho provato con WebClient e mettendo l’IP del mio sito ricavato dal ping non si connette cosa che non avviane se mi collego ad esempio a google…
Infatti se prendo l’IP del mio sito e lo inservisco nella barra del browser mi apre la pagina principale di altervista non la mia…

sì, il dubbio era venuto anche a me cercando di capire il perchè del tuo codice (supportato presumo da Brain).
Purtroppo il virtual server, per funzionare correttamente, ha bisogno del fqdn sulla barra degli indirizzi - perchè sostanzialmente a singolo ip sono associarti più server virtuali.

Cmq Brain poteva postare la sua riflessione anche sul forum ]:slight_smile:

Dove potrei hostare possibilmente senza spendere danari ed ottenendo un risultato "Potabile" ? :stuck_out_tongue_closed_eyes:

Ciao,

Dove potrei hostare possibilmente senza spendere danari ed ottenendo un risultato "Potabile" ?

io penseri piuttosto a risolvere il problema, a futuro beneficio di tutti :D

In ogni caso, tophost è uno dei più economici in assoluto, con 12 eur/anno porti a casa anche spazio web con supporto php e altro ancora. Non è pro come servizio, ma fa il suo dovere...