Pages: [1] 2   Go Down
Author Topic: Arduino client, riceve http request?  (Read 962 times)
0 Members and 1 Guest are viewing this topic.
Naples (IT)
Offline Offline
God Member
*****
Karma: 5
Posts: 712
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve

Vorrei creare una pagina web su un server e vorrei che arduino ricevesse ed inviasse http request al server.
Siccome in questa configurazione è un client, può anche ricevere le http request? come?

potete linkarmi uno sketch giusto per farmi un idea di come gestire la ricezione (in modalità client) delle http request?

grazie
Logged

Arduino, MODs e DIY: blackstufflabs.com

MC
Offline Offline
God Member
*****
Karma: 13
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se sei un client non potrai mai ricevere richieste http, ma solo risposte alle tue richieste.

Eventualmente devi prevedere di utilizzare sia la libreria client che quella server contemporaneamente.
I miei test per ora si sono fermati all'avere più tipi di server su arduino (http e telnet) in contemporanea, ma mai client e server insieme.
Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Naples (IT)
Offline Offline
God Member
*****
Karma: 5
Posts: 712
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se sei un client non potrai mai ricevere richieste http, ma solo risposte alle tue richieste.

Era quello che sospettavo.

Quindi se volessi inviare dati ad un server e ricevere (dal server) un comando non potrei farlo.
Dovrei avere due arduino: un server e un client. Giusto?
Logged

Arduino, MODs e DIY: blackstufflabs.com

MC
Offline Offline
God Member
*****
Karma: 13
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

No, dovresti avere un fw su arduino che fa sia da client che da server.
Il server ti ascolta su una porta XX, il client ti invia richiesta ad un URL YYYY.
Sono due cose distinte che dovresti poter fare con un arduino solo, semplicemente utilizzando ethernetserver ed ethernetclient contemporaneamente sullo stesso sketch.

Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Naples (IT)
Offline Offline
God Member
*****
Karma: 5
Posts: 712
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Sono due cose distinte che dovresti poter fare con un arduino solo, semplicemente utilizzando ethernetserver ed ethernetclient contemporaneamente sullo stesso sketch.

Ok, non sapevo che potesse essere entrambe le cose.
Ho trovato questo: http://arduino.cc/forum/index.php?topic=90210.0

grazie smiley
Logged

Arduino, MODs e DIY: blackstufflabs.com

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10112
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

nono allora ad ogni richiesta HTTP fatta da arduino, il server risponde con una pagina HTML... quindi la tua risposta la puoi mettere nella pagina HTML!

poi se invece devi inviare un comando da una pagina HTML, il mio consiglio è di usare un javascript che crea un iframe nascosto nella pagina che fa fare al client la get sull'arduino... in questo modo colleghi il client direttamente con l'arduino, una architettura più p2p con i suoi pro e contro
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

MC
Offline Offline
God Member
*****
Karma: 13
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non penso che abbia quella necessita lesto.
Io ho capito che a lui ha bisogno di comunicazione bidirezionale asincrona tra due entità , e che intendeva comunicare via http.
L'unica soluzione è che entrambe le entità siano client e server simultaneamente.
Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Naples (IT)
Offline Offline
God Member
*****
Karma: 5
Posts: 712
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Io ho capito che a lui ha bisogno di comunicazione bidirezionale asincrona tra due entità , e che intendeva comunicare via http.

esattamente.
bidirezionale e asincrono
Logged

Arduino, MODs e DIY: blackstufflabs.com

Naples (IT)
Offline Offline
God Member
*****
Karma: 5
Posts: 712
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Sono due cose distinte che dovresti poter fare con un arduino solo, semplicemente utilizzando ethernetserver ed ethernetclient contemporaneamente sullo stesso sketch.

Pensavo: cosa succede nel momento in cui dal sito invio un comando quando in quel momento arduino è in modalità client e sta inviando un dato al sito? Come posso gestire queste... collisioni?

grazie
Logged

Arduino, MODs e DIY: blackstufflabs.com

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10112
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

è uno sbattimento getito dallo stack ISO/OSI, quindi semplicemente non te ne devi preoccupare, nel caso succeda verrà autogestito tutto
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Naples (IT)
Offline Offline
God Member
*****
Karma: 5
Posts: 712
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

è uno sbattimento getito dallo stack ISO/OSI, quindi semplicemente non te ne devi preoccupare, nel caso succeda verrà autogestito tutto


Interessante.

Quindi quando faccio una request da un webservice verso arduino, se quest'ultimo è occupato a fare altre cose (magari proprio una request verso il webservice), viene messa in coda la richiesta finchè arduino non l'ascolta? tutto gestito il tutto dallo stack iso/osi...? 
Ottimo...
Logged

Arduino, MODs e DIY: blackstufflabs.com

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10112
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

è molto più complicata, e non sai quale richiesta sarà messa in coda. Per il resto vai tranquillo.
Ovvio che ogni errore aumenta i tempi e dopo un pò di errori in un certo slasso di tempo la connessione va in errore definitivo
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Genova
Offline Offline
Faraday Member
**
Karma: 17
Posts: 2757
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

10 gg fa
http://arduino.cc/forum/index.php/topic,144070.msg1082875.html#msg1082875
Logged

Meglio imparare dalle cose inutili piuttosto che non imparare niente.   [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]

Naples (IT)
Offline Offline
God Member
*****
Karma: 5
Posts: 712
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

è molto più complicata, e non sai quale richiesta sarà messa in coda. Per il resto vai tranquillo.
Ovvio che ogni errore aumenta i tempi e dopo un pò di errori in un certo slasso di tempo la connessione va in errore definitivo

grazie lesto!





letto.
ma in questo mio post approfondisco l'aspetto collisioni.
Logged

Arduino, MODs e DIY: blackstufflabs.com

Genova
Offline Offline
Faraday Member
**
Karma: 17
Posts: 2757
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

quali collisioni?

nel loop
--------------
apri il client
trasmetti
chiudi
--------------
apri il server
ascolti
se c'e' una richiesta in corso .... rispondi, hai 20 secondi prima che il client vada in timeout
chiudi
--------------
fine loop

che collisioni vuoi avere?
« Last Edit: January 30, 2013, 04:18:20 pm by pablos » Logged

Meglio imparare dalle cose inutili piuttosto che non imparare niente.   [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]

Pages: [1] 2   Go Up
Jump to: