Inserimento dati da file di testo

Buongiorno, mi sto scervellando per fare la tesina di 5° superiore :D Ho trovato molto carina la possibilità di fare un web server con arduino ma faccio fatica a configurarlo per la ricezione di più dati contemporaneamente quindi pensavo: c'è la possibilità di mandare dei dati in input all'Arduino tramite un file di testo? Se sì, c'è bisogno di una particolare configurazione di quest'ultimo? Attendo gentilmente una risposta. A risentirci. 8-)

Ciao kappollo Il problema é non il ricevere i dati da seriale ma di dove metterli visto che il processore ha solo 1kByte Ram. Ti consiglio di aggiungere una EEPROM esterna grossa (24lc512 che sono 64kByte) interfacciato con I2C. Cosí puoi mettere i dati sulla EEPROM e chiamarli da lí. Devi scrivere una funzione che mette i dati spedito dal pc sulla serilae nel EEPROM. Ciao Uwe

Capisco... E tentare con un lettore di schede MicroSD? Può essere possibile o rischio solamente di peggiorare la situazione? Intanto grazie mille per l'aiuto! ;D

kappolo, spiegaci bene quale è il tuo progetto magari ci sono delle vie alternative. Spiegaci come se fossimo dei bambini di 6 anni e quindi non essere parco di particolari.

ciao kappollo anche una SD o microSD va bene. attenzione! non comprare SDHD ; non funzionano. Ciao Uwe

mircoSD o SD sono perfette riesci a leggerci e scriverci file di testo in .txt senza nessun problema :slight_smile:

dai un occhiata qui per i collegamenti della SD http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1206874649/8, naturalmente se usi una microSD ti serve un adattatore …

per il software dai un occhiata a questa libreria http://blushingboy.net/p/SDuFAT/downloads/2/ :wink:

se hai qualsiasi domanda chiedi :slight_smile:

c

web server ??? se ti "devi collegare ad un pc … nn poi usare quello come “memoria” per i dati?

se fai un web server usi l'ethernet shield? se si non puoi usare anche la sd perchè la porta spi è già in uso...

io sinceramente non ho un ethernet shield ma penso che su possa abilitare e disabilitare o quello o la SD per farli andare entrambi ..

@dadebo1: in effetti non è una cattiva idea, però pensavo di fare gli accesi da remoto quindi non è che ho i dati su tutti i pc dai quali mi collego (ad esempio se sono in un internet point quel pc non avrà i miei dati) @garinus: sì utilizzo l'ethernet shield... @camba192: grazie per la tua soluzione, però poi se disattivo lo shield non mi crasha tutto? (dato che al massimo volevo visualizzare lo stato del sistema via web quindi avrei preferito che il mio sistema web si interfacciasse con il mio file di testo...)

Dimenticavo, @nathanvi: La mia idea era quella di controllare dei led tramite arduino interfacciato con un web server che avevo già trovato tra i progetti. Il tutto doveva essere pilotato in base a degli orari inseriti da utente (orario di accensione e di spegnimento) quindi ho preso anche le librerie relative al tempo e agli allarmi così da far accendere e spegnere il tutto controllando i tempi. Il primo problema che ho trovato era fare in modo che dal web server si potessero inserire gli orari di accensione e spegnimento poichè non ho fondamentalmente capito come far sì che vengano mandati più dati in input tramite GET o POST del form preimpostato, quindi pensavo di far compilare un file di testo all'utente con gli orari e poi salvarlo sull'arduino per poi fare tutti i controlli del caso. Il web a questo punto sarebbe servito solamente per visualizzare gli stati dei LED ed eventualmente gli orari di accensione o spegnimento preimpostati, senza la possibilità di cambiarli. Spero di essere stato abbastanza chiaro ed esaustivo :D Grazie per la disponibilità! Lorenzo

Si, proprio per questo ti chiedevo cosa dovessi fare. Considera che Arduino ha una memoria interna chiamata EEPROM. Essa è piuttosto limitata (512 bytes) ma per inserire degli orari va più che bene... http://www.arduino.cc/en/Reference/EEPROM Secondo me non hai bisogno di andarti ad impelagare in memorie SD e librerie varie. Ovviamente tutto questo IMHO (In My Honest Opinion) ;)

Ciao a Tutti Precisazione il ATmega328 ha 1024 byte di EEPROM Ciao Uwe

Molte grazie, questa cosa mi fa molto piacere ora però la mia domanda è un altra: L'utente non può andare direttamente sul programma a scrivere gli orari quindi bisogna in un qualche modo farceli arrivare... avreste qualche consiglio? Vi chiedo scusa ma sono ancora troppo niubbo per arrivarci da solo :-/ (però ho 18 anni e mi piace fare esperienza ;) )

ciao kappollo per la cronaca: IL html ha la possibilitá di creare campi da compilare e spedire ( FORM method POST e GET). Il browser manda i dati inseriti al host (server dove hai la pagina) Il server con dei linguaggi tipo PHP asp, ecc elabora i dati ecc.

ritornando su Arduino. Non so se questa possibilitá é implementata nel web server Arduino. Se sí crei un apgina inserimento dati e memorizzi i dati resi. Se no carichi tu i dati tramite sketch, seriale e PC. Non so dirti di piú

Ho 43 anni ma non preoccuparti.... ::) Ritengo giusto aiutare quelli che vogliono sapere di piú.

ciao Uwe

Grazie mille Uwe, si lo so come funziona l'HTML infatti il web server ha la possibilità sia della get e della post... solo che l'esempio è fatto con un campo solo ed aggiungere molti campi ho paura di non avere abbastanza spazio per lo sketch e poi di non riuscire a gestire le stringhe ricavate... fosse semplicemente la realizzazione di un sito web l'ho fatto mille volte il problema sono i controlli da eseguire tramite arduino e C che non conosco molto... era per quell che ero alla ricerca di nuove soluzioni! In ogni caso ribadisco i miei ringraziamenti per il tempo dedicatomi!

ciao kappollo

Io posso dirti come viene gestito con PHP. Lí hai dopo un form una array di variabili $_POST[] o $_GET[] dove l' indice é il nome che dai al campo nel form. Mi immagino che sia simile con Arduino. Siccuramente hai ragione che lo spazio ram é ridotto e per questo le possibilitá sono limitate. Non so darti informazioni concrete, posso solo invitarti di provare. Non avendo l' hardware per provare non posso neanche fare test.

Ciao Uwe

No il problema è che l'arduino da quello che ho capito gestisce il tutto come se fossero passaggi di stringhe quindi è più problematico di avere un array indicizzato... sarebbe manna dover semplicemente scorrere un array ;D... grazie mille in ogni caso proverò a dare un occhiata al codice per vedere se riesco a saltarci fuori nel miglior modo possibile! Lorenzo

ciao kappollo

La gestione strana delle Stringhe é tipica del linguaggio C. Posso solo consigliarti di fare un bel corso di C. Il mio é stato prima della Tua nasciata, percui mi ricordo poco. (finiamo con questa, i riferimenti dell etá). Dovrei rinfrescarlo anch io.

Ciao Uwe

Mi sa proprio che mi sarà utile farlo anche per il futuro un bel corso di C! Immaginavo che la tua esperienza fosse superiore per questo ti ammiro e ti rispetto, soprattutto per la voglia che hai di ascoltare un ragazzo come me a quest'ora tarda del mattino :D