Skip to content
lucamenini edited this page Feb 1, 2015 · 29 revisions

Questo software è stato realizzato da Gregorini Marco (marco.grego[at]hotmail.it), studente universitario dell'Università degli Studi di Padova durante un periodo di stage presso ARPA Veneto.

Il software e l'hardware collegati vanno installati sul pluviometro autocostruito riportato nelle fotografie Foto pluviometro.


###Esempio utilizzo libreria Master

Esempio utilizzo libreria Master:

int numberOfNewTimestamp = SlaveInterface.newTimestamp(); // recupero il numero di nuovi timestamp
if(numberOfNewTimestamp() > 0) // verifico che ci siano nuovi timestamp da richiedere
{
    for(int j =0; j<numberOfNewTimestamp;j = j+900) \*
    {
        TimestampContainer container = SlaveInterface.requireTimestamp() // recupero i nuovi                                              timestamp dallo Slave
        for(int i = 0; i < container.size(); i++) // scorro tutti i Timestamp contenuti dentro il container
       {
         Timestamp tmstmp = container.value(i); // recupero il Timestamp i-esimo dal container
         Serial.println(tmstmp.day());   // stampo il giorno del mese
         Serial.println(tmstmp.month()); // stampo il mese dell'anno
         Serial.println(tmstmp.year());  // stampo l'anno
         Serial.println(tmstmp.hour());  // stampo l'ora del giorno
         Serial.println(tmstmp.minute());// stampo i minuti dell'ora
         Serial.println(tmstmp.second());// stampo i secondi del minuto
         Serial.println(tmstmp.counter());// stampo il contatore del Timestamp
         Serial.print(***);
       }
 
       container.clear(); // rilascio la memoria occupata dal TimestampContainer
  }

* Poiché le schede Arduino possiedono capacità limitate di RAM, se ci sono più di 900 byte di dati da inviare, devono essere effettuate più richieste, perché ogni richiesta invia al massimo 900byte. Due richieste successive inviano i byte corretti: i primi 900 + i byte restanti.

Nel caso in cui si possieda una scheda con maggiore capacità di memoria RAM, maggiore di 2K, si può modificare il valore della variabile MAXRAM, sempre con un numero multiplo di 30.

###Documentazione:


###Componenti utilizzate:

  • Memoria EEPROM 24LC256 da 32kb;
  • Tiny RTC.

Schema connessioni


###Librerie esterne utilizzate:

  • Wire.h -> per la comunicazione I2C;
  • DS1307RTC.h -> per l'interrogazione tramite I2C della RTC;
  • EEPROM.h -> per l'utilizzo della memoria interna al microprocessore.

Questo codice viene rilasciato con licenza GPL GNU GENERAL PUBLIC LICENSE

Clone this wiki locally