Unendo due progetti che puoi leggere su questo blog Datalogging con arduino e sensore DHT11 puoi realizzare il progetto: Datalogger arduino temperaura e umidità.
Dal nome del progetto “Datalogger arduino temperaura umidità” hai già capito l’obiettivo che puoi raggingere: realizzare un sistema di monitoraggio della temperatura e dell’umidità dell’ambiente in cui lo posizioni.
Come funziona il Datalogger arduino temperatura umidità ?
Il principio di funzionamento è semplice ogni 10 minuti ( 600000 millisecondi = 600 secondi ) rilevi la temperatura e l’umidità attraverso la sonda DHT11 e scrivi in un file di log ( dati.log ) la stringa:
data ora umidità temperatura
il file dati.log lo memorizzi su di una SD Card formattata FAT16 o FAT32 inserita nella SD Card Shield.
Cosa ti serve per realizzare il progetto
L’elenco del materiale è:
- n.1 arduino uno
- n.1 RTC Shield
- n.1 SD Card Shield
- n.1 sonda DHT11 con relativo cavetto di connessione
- n.1 Memory card SD da 2Gb max
- n.3 cavetti per breadboard
tutto il materiale puoi acquistarlo in arduino datalogger kit disponibile sul sito robot-domestici.it
Lo sketch del datalogger arduino
Lo sketch lo puoi realizzare partendo dai due precedentemente presentati per cui commenterò solo le differenze ottenute unendo i due sketch precedenti:
// Date and time functions using a DS1307 RTC connected via I2C and Wire lib #include <Wire.h> #include "RTClib.h" #include <SD.h> #include <dht11.h> #define CS 10 #define DHT11_PIN 4 RTC_DS1307 RTC; dht11 DHT; char buffer[50]; File myFile; void setup () { Serial.begin(57600); Serial.print("Initializing SD card..."); pinMode(CS, OUTPUT); if (!SD.begin(CS)) { Serial.println("initialization failed!"); return; } Serial.println("initialization done."); Wire.begin(); RTC.begin(); RTC.sqw(0); //0 Led off - 1 Freq 1Hz - 2 Freq 4096kHz - 3 Freq 8192kHz - 4 Freq 32768kHz if (! RTC.isrunning()) { Serial.println("RTC is NOT running!"); // following line sets the RTC to the date & time this sketch was compiled RTC.adjust(DateTime(__DATE__, __TIME__)); } } void loop () { DateTime now = RTC.now(); // ----------------------------------------------------------------------- int chk; chk = DHT.read(DHT11_PIN); // READ DATA int data = 0; // RETUTRNCODE switch (chk){ case DHTLIB_OK: data = 0; break; case DHTLIB_ERROR_CHECKSUM: data = 997; // CHECK SUM ERROR break; case DHTLIB_ERROR_TIMEOUT: data = 998; // TIMEOUT ERROR break; default: data = 999; // UNKNOWN ERROR break; } // ----------------------------------------------------------------------- sprintf(buffer, "%02d/%02d/%d %02d:%02d:%02d %d %d", now.day(), now.month(), now.year(), now.hour(), now.minute(), now.second(), DHT.humidity, DHT.temperature, data ); Serial.println( buffer ); myFile = SD.open("dati.log", FILE_WRITE); if (myFile) { myFile.println(buffer); myFile.close(); } else { Serial.println("error opening data.log"); } delay(600000); }
come avrai già intuito la prima differenza risiede nell’inclusione di tutte le librerie necessarie a gestire RTC,SD Card e DHT11:
#include <Wire.h> #include "RTClib.h" #include <SD.h> #include <dht11.h>
alle prime tre librerie presenti nel progetto data logging arduino devi aggiungere la libreria del DHT11, ultima riga.
le linee 08-09: definisci due costanti CS e DHT11_PIN la prima definisce il pin di CABLE SELECT per la gestione della SD Card shield, mentre il secondo il pin a cui hai collegato il pin output della sonda DHT11, nell’esempio io l’ho collegata al pin 4 di Arduino:
linee 11-13: definisci l’istanza dell’oggetto RTC, del DHT e ilo buffer di 50 caratteri in cui memorizzi i valori letti dai primi due: RTC ( data e ora = 19 caratteri ) e DHT11 ( temperatura e umidità = 6 caratteri );
linee 17-37: non ci sono variazioni;
All’interno della funzione loop() la prima modifica riguarda le linee 42-61:
// ----------------------------------------------------------------------- int chk; chk = DHT.read(DHT11_PIN); // READ DATA int data = 0; // RETUTRNCODE switch (chk){ case DHTLIB_OK: data = 0; break; case DHTLIB_ERROR_CHECKSUM: data = 997; // CHECK SUM ERROR break; case DHTLIB_ERROR_TIMEOUT: data = 998; // TIMEOUT ERROR break; default: data = 999; // UNKNOWN ERROR break; } // -----------------------------------------------------------------------
in cui la linea 44: leggi i dati dal sensore, usando il metodo read() dell’istanza DHT indichi alla sonda di leggere i valori per il datalogger arduino temperatura umidità;
linee 46-59: verifichi il return code dell’interrogazione eseguita alla linea 44 in modo da scrivere nel log eventuali anomalie di comunicazione con la sonda;
linea 63: componi la riga di log da scrivere sulla SD Card e memorizzala nel buffer, la linea è composta come:
gg/mm/aaaa hh:mm:ss uu tt
in cui uu è il valore dell’umidità rilevata e tt il valore di temperatura rilevata;
le linee restanti servono a scrivere nel dile di log il file dati.log.
Ho attivato ieri il mio datalogger arduino umidità temperatura dalle 9:45 alle 17:45 circa lasciando che acquisisse i dati dell’ambiente, casa, ecco il risultato del file alle 17:45:
15/12/2013 09:45:38 43 16 15/12/2013 09:48:16 43 16 15/12/2013 09:48:20 44 14 15/12/2013 09:48:33 45 15 15/12/2013 09:48:39 45 15 15/12/2013 09:58:38 45 15 15/12/2013 10:08:37 45 19 15/12/2013 10:18:36 45 19 15/12/2013 10:28:35 45 19 15/12/2013 10:38:33 44 19 15/12/2013 10:48:32 45 19 15/12/2013 10:58:31 46 18 15/12/2013 11:08:30 44 19 15/12/2013 11:18:29 46 18 15/12/2013 11:28:28 46 18 15/12/2013 11:38:26 45 18 15/12/2013 11:48:25 46 18 15/12/2013 11:58:24 45 18 15/12/2013 12:08:23 45 18 15/12/2013 12:18:22 46 18 15/12/2013 12:28:20 45 18 15/12/2013 12:38:19 45 19 15/12/2013 12:48:18 45 19 15/12/2013 12:58:17 45 19 15/12/2013 13:08:16 44 19 15/12/2013 13:18:15 45 19 15/12/2013 13:28:13 45 18 15/12/2013 13:38:12 46 18 15/12/2013 13:48:11 45 18 15/12/2013 13:58:10 46 18 15/12/2013 14:08:09 45 18 15/12/2013 14:18:07 45 18 15/12/2013 14:28:06 45 18 15/12/2013 14:38:05 45 19 15/12/2013 14:48:04 45 19 15/12/2013 14:58:03 45 19 15/12/2013 15:08:02 45 19 15/12/2013 15:18:00 46 18 15/12/2013 15:27:59 46 18 15/12/2013 15:37:58 46 18 15/12/2013 15:47:57 46 18 15/12/2013 15:57:56 46 18 15/12/2013 16:07:54 45 18 15/12/2013 16:17:53 46 18 15/12/2013 16:27:52 45 19 15/12/2013 16:37:51 45 19 15/12/2013 16:47:50 45 19 15/12/2013 16:57:49 44 19 15/12/2013 17:07:47 45 18 15/12/2013 17:17:46 44 19 15/12/2013 17:27:45 46 18 15/12/2013 17:37:44 45 18 15/12/2013 17:47:43 45 18
ho importato il file in un foglio di calcolo e generato un grafico sull’andamento della temperatura:
ed un grafico sull’andamento dell’umidità rilevate:
Buon monitoraggio domotico !!!
62 commenti
2 ping
Vai al modulo dei commenti
Ciao Omonimo,veramente bello il tuo blog,complimenti,da questo sketch volevo creare un progettino simile e per questo ti chiedevo due “dritte”.
Volevo rilevare la chiusura di un input digitale in intervalli di 10 minuti ( esempio dalle 07:00 alle 07:10 contatto chiuso per 315 volte,per 24h,7 giorni su 7,per tutto l’anno).
Il tutto viene salvato in un file di log.
La mia domanda era questa,quanto spazio deve avere la mia sd card??Come faccio a calcolarmelo??
Spero di essere stato abbastanza chiaro,Grazie in Anticipo.
Saluti,Mauro
Autore
Ciao Mauro,
la grandezza della SD Card può essere al massimo 2Gb per conoscere quanti giorni puoi registrare devi definire quanto è lunga una stringa di log, per farlo usa un semplice metodo: crea un file txt sul tuo computer che contiene una linea tipo di quelle che vuoi scrivere come log e verifica quanto è grande il file, ad esempio
20/12/2013 10:40:00 315 occupa 24byte circa
poi dividi 2Gb = 2048Mb = 2097152byte -> 2097152 / 24 = 87381 record circa
Mauro
Grazie 1000,ora è tutto chiaro.
Saluti,Mauro
Ciao Mauro,scusa se ti rompo ancora,ma non mi trovo con i tuoi calcoli.
2 Gb=2048Mb=2147483648 -> 2147483648/24 = 89478485 record circa
E’ Sbagliato?
Ciao Mauro
Autore
Ciao Mauro,
così ad occhio direi di si 🙂 non ho una calcolatrice a portata di click.
Mauro
Buongiorno, bravo, sempre i miei complimenti.
Approfitto per augurare un Buon Natale e un Sereno e Prospero Anno Nuovo.
Cordialmente Ennio Maresca Pescara
Autore
Grazie Ennio,
ho diversi progetti in cantiere per il 2014 🙂
Mauro
Complimenti per i contenuti del blog, molto interessante.
Mi sono permesso di postare la tua pagina sul mio diario facebook.
Speriamo che altri si interessano a questo ambiente così interessante.
Grazie
Autore
Grazie Gino,
hai senza dubbio aiutato a diffondere l’argomento.
Ho realizzato un kit per questo progetto se vuoi riprodurlo ed é in vendita sul sito robot-domestici.it in questo giorni tra le novità, con é senza display LCD 🙂
Mauro
Hi Friends
I am trying to do a similar program like this Arduino temperature humidity data logger, but I only will use DHT11 sensors, I have 10 sensors and Arduino uno .
Can you help me recode your code (for 2 or 3 DHT11 sensors)? I tryed but give many errors and I am a begginer.
Thanks in advance
CPalha
Autore
Hi Carlos,
in the future I will write the code for multiple DHT sensor, now i have only one sensor and I can’t try this sketch.
Mauro
Non riesco a trovare la Shield SD che hai usato, è sufficiente una qualsiasi Shield SD che utilizzi il bus SPI? A proposito, questo bus che pin di Arduino utilizza?
Grazie
Autore
Ciao Andrea,
la SD Card è stat sostituita con una più aggiornata che non ho ancora provato.
Sulla compatibilità con Arduino ce ne sono diverse che ho provato ma ognuna usa una propria libreria e metodi di scrittura e lettura.
Controllare che il negozio da cui acquisti ti rilasci lo sketch di esempio da utilizzare.
Mauro
Grazie Mauro, potrei utilizzare per il datalogger direttamente un Arduino yun?
Autore
Ciao Andrea,
in linea di massima direi di si anche se non l’ho mai testato con la Yun potrebbe essere un ottimo esercizio.
Mauro
comunque nella shield che ho visto c’è scritto: “Shield per Arduino” e “Arduino Library support”
credo quindi che posso usare la libreria “sd.h” giusto?
Autore
Ciao Andre,
non so di quale shield tu stia parlando ma se la indicano valida per Arduino è certamente compatibile.
Devi verificare che esista una deguata documentazione sull’utilizzo e che usi pin che il datalogger non usa per altro altrimenti ti troverai in un conflitto di pin 🙂
Mauro
Ciao mauro sto seguendo i tuoi progetti perché sono fatti veramente molto bene complimenti e li sto utilizzando come spunto per il mio..volevo chiederti una volta creato il file e salvato su SD..posso utilizzarlo per la lettura all’interno di un frame nel mio web server che verrà aggiornato ogni secondo per vedere l’aggiornamento in tempo reale?
grazie in anticipo 🙂
Autore
Ciao Daniel, descritto così vedo delle difficoltà oggettive sui tempi, dipende molto da come pensi di accedere dal webserver per recuperare i dati e come sarà fatto il webserver.
ciao mauro, io utilizzo lo sketch di esempio che hai l’arduino nel software
Autore
Ciao Daniel, non comprendo cosa intendi.
bonjour
je veut savoir comment sauvegarder les données températures et humidités dans un fichier dans un micro-ordinateur avec une carte arduino uno et capteur température – humidité ( DHT 22)
Autore
Bonjour Benaceur,
pour sauvegarder les données sur un ordinateur, vous pouvez utiliser le port série.
Vous devez écrire un programme en Vb, Python, C, ou bien sur l’ordinateur qui sauvegarder les données.
Salve Mauro, grazie intanto … imparo lentamente ma imparo …
Non volendo passare le prossime notti a finire, veder funzionare il datalogger temperature…
ti chiedo un aiuto ….
Non riesco a capire il motivo perchè non mi da il corretto valore sul file di temperatura ed umidita..
DHT11, OK, 60.00, 28.00
31/07/2014 00:08:39 0 17008
DHT11, OK, 60.00, 28.00
31/07/2014 00:08:43 0 17008
DHT11, OK, 60.00, 28.00
31/07/2014 00:08:47 0 17008
DHT11, OK, 60.00, 28.00
31/07/2014 00:08:51 0 17008
DHT11, OK, 60.00, 28.00
31/07/2014 00:08:55 0 17008
DHT11, OK, 60.00, 28.00
31/07/2014 00:08:59 0 17008
DHT11, OK, 60.00, 28.00
31/07/2014 00:09:03 0 17008
DHT11, OK, 60.00, 28.00
31/07/2014 00:09:07 0 17008
DHT11, OK, 60.00, 28.00
Questo è quello che mi viene fuori ..
Ho compreso che la riga incrimitata..è
sprintf(buffer, “%02d/%02d/%d %02d:%02d:%02d %d %d”, now.day(), now.month(), now.year(), now.hour(), now.minute(), now.second(), DHT.humidity, DHT.temperature, data );
Ma le ho provate tutte..
Grazie
Walter
Autore
Ciao Walter, prova il sensore con lo sketch di test che fornisce il produttore o venditore e verifica che funzioni correttamente e che i valori siano corretti.
Grazie Mauro… intanto il sensore l’ho provato .. funziona… mi tira fuori i valori corretti il problema è sulla scriittura
sulla SD.
e su questa riga :
sprintf(buffer, “%02d/%02d/%d %02d:%02d:%02d %d %d”, now.day(), now.month(), now.year(), now.hour(), now.minute(), now.second(), DHT.humidity, DHT.temperature, data );
Da quello che ho capito la variabile %d indica la lettura di DHT.humidity o DHT.temperature.
solo che quando la legge legge iin questo modo
DHT11, OK, 60.00, 28.00
31/07/2014 00:09:07 0 17008 –> è il valore che scrive mentre sopra il valore è 28.
Sto usando una libreria diversa dalla tua del dth11 ma tutto funziona, ho variato i valori nell schetch ..
e va…
Walter
Autore
Bene Walter,
sono contento che tu sia riuscito a farlo funzionare.
Scusami Mauro …. si funziona il sensore… ma mi è rimasto il problema del valore errato
in scrittura su SD della temperatura ed umidità…
Anche oggi prove ma nulla… non so più cosa provare….
Grazie Mauro …
Autore
Ciao Walter,
non avevo compreso 🙂
Potrebbe essere dovuto al differente tipo di variabile restituito dalla classe che stai usando.
Ad esempio: se la classa DHT11 restituisce un float ( 28,00 ) ed io lo tratto come un intero ( 28 ) può funzionare anche se non è corretto al 100%
se, invece, la classe restituisce un char ( “28,00” nel monitor seriale appare come 28,00 ) ed io lo tratto come intero o float ( numero %d ) vedrai una conversione del valore che è di certo differente da quello che ti aspetti.
Il mio consiglio è di verificare la tua classe cosa restituisce, direttamente nella classe o nella documentazione dell’autore.
CIao Mauro,
ne sono venuto a capo … grazie ancora delle dritte … e delle conoscenze che metti a disposizione…
Ho aggiunto questo :
int DHT_h;
int DHT_t;
DHT_h = DHT.humidity;
DHT_t = DHT.temperature;
e poi ho variato
sprintf(buffer, “%02d/%02d/%d %02d:%02d:%02d %d %d ” , now.day(), now.month(), now.year(), now.hour(), now.minute(), now.second(), DHT_h, DHT_t, data );
Serial.println( buffer );
Ora va…
Ultimissima cosa…
Ho il tempo che va 20 minuti indietro …
Come si setta?
Ancora grazie
Walter
Autore
Ciao Walter,
ora che mi hai descritto la soluzione ho compreso il problema, hai fatto delle modifiche alle avriabili rispetto al mio codice e non avevi idea di quale fosse il motivo per cui le stavi facendo 🙂
Nel mio codice DHT_t e DHT_h non esistono, appartengono ad altri esempi che ho realizzato, da questo la mia confusione.
Per il reset dell’ora leggi la descrizione dello sketch troverai una sorpresa nella setup().
Grazie MAuro….
Prezioso..
Con stima
Walter
Ciao, una domanda come mai a me da sempre errore sulla parte
RTC_DS1307 RTC;
dht11DHT; (proprio qui)
char buffer[50];
e non riesco ad utilizzare il tuo sketch? potresti aiutarmi? non ho mola esperienza e men che meno per le sd logger. grazie mille
Autore
Ciao Ricky,
che errore ti da?
Autore
Ciao Ricky,
che errore ti restituisce ?
Se non hai molta esperienza ti consiglio di leggere il mio corso on-line per acquisire le basi o di frequentare un corso in aula prima di sperimentare progetti troppo complessi.
Ciao Mauro,
ho un problema con la creazione del buffer , usando un dht22 imposto comefloat il valore per poter vedere il valore decimale ma se uso %d nella creazione del buffer me lo tronca come fosse un int.
cosa posso scrivere per impostare la virgola (anche fissa con due posizioni decimali) ?
grazie mille
Autore
Ciao Francesco,
ti consiglio di leggere nel reference arduino o in quello del c++ quali opzioni supporta la funzione sprintf.
ho risolto con questo metodo
creo tre char,ovvero tre buffer , uno totale e uno per ogni valore float
[ codice rimosso in automatico ]
e cosi via in caso di piu valori.
poi personalmente avendo 8 dht22 condidero float solo la temperatura perche lavirdola sul valore di umidita’ non ha senso ai fini realistici.
cosi facendo creo una stringa da salvare nella sd o , prossimo step, da spedire adun server
Autore
Ciao Francesco,
sono contento che tu sia riuscito a risolvere il tuo problema.
Come avrai letto in fondo ad ogni articolo “non è possibile incollare codice nei commenti”.
Buongiorno Mauro, avevo iniziato a sviluppare un progetto per controllare la temperatuta di una serra ( facendo accendere una stufetta elettrica se la temperatura scendeva sotto un setpoint).Volevo fare un upgrade del progetto per avere un log su SD.. Di conseguenza sto provando ad usare il display via seriale per la mancanza mancanza di pin liberi.
ho iniziato a fare prove con il progetto diviso per parti e tutto funziona; ma unendo i vari pezzi non va piu niente. Volevo chiederti se avevi provato a fare questa modifica sul tuo progetto e se il problema poteva essere dato dalla limitata SRAM.
Grazie e complimenti per il sito.
Autore
Ciao Daniele,
ho realizzato diversi progetto di serre, umidificatori, controllori di umidità e temperatura, sia con SD sia con Display LCD, quasi tutti di tipo tradizionali a 8 pin, e non ho mai riscontrato problemi di reset.
Tuttavia potresti aver scritto del codice accessorio che causa il problema da te riscontrato, ti consiglio di verificare quanta memoria utilizzi, l’IDE dalla versione 1.6.1 in poi te lo specifica in fase di compilazione.
Ciao Mauro
grazie per i consigli dati, ho applicato arduino per la raccolta dati di un arnia, adesso mi ritrovo con qualche migliaia diti raccolti tra differenti dati: umidità, temperatura, radiazione solare.
non so come poterli leggere facilmente, ci sono dei software più immediati di excel?
I dati sono salvati in formato csv
saluti
Vtttorio
Autore
Ciao Vittorio,
io utilizzo i fogli di calcolo perché ritengo siano alla portata di tutti e facilmente utilizzabili.
Puoi caricare il dato in un database e realizzarti tutte le interfacce di interrogazione che desideri in php,html,javascript se conosci queste tecnologie. In alternativa i programmi di reportistica a pagamento che conosco io hanno costi e complessità elevati perché usati nelle grandi aziende.
Salve Mauro, volevo chiederti un chiarimento sullo sketch descritto: la scheda SD oltre alla libreria specifica SD.h ha bisogno anche della libreria SPI.h per funzionare, corretto? Come mai quest’ultima non la trovo sullo sketch?
Grazie
Alessandro
Autore
Ciao Alessandro,
alcune versioni della libreria SD includono da sole la SPI come nel mio caso.
Salve ho avuto necessità di di installare il suo sketch per eseguire un datalogger, ho avuto problemi a compilare arduino mega per delle librerie sbagliate, semplicemente installate e funziona, ora l’ultima cosa che non mi funziona è la data e l’ora ossia le scrive ma non sono corrette(01/01/2000…..), premetto che uso arduino mega, la shield di rete con lettore microsd W5100, RTC DS3231 e il classico DHT11 che usate anche voi.
Autore
Ciao Giorgio,
ricorda che su Arduino Mega le porte I2C sono differenti da quelle presenti su Arduino Uno.
Trovi sul sito arduino.cc tutte le specifiche della scheda per comprendere le differenze con l’arduino uno.
Grazie di aver risposto, allora impostate le porte per il mega mi ritrovo con la data e l’ora ancora come prima, poi perché l’IDE riuscisse a compilarmi lo sketch ho dovuto eliminare la riga 30 e 31 in questo caso mi compila e fa tutto quello che dovrebbe fare al di fuori che aggiornare la data e l’ora
Autore
Ciao Giorgio,
la riga 30/31 si riferisce ad un metodo, come leggi in molti commenti, non supportato da tutte le librerie.
Probabilmente la tua non lo supporta.
Se hai modificato i pin per utilizzare correttamente SDA ed SCL della Mega dovrebbe funzionare tutto a meno di non aver commesso qualche altro errore.
Cari Amici
sono n uovo dell’ambiente Arduino e incontro le prime difficoltà, che voi forse avete già incontrato e superato.
vorrei leggere un file di dati e caratteri residente sull’hard disk del pc
C’è un modo per farlo?
Inoltre vorrei scrivere i dati digitati sulla tastiera su un altro file dati residente sull’hard disk del PC
c’è un modo per farlo?
Grazie a quanti vorranno inviarmi dei suggerimenti
Autore
Ciao John,
innanzitutto ho provveduto a eliminare il tuo indirizzo di posta dal commento, chi vuole può rispondere al tuo commento.
Con un blog come il mio, scansito al giorno da oltre 1000000 di bot a caccia di email da riempire di spam, è sconsigliato scrivere il proprio indirizzo email in chiaro nei commenti.
A meno che non ti piaccia ricevere solo spam fino ad intasarti la casella di posta.
Non ho capito cosa c’entri arduino / genuino con quello che desideri fare.
BUON GIORNO MAURO SONO ALESSANDRO E SONO UN APPPASSIONATO DIARDUINO TROVO I TUOI PROGETTI MOLTO INTERESSANTI E PER ME SORPRENDENTI…. VOLEVO saperecome e’possibilile reperire lo sketch dei data logger dimostrato sul sito … non tinegoche ho provato a incollare lo sketch che hai postato sulweb mamida errore…fammi sapere come e’possibile avere i tuoi meravigliosi progetti….
Autore
Ciao Alessandro,
solitamente il copia e incolla funziona, verifica di avere una versione dell’IDE adeguata ( scaricata da http://www.arduino.cc ) e che nel copia e incolla non ti sia perso qualche parte del codice.
Se ti da errore specificami quale errore sia dopo aver compreso il funzionamento dello sketch.
ho una versione IDE 1.6.12.
ecco lerrore
Arduino: 1.6.12 (Windows 10), Board: “Arduino/Genuino Uno”
C:\Users\Admin\AppData\Local\Temp\arduino_modified_sketch_995984\sketch_nov09c.ino: In function ‘void setup()’:
sketch_nov09c:28: error: ‘class RTC_DS1307’ has no member named ‘sqw’
RTC.sqw(0); //0 Led off – 1 Freq 1Hz – 2 Freq 4096kHz – 3 Freq 8192kHz – 4 Freq 32768kHz
^
C:\Users\Admin\AppData\Local\Temp\arduino_modified_sketch_995984\sketch_nov09c.ino: At global scope:
sketch_nov09c:74: error: ‘chk’ does not name a type
chk = DHT.read(DHT11_PIN); // READ DATA
^
sketch_nov09c:76: error: expected unqualified-id before ‘switch’
switch (chk){
^
Multiple libraries were found for “SPI.h”
Used: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI
Not used: C:\Program Files (x86)\Arduino\libraries\SPI-master
exit status 1
‘class RTC_DS1307’ has no member named ‘sqw’
This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.
Buon giorno Mauro, grazie per questi interessantissimi articoli, volevo chiederti qual è il metodo migliore per poter inviare diciamo ogni 15 minuti, il valore della temperatura (es) via twitter….
Avrei pensato ad un ciclo for in cui l’ora assume tutti i valori da 0 a 23 mentre per i minuti solo i valori 00,15,30,45.
Grazie
Autore
Ciao Michele,
io preferisco usare il loop() come ciclo.
Con i for annidati nel loop() si rischia presto di perdere il controllo dei tempi se vuoi aggiungere funzionalità allo sketch.
Ciao Mauro
Scusa la domanda banale .Con quale programma si leggono i dati della sd card scritti con arduino?
e ancora come si fa ad importarli su un programma di calcolo tipo open office?Grazie per la disponibilità
Autore
Ciao Pier,
io uso OpenOffice o MS Office ed ho scritto alcuni articoli in cui mostro come fare.
Ciao Mauro,
sono nuovo del forum, mi è piaciuto molto il tuo progetto. Avrei l’idea d’utilizzarlo con una termocoppia di tipo K, pensi sia possibile? E se si, hai qualche consiglio da darmi su come interfacciarmi con la sonda? Ti ringrazio anticipatamente per la disponibilità. Ciao Paolo
Autore
Ciao Paolo,
non ho mai posseduto una termocoppia tipo K ma so che in molti nel web hanno dedicato articoli a questo tipo di sonde ed interfacce.
Ciao Mauro, ho trovato molto interessante e ben spiegato questo progetto, ti faccio una domanda, come potrei inviare questi dati sul cloud in modo da poterli monitorare anche al di fuori della rete locale, ho trovato diversi progetti che lo facevano ma spiegati in maniera contorta per un neofita come me, riusciresti ad aiutarmi? devo monitorare dal lavoro il locale dove ho a fermentare la birra
Autore
Ciao Michelone,
il trasferimento su Cloud implica molte complesse operazioni da considerare.
Il modo migliore che ho è consigliarti l’utilizzo di una Yun2 con sistema operativo OpenWRT su cui adattare questo progetto e farle fare da server dei dati a cui connetterti da lavoro.
Trovi dei miei articoli sulle centraline Yun.
[…] progetto presentato lunedì scorso ti ha permesso di monitorare i temperatura ed umidità, se ci aggiungi una Keypad […]
[…] humidity temperatura suolo ho deciso di utilizzare i componenti utilizzati dal progetto Datalogger Arduino temperatura umidità che sfrutta il datalogger della adafruit già dotato di SD Card shield e RTC […]