Come varia la temperatura nel corso della giornata? Per registrare questi dati in modo affidabile, è possibile utilizzare un data logger autocostruito basato su un microcontrollore. In questo progetto viene utilizzato un sensore DS18B20 per misurare la temperatura. I valori registrati vengono salvati a intervalli regolari in formato CSV (Comma Separated Values) su una scheda SD e possono quindi essere analizzati.
Hardware
Per salvare facilmente i dati e trasferirli successivamente al computer, è consigliabile utilizzare una scheda SD. Questa può essere controllata tramite l'interfaccia SPI.
Con il seguente hardware, l'implementazione è molto semplice grazie all'uso di uno shield:
Sensore (ad es. DS18B20)
Resistenza 4,7kΩ (Assortimento di resistenze)
Nell'esempio utilizziamo il sensore DS18B20. Questo viene controllato e letto tramite l'interfaccia OneWire. È tuttavia possibile utilizzare anche altri sensori a scelta altri sensori .
Saldare il sensore allo shield come segue:

Figura 1: Sensore sullo shield del data logger
Software
Sensore
Per comunicare con il sensore sono necessarie le seguenti librerie esterne:
OneWire di Paul Stoffregen
DallasTemperature di jmchippa
Questi possono essere scaricati come file .zip dai link indicati su GitHub e aggiunti all'IDE Arduino in
Sketch > include Library > Add .zip Library …
.
In alternativa, è possibile installare la libreria anche tramite la gestione librerie integrata.
Per testare il sensore e la struttura superiore, caricare il seguente programma sul microcontrollore:
| #include |
Spiegazione:
All'inizio del programma vengono creati gli oggetti delle classi della libreria. L'oggetto oneWire regola la comunicazione tramite l'interfaccia. L'oggetto sensor invia i comandi precisi del sensore tramite questa interfaccia, trasferita con un puntatore.
Il programma può essere qui .
RTC
Sullo shield è presente un modulo Real Time Clock(RTC). Questo può essere impostato e letto tramite l'interfaccia I2C. Una volta configurata l'ora, questa viene aggiornata continuamente dalla piccola batteria, anche senza alimentazione del microcontrollore.
Per comunicare con il modulo RTC è necessaria la seguente libreria esterna:
RTClib di Adafruit
Questi possono essere scaricati come file .zip dai link indicati su GitHub e aggiunti all'IDE Arduino in
Sketch > include Library > Add .zip Library …
.
In alternativa, è possibile installare la libreria anche tramite la gestione librerie integrata.
Il seguente programma può essere utilizzato per impostare l'ora e testare la funzione:
| #include "Wire.h" |
Spiegazione:
Dopo la consueta integrazione del file di libreria e la creazione dell'oggetto, in setup() viene avviata la comunicazione con il modulo RTC e successivamente, facoltativamente, viene impostata l'ora corrente.
Per poter impostare l'ora, rimuovere il commento e modificare l'ora. Assicurarsi che questa riga sia nuovamente commentata, altrimenti l'ora verrà sovrascritta ad ogni avvio.
In loop() l'ora e la data vengono visualizzate tramite l'interfaccia seriale.
Il codice è disponibile scaricare qui .
Procedura Data logger

Figura 2: Diagramma di flusso del programma del data logger
Codice del registratore dati
Infine, caricare il programma completo sul microcontrollore:
| #include |
Spiegazione:
Rispetto ai due programmi precedenti, è stata aggiunta solo l'uscita sulla scheda SD. La funzione createNewLogFile() crea un nuovo file il cui nome viene numerato automaticamente in modo progressivo.
Analisi dei dati
Dopo aver registrato con successo una serie di misurazioni con il data logger, i valori devono ora essere rappresentati graficamente in un programma di foglio elettronico.
In questo tutorial viene utilizzato LibreOffice Calc, poiché è open source e disponibile gratuitamente su tutti i sistemi operativi. Tutti gli altri programmi sono simili in termini di funzionamento e utilizzo.
1. Copiate il file .txt generato dal data logger dalla scheda SD al disco rigido del vostro computer. Quindi fate clic con il tasto destro del mouse sul file e selezionate "Rinomina", qui cambiate l'estensione del file da .txt a .csv.
2. Aprire il file csv con il programma di foglio elettronico. Si aprirà una finestra di dialogo in cui è possibile selezionare i simboli di separazione. Selezionare "Virgola" e confermare l'importazione, dopo aver verificato l'anteprima in basso, con OK.

Figura 3: Finestra di importazione
3. Poiché il microcontrollore emette i valori del sensore con un punto come separatore decimale, ma il programma si aspetta una virgola, è necessario sostituirlo.
A tal fine, aprire il Cerca e sostituisci . Qui è possibile sostituire tutti i punti con delle virgole.
4. Selezionare ora la colonna con i millisecondi e i valori del sensore tenendo premuto il tasto Ctrl e cliccando sul nome della colonna, quindi selezionare Inserisci, Diagramma...
5. In questa finestra è ora possibile selezionare il tipo di diagramma. In questo caso, per un andamento del valore del sensore, si consiglia di utilizzare il diagramma XY (diagramma a dispersione).

Figura 4: Finestra del grafico
Qui è possibile impostare il tipo di rappresentazione e il tipo di linea.

Figura 5: Grafico finale con valori misurati
Conclusione
Il data logger può essere ampliato con un pulsante e un LED per consentire la visualizzazione dello stato e semplici funzioni di controllo come l'avvio e l'arresto.
Le possibilità di impiego si offrono soprattutto nella misurazione ambientale, nel monitoraggio del clima interno o in scenari simili in cui è necessario registrare i valori dei sensori.
Con i passaggi illustrati avete imparato a conoscere una base economica e flessibile su cui è possibile costruire facilmente i propri progetti.
Buon divertimento con la riproduzione :)







1 commento
Eric LE GUENIC
Beau program