Pages: [1]   Go Down
Author Topic: salvare valori temperatura  (Read 1507 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 1
Posts: 150
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao a tutti smiley
ho creato un piccolo progetto con dei led, un rgb un termistore e una fotoresistenza
in che modo posso salvare i dati della temperatura e poi scaricarli sul computer??
devo per forza usare una memory card?
grazie in anticipo smiley
Logged

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 26
Posts: 5496
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Puoi anche salvarli su eeprom e poi tramite seriale li leggi li importi ad esempio su excell e finita la lettura la cancelli, solo che la eeprom ha un numero di scritture cancellazioni limitate occhio....
oppure usi una EEPROM o FRAM esterna ad arduino ma la cosa si complica più che ad usare una SD
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Offline Offline
Full Member
***
Karma: 1
Posts: 150
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

e come farei a usare una sd?
mi verrebbe a costare molto?
ho sempre avuto un dubbio:quando metto una shield attaccata all'arduino uno mi usa tutti i pin concui l'attacco??
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3389
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non ti verrebbe a costare molto, puoi fare tu uno shield  con i dovuti partitori e la SD oppure prenderlo già fatto.
Se hai uno shield ethernet ancora meglio, puoi mandare i dati su "google spreadsheet" sono 5 Gb di spazio free per ogni occount google. Vedresti i dati on-line da qualsiasi pc in tempo reale con grafici ecc.
Logged

no comment

Offline Offline
Full Member
***
Karma: 1
Posts: 150
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

a me bastava semplicemente salvarli smiley
se no creando un programma in visual basic x il computer ke riceva i valori??
so che si può fare ma nn ho idea di come farlo smiley
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3389
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ti assicuro che non è difficile

http://www.0ex.it/2012/06/adattarore-sd-microsd-sdhc-per-arduino-p1/
http://arduino.cc/forum/index.php?topic=8863.0
http://www.roland-riegel.de/sd-reader/index.html

http://www.logicaprogrammabile.it/arduino-ethernet-memoria-scheda-micro-sd/

Logged

no comment

Offline Offline
Full Member
***
Karma: 1
Posts: 150
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok grazie smiley adesso quando avro tempo(non prima di sabato perchè parto per una gita scolasica a praga) cercherò di guardarci e di capirci qualcosa
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 258
Posts: 21502
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dipende tutto da quanti dati devi memorizzare.
L' eeprom interno al Arduino é da 1KByte.
Gli EEprom esterni sono fino a un centinaio di kByte
Le schedine SD sono fino a 2GByte, quelle SDHC fino a 32GByte
Ciao Uwe
Logged

Offline Offline
Full Member
***
Karma: 1
Posts: 150
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@uwefed ok per ora non posso comprare la shield sd quindi penso di usare l'eproom
come faccio a salvare i dati e soprattutto poi per leggerli come faccio??
quanti dati posso salvare con un kbyte? e se spengo l'arduino si cancellano?
grazie mille smiley
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 327
Posts: 22658
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@uwefed ok per ora non posso comprare la shield sd quindi penso di usare l'eproom
come faccio a salvare i dati e soprattutto poi per leggerli come faccio??
Per salvarli e leggerli è facile, usi la libreria EEPROM:
http://www.arduino.cc/en/Reference/EEPROM

Per spedirli al computer devi avere una connessione attiva: se non puoi comprarti la Ethernet, l'alternativa è attaccare l'Arduino alla seriale e poi spedire i dati. Però poi devi scriverti un software lato PC che riceva questi dati e li salvi da qualche parte.

Quote
quanti dati posso salvare con un kbyte? e se spengo l'arduino si cancellano?
grazie mille smiley
Sulla quantità dipende da cosa salvi ed in che formato.
Se li salvi su memorie non volatili (Flash, Eeprom), i dati non li perdi staccando l'alimentazione.
Logged


Offline Offline
Full Member
***
Karma: 1
Posts: 150
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie mille
c'è una cosa che nn ho capito io ho una variabile chiamata temperatura in cui vengono letti gli ononimi dati
io come faccio a scriverli sulla eproom?
cioè sul link ke mi hai dato c'è scritto "EEPROM.write(i, i);" ma io devo solo mettere la temperatura come faccio??
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 327
Posts: 22658
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

La temperatura sarà la lettura di un sensore salvata in una variabile. Devi salvare la variabile.
Se la variabile è di tipo int, devi salvarla scomposta nei suoi 2 byte, byte basso e byte alto:
http://arduino.cc/en/Reference/LowByte
http://arduino.cc/en/Reference/HighByte
Logged


BG (I)
Offline Offline
Full Member
***
Karma: 0
Posts: 202
Usus plura docet
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tempo fa ho fatto questo sketch in Processing, per salvare appunto dei valori provenienti dalla seriale di Arduino riguardanti la misurazione della temperatura, è facilmente modificabile per ogni esigenza:
Code:
// Scrittura su file da Arduino
import processing.serial.*;
Serial mySerial;
PrintWriter output;

void setup() {
  mySerial = new Serial( this, Serial.list()[1], 9600 );  // seleziona la porta seriale di Arduino e la velocitÃ
  mySerial.bufferUntil('\n'); // Buffer seriale fino a new line
  output = createWriter( "dati.txt" );  // Nome file dati (lo scrive dove risiede il programma)
}

void draw() {
  // Imposta dati con data e tempo
  int gi = day();    // giorno
  int me = month();  // mese
  int an = year();   // anno
  int se = second(); // secondi
  int mn = minute(); // minuti
  int or = hour();   // ore

  if (mySerial.available() > 0 ) {
    String value = mySerial.readStringUntil('\n');   // legge dati da seriale fino a new line
    if ( value != null ) {
      // scrive dato tempo oppure aggiungere anche data
      String s = String.valueOf(or)+":"+String.valueOf(mn)+"."+String.valueOf(se)+" "; 
      output.print( s );

      output.print( value );   // scrive su file lettura da seriale da Arduino

    }
  }
}

// Esce dal programma alla pressione di qualsiasi tasto
void keyPressed() {
  output.flush(); // Scrive i dati rimanenti su file
  output.close(); // Chiude il file
  exit(); // Esce dal programma
}

Logged

Pages: [1]   Go Up
Jump to: