Ho acquistato l'ethernet shield e tra qualche settimana dovrebbe arrivarmi.
Ora per conto mio sto studiando un pò di codice e sketch di altri progetti.
La mia idea per un primo progetto è quella di leggere sensori da arduino e inviarli ad una pagina web hostato tipo su altervista.
Il mio problema più grande è capire come comunicano arduino e la pagina web. Ho visto che comunicano tra loro con comandi tipo GET, POST, PUT e compagnia bella... ma come?
Come faccio ad inviare un dato ad una pagina web? E quest'ultima come deve ricevere questo dato?
Sinceramente non ho ancora affrontato il problema (anche se dvrebbe essere la base del mio progetto ) In linea di massima credo che sia lo script nella pagina... che contatta l'ethernet shield che chiede ad arduino info sullo stato dei sensori
skaxxo:
Ho acquistato l'ethernet shield e tra qualche settimana dovrebbe arrivarmi.
Tra qualche settimana?!?! E dove l'hai comprato, di grazia?
dovrebbe venire da moooolto lontano!
Comunque... sto cercando di documentarmi su internet ma trovo sempre sketch di poche righe non molto esaustivi.
Quello più interessante è il PachubeClient che fa al caso mio: http://arduino.cc/en/Tutorial/PachubeCient
Arduino comunica solo con le chiamate HTTP?
Sto cercando qualcosa di più esaustivo sulla comunicazione tra arduino e il web attraverso le chiamate http... se qualcuno sa darmi qualche link è ben accetto.
Ciao,
ti passo 3 dei mille-mila link che ho sull'argomento, spero ti siano di aiuto.
Considera che nel forum l'argomento è stato trattato molte volte, quindi anche una ricerca qui dentro potrebbe dare buoni risultati.
pitusso:
ti passo 3 dei mille-mila link che ho sull'argomento, spero ti siano di aiuto.
Grazie pitu, molti dei tuoi link già li avevo letti e, ovviamente, già avevo letto qualche post nel forum.
Ma non sono soddisfatto delle risposte che ho trovato: non mi è molto chiaro il meccanismo di comunicazione tra client (arduino) e server (pagina web).
leggere questa basta per le basi. Poi se vuoi smnaliziare un pò passa alla versione inglese di wikipedia, e se non ti basta ancora dovresti avere abbastanza basi per sapere cosa vuoi sapere e quindi cercartelo su gooogle
su pachube.com ho trovato un pò di cose e la cosa sta iniziando a diventare più chiara.
in un vecchio post, hai detto ad un utente che molti siti di hosting gratuito bloccano il traffico attraverso socket php (o una cosa del genere).
volendo realizzare qualcosa tipo pachube.com ma scritto in c#/.net, su un sito di hosting gratuito (come questo: clickme) può funzionare la cosa?
allora, ti stai perdendo su alcune cose. La comunicazione internet avviene via cavo. Però esistono una serie di protocolli che permettono a computer di diversa marca e tipologia (win mac e linux per citare i più famosi) di capirsi e scambiarsi i dati.
Quello più utilizzato è l'ISO/OSI, che è una serie di protocolli che partono dall'hardaware e arrivano fino al TCP e all'UDP. Tra i 2 il TCP è il più usato, perchè effettua un controllo sull'ordine di ricezione dei messaggi, e se qualcuno non arriva ne richiede la ritrassmissione, il tutto in modo invisibile all'utene ma anche al programmatore.
Poi esistono dei protocolli creati partendo dal TCP, tra cui l'HTTP(web), l'FTP(file transfer protocol), l'SMTP(invio e-mail), pop3(ricezione mail), etc...
Ora, con arduino tu hai in mano un socket al livello TCP (o UDP ma per ora non ci interessa). Ciò vuol dire che tu puoi ricreare, conoscendo i comandi, un protocollo. Però volendo puoi anche crearti un tuo protocollo personale (che è un pò quello che fai quando usi la Serial), che ovviamente è ottimizzato per quello che vuoi fare.
Con gli host gratuiti questo non si può fare, ma sei bloccato all'interno dell'HTTP. In realtà con un poco di fantasia il problema è facilmente aggirabile, ma sicuramente il codice finale non sarà così ottimizatto come un protocollo ad-hoc.
lesto:
Con gli host gratuiti questo non si può fare, ma sei bloccato all'interno dell'HTTP. In realtà con un poco di fantasia il problema è facilmente aggirabile, ma sicuramente il codice finale non sarà così ottimizatto come un protocollo ad-hoc.
quindi, dato che con arduino uso richieste http (TCP) posso facilmente inviare (con arduino) e leggere (c#/.net) queste richieste su un hosting gratuito come quello? quali sono questi aggiramenti?
ho visto qualche progetto che funzionava anche su altervista (http://gaedc2.altervista.org/?p=930)....
in pratica tu non puoi usare i socket quindi non puoi comunicare con ardiuno usando direttamente il TCP, ma però puoi farlo usando l'HTML.
Gli sbattimenti sono principalmente che:
ogni richesta e relativa risposta sono una connessione a se
devi aggiungere ad ogni richiesta gli header dell'HTTP
ogni richiesta deve attendere la risposta o lo script sul server potrebbe non essere eseguito
devi scrivere più codice per via degli header
come puoi notare il punto 1. si risolve usando le sessioni, il 2. usando una connessione ISDN o superiore, e il 3. attendendo la risposta, il 4. è inevitabile :). Nulla di grave, per esperimenti in casa, ma diventa un grosso spreco di risorse per grossi progetti.