Show Posts
Pages: 1 2 3 [4] 5 6 ... 9
46  International / Software / Re: Rileggere variabili dalla ultima riga da una SD (Arduino MEga) on: April 27, 2013, 12:19:41 am
Buongiorno a tutti,
ieri sera ho fatto le prime prove (premetto che non conosco la Libreira SD).

Vi espongo un attimo la situazione.

Dopo un Reset, i dati riletti (se riletti) non vengono applicati al processo in corso.

Sono sicuro che cè qualcosa che non va nel mio Code di rilettura, mi sono appoggiato al consiglio di Pablos,adattando alcuni comandi alla Libreria SD.

Per essere piu chiaro, vi posto 3 estratti del mio codice.

Estratto 1 : Codice rilettura dopo Reset (basato su consiglio di Pablos)
Estratto 2 : Formato in cui salvo i dati su SD
Estratto 3 : Presentazione dei dati riletti dalla SD

Vi Ringrazio e abbiate pazienza con la mia confusione.
Buona giornata
Remo

Estratto 1
--------------------------------------
  
Code:
// Rilettura dati in caso di Reset
 
 if (riavvio == 0) {
  
  Serial.println ("Rileggo ultimi valori.....");
   contatore = SD.open("valori2.txt");
   String ReadLine;
  char charBuf[80];
    
  if(contatore)  
  {
   int16_t c;
       while ((c = contatore.read())>0)
       {
         ReadLine += (char)c;
                
           if((char)c=='\n')
           {
int posizioneA = ReadLine.indexOf('A');
int posizioneB = ReadLine.indexOf('B');
int posizioneC = ReadLine.indexOf('C');
int posizioneD = ReadLine.indexOf('D');
int posizioneE = ReadLine.indexOf('E');
int posizioneF = ReadLine.indexOf('F');

String A = ReadLine.substring ((posizioneA+1),(posizioneB-1));
String B = ReadLine.substring ((posizioneB+1),(posizioneC-1));
String C = ReadLine.substring ((posizioneC+1),(posizioneD-1));
String D = ReadLine.substring ((posizioneD+1),(posizioneE-1));
String E = ReadLine.substring ((posizioneE+1), (posizioneF-1));


Serial.println (A);//temporanei
Serial.println (B);//temporanei
Serial.println (C);//temporanei
Serial.println (D);//temporanei
Serial.println (E);//temporanei
           }

    riavvio = 1;
    contatore.close();
  Serial.println ("ultimi valori riletti.....Done");
 }

   }}
------------------------------------------------

Estratto 2:
-------------------------------------------------
Code:
 contatore = SD.open("valori2.txt", FILE_WRITE);
      // if the file opened okay, write to it:
  if (contatore) {
    Serial.print("scrivo valori...");
    delay(250);
   contatore.print("#");
    contatore.print(giorno);
     contatore.print(";");
     contatore.print(mese);
      contatore.print(";");
       contatore.print(anno);
         contatore.print(";");
      
         contatore.print(ora);
          contatore.print(";");
           contatore.print(minuti);
            contatore.print(";");
             contatore.print(secondi);
            
              contatore.print("A");
                contatore.print(consumo_mom,1);
                
                  contatore.print("B");
                   contatore.print(kw_giorno);
                  
                    contatore.print("C");
                     contatore.print(contatore_alto,0);
                    
                       contatore.print("D");
                        contatore.print(contatore_basso,0);
                        
                          contatore.print("E");
                           contatore.print(giri);
                            contatore.print("F");
                             contatore.println("\n");
                          
                        
                          
// close the file:
    contatore.close();
    Serial.println("done.");
------------------------------------------------------

Estratto 3:
------------------------------------------------------
Code:
#27;4;2013;6;14;10A219.0B7.77C113165D112981E10F

#27;4;2013;6;16;10A252.1B7.78C113165D112981E11F

#27;4;2013;6;17;50A303.0B7.79C113165D112981E12F

#27;4;2013;6;19;33A291.3B7.80C113165D112981E13F

#27;4;2013;6;21;12A306.1B7.81C113165D112981E14F

#27;4;2013;6;22;57A288.5B7.82C113165D112981E15F

#27;4;2013;6;24;38A300.0B7.82C113165D112981E16F
-----------------------------------------------------------------
47  International / Software / Re: Rileggere variabili dalla ultima riga da una SD (Arduino MEga) on: April 26, 2013, 07:46:36 am
Vi ringrazio delle info, il raginamento l'ho capito.
useró le funzioni indexof e substring.

Unico dubbio , come faccio a riconvertire questi valori in INT ?
Ho letto qualcosa inerente Atol ma non so se sia la via giusta.

Saluti e grazie
Remo
48  International / Software / Re: Rileggere variabili dalla ultima riga da una SD (Arduino MEga) on: April 26, 2013, 03:06:08 am
Grazie proveró oggi e ti faro sapere.

Buona giornata.

Remo
49  International / Software / Re: Rileggere variabili dalla ultima riga da una SD (Arduino MEga) on: April 26, 2013, 02:34:45 am
Ti Ringrazio Pablos.
Attueró questa forma, molto piu chiara e snella.

Non ho ancora capito pero come posso far saltare il cursore all'inizio dell'ultima riga, e da li fare la ricerca.
Presumo con il comando seek() ?

Saluti
Remo
50  International / Software / Re: Rileggere variabili dalla ultima riga da una SD (Arduino MEga) on: April 26, 2013, 02:04:48 am
I valori (a parte data e ora) sono in INT, qui sotto un esempio (a memoria, non ho qui il log).
Tutto su una unica riga

17.4.2013 ORE: 12:25:37 Consumo Attuale 1456 watt Contatore alto 123456 Kwh Contatore basso 113455 ecc......


Quelle marcate in Rosso mi interesserebbe recuperare dopo un restart.

Saluti
Remo

51  International / Software / Re: Rileggere variabili dalla ultima riga da una SD (Arduino MEga) on: April 26, 2013, 01:41:38 am
Grazie del consiglio,
dovró rileggermi e studiarmi la libreria della SD.

Il mio intento è quello di ri-settare delle variabili, in pratica dovró riconvertirle in formato INT dopo la lettura.

Saluti
Remo
52  International / Hardware / Re: Alimentare Arduino Mega+Xbee tramite pannellino Solare on: April 26, 2013, 01:14:02 am
LA posizione dove verrebbe montato il pannello non è conveniente.
Ho tenuto d'occhio il sole :--)
In pratica avrei sole (quando cè) per solo 3 ore al giorno !!
Purtroppo nn conviene :--((
Ho risolto acquistando 18m di filo e tirandolo fino all'arduino (che lavoraccio !!)

Grazie comunque delle risposte e dei consigli.

Saluti
Remo
53  International / Software / Rileggere variabili dalla ultima riga da una SD (Arduino MEga) [RISOLTO] on: April 26, 2013, 01:10:27 am
Buongiorno a tutti,
utilizzo un Arduino Mega con Ethershield + SD.

Il mio progettino è quasi concluso, vi espongo l’unico punto aperto.

Quando avviene un reset, vorrei che L’arduino andasse a leggere le variabili dell’ultima riga, memorizzate sulla SD (che sarebbero quelle attuali), in modo da poter continuare da dove ci si era fermati.

Sono in cerca di qualche tutorial in Italiano (con quelli Inglesi ho difficolta).

Qualche consiglio ?

Grazie e buona giornata
Remo
54  International / Hardware / Re: Alimentare Arduino Mega+Xbee tramite pannellino Solare on: April 24, 2013, 01:31:29 am
Buongiorno e grazie delle risposte.
Per quanto riguarda il dimensionamento.
Se prendo i valori massimi di assorbimento dell Arduino e Xbee (ca. 100mA e 70mA).
Potrei calcolarmi la Potenza necessaria, ad esempio 7.5 Volt x 0.17A = 1.27 * 24h = 31 Wh.

Intendete questo come dimensionamento ?

Grazie e buona giornata.

Remo
55  International / Hardware / Alimentare Arduino Mega+Xbee tramite pannellino Solare on: April 23, 2013, 08:21:38 am
Ciao a tutti,
come da oggetto, vorrei poter alimentare Arduino+Xbee tramite pannellino solare.

1 pannello solare 6V 400ma
1 regolatore/switch (credo si chiami cosi)
1 Batteria 12 Volt (adibita a questi sistemi di pannelli).

Cè qualche ontroindicazione ?

Saluti
Remo
56  International / Generale / Re: Esiste esempio (sketch) Cosm --> Arduino ? on: January 23, 2013, 07:40:11 am
Ciao Pitusso,
Da Ottobre mando dati su Emoncms utilizzando sia il mio Server Locale che quello messo a disposizione da Emoncms stesso.

Il mio Intento, sarebbe quello di poter convogliare tutti i dati presenti su COSM , su un mio terzo Arduino, da li gestirli ed implementarli con altri dati già presenti in casa (controllo elettrodomestici luci ecc....).

Al momento la via piu facile è quella di COSM che ha Sketch che fanno questo (ma appunto con errori o sono io che non ci riesco), Emoncms invece ha bisogno di uno script PHP (cosa che io purtroppo non so programmare/modificare)

Risultato finale sarebbe quello di poter monitorare il tutto su un tablet, visibile a tutti i componenti della famiglia.
Il mio progetto è composto da :
1x Emontx che legge 3 sensori di corrente e li invia utilizzando un RF.
2x NanodeRF che ricevono i dati da Emontx e li inviano , uno su Emoncms l'altro su Cosm.
1X Arduino Mega che gestisce Temperatura,distanza,vibrazioni,e luminosita.(E altro che sto studiando)

Saluti
Remo

57  International / Generale / Re: Esiste esempio (sketch) Cosm --> Arduino ? on: January 23, 2013, 04:38:00 am
COSM è un sito/server su cui puoi inviare i tuoi dati (quasi in realtime).
COSM provvederà a generare un grafico e a tenere una tracciabilità dei tuoi dati.
In allegato uno screenshot del mio.

Saluti
R.
58  International / Generale / Re: Esiste esempio (sketch) Cosm --> Arduino ? on: January 23, 2013, 12:36:15 am
Ciao a tutti, grazie delle risposte.
Cosm ha messo a disposizione un nuovo sketch (data gennaio 2013), il quale ti permette di inviare un valore su Cosm, e allo stesso tempo rileggerlo, sempre con il medesimo sketch.
E un punto di partenza, ho provato a smanettarci sopra ieri eliminando la parte di post, utilizzando solo la parte Get , purtroppo ricevo sempre l'errore -403.
Posto qui sotto il Codice originale messo a disposizione da Cosm. Se qualcuno ha qualche idea.
P.S. il valore = 2777 l'ho messo io per testarlo.
Grazie
R.
-----------------------------------

 /**
 * Cosm Arduino sensor client example.
 *
 * This sketch demonstrates connecting an Arduino to Cosm (https://cosm.com),
 * using the new Arduino library to send and receive data.
 *
 * Requirements
 *   * Arduino with Ethernet shield or Arduino Ethernet (board must use the
 *     Wiznet Ethernet chipset)
 *   * Arduino software with version >= 1.0
 *   * An account at Cosm (https://cosm.com)
 *
 * Optional
 *   * An analog sensor connected to pin 2 (note we can still read a value from
 *     the pin without this)
 *
 * Created 8th January, 2013 using code written by Adrian McEwen with
 * modifications by Sam Mulube
 *
 * Full tutorial available here: https://cosm.com/docs/quickstart/arduino.html
 *
 * This code is in the public domain.
 */

#include <SPI.h>
#include <Ethernet.h>
#include <HttpClient.h>
#include <Cosm.h>

#define API_KEY "xxxxxxxxxxx" // your Cosm API key
#define FEED_ID xxxxxxx // your Cosm feed ID



// MAC address for your Ethernet shield
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

// Analog pin which we're monitoring (0 and 1 are used by the Ethernet shield)
int sensorPin = 2;

unsigned long lastConnectionTime = 0;                // last time we connected to Cosm
const unsigned long connectionInterval = 15000;      // delay between connecting to Cosm in milliseconds

// Initialize the Cosm library

// Define the string for our datastream ID
char sensorId[] = "sensor_reading";

CosmDatastream datastreams[] = {
  CosmDatastream(sensorId, strlen(sensorId), DATASTREAM_FLOAT),
};

// Wrap the datastream into a feed
CosmFeed feed(FEED_ID, datastreams, 1 /* number of datastreams */);

EthernetClient client;
CosmClient cosmclient(client);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  Serial.println("Cosm Sensor Client Example");
  Serial.println("==========================");

  Serial.println("Initializing network");
  while (Ethernet.begin(mac) != 1) {
    Serial.println("Error getting IP address via DHCP, trying again...");
    delay(15000);
  }

  Serial.println("Network initialized");
  Serial.println();
}

void loop() {
  // main program loop
  if (millis() - lastConnectionTime > connectionInterval) {
    // read a value from the pin
    int sensorValue = 2777.25;
    // send it to Cosm
    sendData(sensorValue);
    // read the datastream back from Cosm
    getData();
    // update connection time so we wait before connecting again
    lastConnectionTime = millis();
  }
}

// send the supplied value to Cosm, printing some debug information as we go
void sendData(int sensorValue) {
  datastreams[0].setFloat(sensorValue);

  Serial.print("Read sensor value ");
  Serial.println(datastreams[0].getFloat());

  Serial.println("Uploading to Cosm");
  int ret = cosmclient.put(feed, API_KEY);
  Serial.print("PUT return code: ");
  Serial.println(ret);

  Serial.println();
}

// get the value of the datastream from Cosm, printing out the value we received
void getData() {
  Serial.println("Reading data from Cosm");

  int ret = cosmclient.get(feed, API_KEY);
  Serial.print("GET return code: ");
  Serial.println(ret);

  if (ret > 0) {
    Serial.print("Datastream is: ");
    Serial.println(feed[0]);

    Serial.print("Sensor value is: ");
    Serial.println(feed[0].getFloat());
  }

  Serial.println();
}
------------------------------------
59  International / Generale / Re: Esiste esempio (sketch) Cosm --> Arduino ? on: January 22, 2013, 01:35:18 pm
purtroppo nn so programmare ne php ne Asp.
Ho qualche nozione in c non di più.

Saluti
Remo
60  International / Generale / Esiste esempio (sketch) Cosm --> Arduino ? on: January 22, 2013, 12:14:44 pm
Ciao a tutti,
al momento utilizzo un emontx che invia dati su COSM (utilizzando un NANODERF).
Tutto funziona alla perfezione al momento.

Adesso vorrei rigirare questi dati che COSM riceve, sul mio Arduino Mega.

Esistono esempi in merito ? Googlando, trovo solo esempi per inviare dati a COSM.

Io vorrei il contrario.

Saluti
Remo
Pages: 1 2 3 [4] 5 6 ... 9