Un sistema di acquisizione dati con Arduino UNO e Gnuplot

L'elettronica di oggi, economica e molto avanzata, ci permette di realizzare qualsiasi dispositivo, utile o ludico, con una semplicità davvero disarmante. Anche le soluzioni al problema possono essere estremamente diversificate e alternative. Nel vasto campo dei microcontrollori, dispositivi pronti, embedded ed elettronica discreta, il progettista ha una miriade di possibilità su cui scegliere, al fine di produrre un dispositivo confacente alle proprie esigenze, con il minimo sforzo. In questo articolo trattiamo la realizzazione di un termometro per ambienti casalinghi o esterni, con l'utilizzo di Arduino (clicca qui per scoprire come ricevere il omaggio il nostro Kit di sviluppo), collegato ad un personal computer tramite il cavo USB. I dati sono acquisiti attraverso un semplice programma, scritto in linguaggio Harbour. Infine, le informazioni vengono visualizzate a video con il software Gnuplot, al fine di produrre stupendi grafici, molto chiari e leggibili. Come si vede, tanti componenti software e hardware per dar sfogo alla propria fantasia.

Introduzione

Uno degli ostacoli in cui si imbatte il progettista, nella realizzazione dei dispositivi di misurazione, non è tanto il circuito in sé o le diverse tipologie di comunicazione dei dati con i PC e gli host in genere. La difficoltà maggiore è nella rappresentazione dei dati finali e definitivi all'operatore. Probabilmente è proprio in questa fase che egli spende la maggior parte del tempo di sviluppo, al fine di ottenere una rappresentazione affidabile ed esteticamente accettabile dei dati. L'articolo che segue approfondirà maggiormente questa fase, per il quale occorre dedicare poco tempo e spendere risorse limitate, ma alla fine i risultati saranno eccezionali, efficienti ed estremamente affidabili.

Il progetto

Come detto nell'introduzione, il sistema da realizzare si riferisce ad un termometro adibito alla misurazione della temperatura interna o esterna. Ovviamente il progetto non è chiuso e definitivo, ma potrà essere modificato ed ampliato secondo le proprie esigenze. Addirittura può essere utilizzato per scopi completamente differenti cambiando, ovviamente, il tipo di sensore utilizzato. Potrà essere usato, ad esempio, per rilevare il livello ambientale di rumore, di luce, di gas o di qualsiasi altra grandezza fisica che interessa. In figura 1 possiamo osservare lo schema a blocchi del progetto. Esso è composto dalle seguenti parti, elencate nell'ordine logico con cui esse rivestono il proprio ruolo e svolgono i rispettivi compiti:

  • Sensore di temperatura;
  • Arduino;
  • Cavo di collegamento USB;
  • Personal computer;
  • Software a PC per acquisizione dei dati di temperatura;
  • Sistema di rappresentazione dati a video.

Accanto a questi vi potrebbero essere alcune parti "di contorno" per rendere il sistema ancora più utile e funzionale come, ad esempio:

  • Un sistema di cattura schermata per "congelare" e salvare il grafico;
  • Un sistema di spedizione dati via FTP per rendere pubbliche, nel web, le elaborazioni.

Con un po' di lavoro aggiuntivo si potrebbero implementare tali aggiunte direttamente nelle componenti principali, in dipendenza anche alle tipologie di linguaggi di programmazione utilizzati.

Figura 1: Schema a blocchi del sistema.

Figura 1: Schema a blocchi del sistema.

 

Esaminiamo, adesso, in dettaglio le singole componenti che, come vedremo, sono tutte strettamente connesse tra di loro.

Il sensore di temperatura

Il TMP36GT9Z è un preciso sensore di temperatura, disponibile nel kit Arduino, che funziona a bassa tensione (da 2.7 V to +5.5 V). Nell'intervallo della temperatura Celsius, la sua risposta è lineare. La figura 2 riporta la sua piedinatura. Queste sono le caratteristiche sostanziali:

  • Bassa tensione di funzionamento (+2.7 V to +5.5 V);
  • E' calibrato in °C;
  • Fattore di scala: 10 mV/8°C  (20 mV/8°C con TMP37);
  • Precisione ±2°C;
  • Linearità ±0.5°C;
  • Stabile con carichi capacitivi;
  • Intervallo di temperatura di lavoro compreso tra -40 °C to +125 °C.

 

Figura 2: Il sensore di temperatura TMP36GT9Z.

Figura 2: Il sensore di temperatura TMP36GT9Z.

Dalle caratteristiche dinamiche del termometro in oggetto, specialmente sulla curva del grafico Volt/°C, possiamo ricavare una funzione che trasformi il valore della tensione fornita [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2617 parole ed è riservato agli abbonati PLATINUM. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici PREMIUM e PLATINUM e potrai fare il download (PDF) di tutti gli EOS-Book, Firmware e degli speciali MONOTEMATICI. ABBONATI ORA con PAYPAL è semplice e sicuro.

Abbonati alle riviste di elettronica

5 Commenti

  1. Maurizio Di Paolo Emilio Maurizio Di Paolo Emilio 20 dicembre 2016
  2. Giovanni Di Maria Giovanni Di Maria 20 dicembre 2016
    • Emanuele Bonanni Emanuele Bonanni 20 dicembre 2016
  3. rodolfok rodolfok 27 gennaio 2017
  4. Giovanni Di Maria Giovanni Di Maria 28 gennaio 2017

Scrivi un commento

ESPertino è la nuova scheda per IoT compatibile ARDUINO.
Scopri come averla GRATIS!