Pages: [1]   Go Down
Author Topic: [Risolto] Caricare file su microSD  (Read 2374 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Che voi sappiate, c'è un modo per caricare i file sulla microSD tramite l'ethernet shield senza dover togliere continuamente la microSD?
« Last Edit: July 19, 2012, 02:34:04 am by 53RG10 » Logged

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

Sii più preciso, che cosa vuoi fare? Salvare file a spasso sulla ad da una pagina web?
In quel caso devi avere uno sketch che utilizza tinywebserver o simili.
E questo che ti serve?
Logged

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

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

Voglio salvare i file da una pagina web, la quale si trova o sulla microSD o su un sito esterno (preferibile), ma se è più semplice da fare va bene anche se è sulla microSD, tanto non ho necessità di caricare i file dall'Australia.
Avevo pensato di usare l'esempio FileUpload della libreria TinyWebServer, ma non ho ben capito come interfacciare questo esempio con lo script per l'upload, dato che di php non me ne intendo.
Lo script che uso è questo http://www.ajaxf1.com/download.html?item=12
ma va bene qualsiasi script, basta che funziona!

Caricando su arduino lo sketch FileUpload, dopo aver aperto la pagina index.htm e cliccando sul link della pagina per l'upload si apre una pagina del browser con scritto: Could not found file: INDEX.PHP (anche se nel link il collegamento è a index.php)
Invece, caricando lo sketch BlinkLed, si apre tutto normalmente, ma quando clicco su upload, la barra di caricamento rimane ferma, come se stesse ancora caricando, anche se aspetto 10-15 minuti.
In entrambi i casi lo stesso avviene se il collegamento è fatto su un sito esterno (in questo caso questo sito di altervista che sto usando per fare delle prove http://arduhome.altervista.org/ajaxupload/index.php).
Logged

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

Guarda, non credo che arduino sia in grado di processare file php . (anzi ne sono proprio sicuro!)

Gli unici siti che puoi gestire (e se ti sembra poco vuol dire che sei troppo esigente per questa tecnologia) sono fatti in html e javascript, ovvero tutti linguaggi che vengono renderizzati lato client.
Puoi incorporare jquery ed utilizzarne le funzioni, puoi anche ospitare tutte le pagine del sito sulla SD,ma ricordati che hai la limitazione sui nomi file in formato dos 8+3.
Per fare l'upload di file da pc verso la SD ,come dicevamo ti serve tiniwebserver caricato e funzionante con l'esempio FileUpload, ma anche, anzi forse meglio , BlinkLed (anche in questo progetto è stato implementato l'handler per l'upload).
Una volta che hai questo funzionante puoi procedere a caricare file nella sd tramite un software che si chiama CURL .
L'autore ha creato anche un file bat che permette il caricamento di tutti i file contenuti in una cartella (static) direttamente sulla SD, ma richiede lo scaricamento del file che ti ho menzionato prima ( link al sito http://curl.haxx.se/).
Volendo si può anche caricare un file sulla sd creando una pagina html apposita, ma è uno SBOCCO DE SANGUE!
Io ci ho messo quasi un giorno intero a farla funzionare e mi manca ancora la gestione della progressione di upload!
Intanto vedi se riesci a caricare tramite CURL e il bat fornito negli esempi dall'autore, poi in caso per il caricamento diretto da pagina web ne riparliamo  smiley-mr-green
Per non farti perdere tempo inutilmente ti dico solo di lasciar perdere gli script di upload che trovi sulla rete perchè utilizzano un approccio diverso, non supportato dall'handler previsto di default col tinywebserver.
Logged

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

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

Grazie per la risposta, avevo già notato l'opzione curl girando per il web, ma non ho capito un accidenti di come devo implementarla  smiley-sweat sul forum di arduino avevo visto questa parte di codice (se la memoria non mi inganna era così) curl -0 -T "nome_del_file" http://192.168.1.177/ (che è l'indirizzo che uso io) ma dove glielo dovrei mettere???
In alternativa stavo pensando...non si potrebbero trasferire i file tramite FTP? Ad esempio con FileZila? A dire la verità ci ho già provato, ma non funziona (ovviamente, altrimenti non sarei qui).

Grazie ancora per l'aiuto e perdona la mia ignoranza in materia  smiley-razz
Logged

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

Grazie per la risposta, avevo già notato l'opzione curl girando per il web, ma non ho capito un accidenti di come devo implementarla  smiley-sweat sul forum di arduino avevo visto questa parte di codice (se la memoria non mi inganna era così) curl -0 -T "nome_del_file" http://192.168.1.177/ (che è l'indirizzo che uso io) ma dove glielo dovrei mettere???
In alternativa stavo pensando...non si potrebbero trasferire i file tramite FTP? Ad esempio con FileZila? A dire la verità ci ho già provato, ma non funziona (ovviamente, altrimenti non sarei qui).

Grazie ancora per l'aiuto e perdona la mia ignoranza in materia  smiley-razz

Mi togli una curiosità?

Come è possibile che stiamo facendo più o meno le stesse cose e abbiamo pure lo stesso ip sull'arduino????
MI SPIII????

CHE SEI NA SPIAAA???  smiley-cool

Comunque per usare curl usa il bat fatto da ovidiu : (queesto è il mio  ma a a sto punto non devi neanche cambiare l'ip!)

Crea un file BAT  con il seguente contenuto:

Code:
set IPADDRESS=http://192.168.1.177
rem Be sure to change IP address (above) to match your board.  No other modification to this file should be needed
@echo off

rem Run this bat file to load web pages to the SD card on your Arduino Ethernet shield.
rem This file is only needed with windows - otherwise use upload.sh

set SubDir=static/
for %%f in (%SubDir%*.*) do (
echo uploading %SubDir%%%f to %IPADDRESS%/upload/
curl.exe -0 -T %SubDir%%%f %IPADDRESS%/upload/

)
echo Done!
pause


ed eseguilo semplicemente facendoci doppioclick.

Questo batch cerca tutti i file contenuti dentro una cartella di nome 'static' e li copierà sulla sd (la cartella static la cerca relativa al percorso dove correntemente viene eseguito il comando)

RICORDATI che i file devono essere formato 8.3 , quindi i file html non vanno bene, e nemmeno i file lunghi e con spazi!





Logged

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

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

Quote
CHE SEI NA SPIAAA???
Era così evidente? smiley-mr-green va bene sono una spia, ma non dirlo a nessuno smiley-razz

Comunque ho provato a fare come hai detto tu:
1) ho copiato il codice in un file di blocco note e l'ho salvato col nome di curl.bat (dato che mi dava errore quando eseguivo il comando se lo salvavo in un nome diverso); in più nel codice che hai scritto tu ho cambiato curl.exe in curl, dato che diceva che curl.exe non era un comando riconosciuto
2) ho creato una cartella di nome static nella stessa cartella in cui ho salvato curl.bat (in questo caso il desktop)
3) ho caricato sull'arduino BlinkLed, collegato il tutto a ethernet e poi ho aperto curl.bat e indovina cosa è successo??? smiley-grin niente smiley-cry smiley-cry smiley-cry
ho anche creato una cartella nella microSD col nome di upload, ma lo stesso non funzionava.
Così ho cambiato sketch (non si sa mai), ho caricato FileUpload e lo stesso non ha funzionato.

E' successa però una cosa strana: il file php per l'upload dei file si è aperto smiley-eek , ma (ovviamente) quando clicco su upload non succede nulla, evidentemente perché, come hai detto tu, l'arduino non arriva a tanto.

Ah e poi un'altra cosa: quando apro curl.bat viene ripetuta la stessa scritta un centinaio di volte:
Uploading static/4587.HTM to http://192.168.1.177/upload (4587.htm è un file che c'è nella cartella static)
e poi si chiude la finestra, cioè è come se stesse caricando un unico file smiley-eek anche se nella cartella static ce ne sono una decina (tutti in formato 8.3)

Grazie mille per l'aiuto smiley

Una curiosità: ma a te funziona??
Logged

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

Certo che funziona, ma stai scherzando?
mo ti faccio un video  smiley-mr-green

Ma hai scaricato curl?
secondo me hai toppato qualcosa sul file bat!
Logged

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

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

Non ne vuole proprio sapere di funzionare smiley-cry
prima sbagliavo perché non avevo messo curl.bat e la cartella static nella cartella della libreria curl. Ora che l'ho sistemato, quando clicco su curl.bat mi esce scritto questo:
curl: <56> Recv failure: Connection was reset
Idee in merito?
Per quanto riguarda il tipo di libreria che ho utilizzato, ho scaricato tutte quelle di windows a 32 bit e ho provato con tutte, ma hanno dato tutte lo stesso risultato.

Un'altra cosa...è normale che collegando arduino a una batteria da 12V si riscalda molto?

Grazie infinite smiley poi ti faccio una statua  smiley-mr-green
Logged

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

Si è normale che scaldi come un tostapane, o meglio secondo me non è proprio normale, però ne ho diversi e tutti fanno c
Paradossalmente quella col wiz5100 a bordo scalda meno della semplice uno... bhaa ...
Mi sembra strano che non ti funzioni, ma da quello che descrivi mi sembra che hai fatto un gran casino.
Riparti da capo, prendi la cartella dell'esempio e copia curl.exe allo stesso livello in cui vedi la cartella 'static' (non dentro!)
Ora edita il file bat e correggi l'IP.
Esegui il file bat e vedi che succede.
P.s. l'Arduino nel frattempo devi averlo connesso e acceso, prova a pingarlo e a fare un telnet  sulla porta 80.
Se non ti risponde anche a uno solo dei test qualcosa non va!
Logged

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

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

Funziona!!!  smiley-mr-green
Avevo fatto tutto bene, solo che avevo dimenticato che il mio portatile non si connette al 192.168....poi ho messo tutti i file sul fisso ed ha funzionato smiley

Grazie infinite smiley-grin smiley-grin smiley-grin
Logged

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

 smiley-eek

 smiley-zipper
Logged

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

Pages: [1]   Go Up
Jump to: