Salve a tutti.
Sto usando:
– Arduino Uno
– Adafruit Data Logger shield rev B
– Due sensori Grove Temperature&Humidity Sensor Pro DHT 22
– Seeed Solar Charger Shield V2.2 con batteria e pannelli fv
Tutto questo per monitorare temperatura e umidità in una serra.
Ho modificato lo sketch fornito da Adafruit per temporizzare la lettura dei sensori usando l’RTC incorporato nel logger. Funziona tutto ma ho un paio di domande a cui non ho trovato risposta.
- Non voglio usare il delay ma una lettura ogni ora intera e ogni mezz’ora.
Ho scritto un un ciclo if che funziona. E’ possibile sostituire alle cifre dell’ora e dei minuti due caratteri che significano qualunque numero per soddisfare tutte le occorrenze nelle 24 ore?
void loop(void)
{
// ottiene l’ora dal rtc
DateTime now = RTC.now();
// ciclo if per scrivere su SD
if(now.hour() == 12 && now.minute() == 0 && now.second() == 0
|| now.hour() == 12 && now.minute() == 30 && now.second() == 0
|| eccetera)
{
// istruzioni di lettura sensori e scrittura su SD
}
}
- Tutti i file che crea lo sketch per scrivere i dati dei sensori sulla scheda SD hanno sempre la stessa data e ora: 01/01/2000, 00:00:00
E’ possibile usare data e ora corrente del RTC?
// create a new file
char filename[] = "LOGGER00.CSV";
for (uint8_t i = 0; i < 100; i++) {
filename[6] = i/10 + '0';
filename[7] = i%10 + '0';
if (! SD.exists(filename)) {
// only open a new file if it doesn't exist
logfile = SD.open(filename, FILE_WRITE);
break; // leave the loop!
}
}
Grazie a tutti.