Teleacquisizione

A cura del prof. Giuseppe Spalierno

Docente di Elettronica presso I.T.I.S. “Modesto PANETTI” - B  A  R  I

Ultima modifica: 17 agosto 2011

 

Acquisizione di temperatura e trasferimento in tempo reale dei campioni acquisiti in un database con visualizzazione dei dati selezionati in forma di tabella o grafico.

Il sistema realizzato può acquisire, da 4 canali distinti, grandezze fisiche rappresentate in forma di tensione analogica compresa tra 0 e 5V.

L’acquisizione avviene sotto il controllo di un software, realizzato in Visual Basic 6, che ad intervalli regolari di tempo, attiva una scheda di interfaccia commerciale a basso costo dotata di ingressi ed uscite analogiche e digitali e si collega al computer attraverso l’USB.

La scheda di interfaccia contiene al suo interno, tra le altre cose, un convertitore A/D ad 8 bit caratterizzato da un range di ingresso compreso tra 0 e +5V.

Il software in Visual Basic salva il dato acquisito in un file di testo “val.txt” ed il valore del canale scelto in un file di testo “can.txt”, entrambi nella cartella C:\,  ed esegue il comando PUT del protocollo FTP che si occupa del trasferimento dei due file di testo val.txt e can.txt dal computer locale al computer remoto del nostro “hosting”.

Successivamente il software realizzato in Visual Basic apre uno script PHP, residente sul sito, che ha il compito di inserire i valori acquisiti nella tabella “ACQ” di un database generando, così, un nuovo record costituito dai seguenti 5 campi: il campo “ID” del record ed i campi “data”, “ora”, “valore” e “canale”. Questi ultimi due campi li preleva dai file di testo val.txt e can.txt appena ricevuti via FTP.

Si mostra, di seguito, il profilo del record della tabella ACQ ed una porzione della tabella limitatamente ai valori acquisiti dalle ore 09:00 in poi del giorno 12 agosto 2011. La grandezza rilevata è la temperatura all'esterno di un edificio. Si noti che i primi 3 valori si riferiscono al canale 1 mentre gli ultimi 2 al canale 2.

id (chiave primaria ad autoincremento), data corrente, ora corrente, valore acquisito, canale di acquisizione

 

n.

data

ora

valore

canale

952

2011-08-12

09:23:22

24.51

1

953

2011-08-12

09:36:22

24.12

1

954

2011-08-12

09:42:16

24.51

1

955

2011-08-12

17:18:14

24.71

2

956

2011-08-12

17:18:22

24.31

2

 

Il programma “menuacq.php” consente di scegliere quali valori della tabella mostrare in forma tabulare o in forma grafica a spezzata o a barre.

Si mostra nella seguente figura il grafico relativo alle acquisizioni dei valori di temperatura di qualsiasi canale (indicato con *) del giorno 11 agosto 2011 dalle ore 15:00 alle ore 18:59.

 

 

Schema a blocchi del sistema realizzato

Nella seguente figura si mostra lo schema a blocchi del sistema realizzato.

 

Trasduttore

Nell'esercitazione pratica realizzata, si è utilizzato il sensore di temperatura LM35.

Esso è un circuito integrato a tre terminali: Alimentazione (Vcc), Uscita (Vs), Massa (GND).

L'uscita del sensore segue una legge lineare proporzionale alla temperatura espressa in gradi centrigradi (°C):

Vs = K * T

ove:

K = 10mV/°C e T è la temperatura in °C.

Per T=0°C si ha: Vs=0

Per T=50°C si ha: Vs=500mV

Nella fotografia il terminale a sinistra è Vcc, il centrale è l'uscita Vs e quello a destra è la massa GND.

Nella figura a destra si mostra il tipico impiego con Vcc=5V.

Scheda di interfaccia

La scheda di interfaccia utilizzata per consentire il trasferimento del campione acquisito (nel nostro caso temperatura sotto forma di tensione Vs) è la Velleman K8055.

Essa presenta le seguenti caratteristiche fondamentali:5 ingressi digitali, due ingressi analogici, due amplificatori interni con guadagno regolabile, un convertitore A/D con ingresso compreso tra 0 e 5V, un microcontrollore PIC già programmato per la gestione delle principali operazioni, due uscite analogiche, 8 uscite digitali, interfaccia USB 1.1 (12Mbps) per il trasferimento o ricezione dati digitali col PC ed altro ancora su cui non ci si sofferma.

Essa si alimenta con la tensione Vcc=+5V prelevata direttamente dal connettore USB per cui non necessita di alimentazione esterna supplementare. Inoltre presenta due jumper (ponticelli) con i quali è possibile attribuire alla scheda utilizzata uno tra 4 possibili indirizzi (0, 1, 2 e 3). Un unico PC, quindi, può supportare fino a 4 schede Velleman K8055.

Nella nostra applicazione è stato utilizzato il canale analogico A1, l'amplificatore interno regolato su un guadagno di tensione di valore Av=10 ed il convertitore A/D ad 8 bit interno al microcontrollore.

In figura si mostra lo schema elettrico.

La resistenza R8 = 1K Ohm, non presente sulla scheda di interfaccia, è stata inserita per conferire all'amplificatore un guadagno uguale a 10. In realtà il guadagno tra ingresso non invertente ed uscita vale: Av=1+R10/R8=11. Agendo sul potenziometro RV1 è possibile attenuare lievemente l'ingresso A1 in modo che il guadagno di tensione, tra l'ingresso A1 e l'uscita che pilota Vin dell'ADC, sia uguale a 10. Ovviamente il potenziometro RV1, dopo la taratura, non va più modificato. L'ADC schematizzato è interno al PIC della scheda di interfaccia. 

Per T=50°C l'uscita del sensore vale 500mV, cioè 0,5V; l'amplificatore eleva tale valore a 5V grazie al guadagno pari a 10 ed il convertitore A/D riceve il suo massimo valore cioè il valore di fondo scala VFS=5V cui corrisponde il massimo codice binario ad 8 bit, cioè 255 (11111111).

A corredo della scheda di interfaccia vi è una dll ed una serie di file e demo che consentono di attivare le funzioni di acquisizione, scrittura su canali analogici o digitali in ambiente Visual Basic, C++ e Delphi.

Come linguaggio di programmazione per l'acquisizione ed il trasferimento remoto del dato acquisito, abbiamo utilizzato il Visual Basic 6.

Si mostra nella seguente figura la scheda di interfaccia utilizzata.

 

 

Software di gestione in Visual Basic

Si mostra nella seguente figura l'interfaccia grafica realizzata.

Come si evince dalle indicazioni riportate subito dopo il titolo, occorre prima connettersi al server, poi occorre abilitare la scheda di interfaccia, successivamente è necessario indicare nella relativa text box il canale da utilizzare ed infine attivare l'acquisizione. La casella di testo della temperatura in alto a destra indica il valore corrente ma l'acquisizione avviene ad intervalli regolari di 1800 secondi (un valore ogni mezz'ora). L'intervallo di campionamento può essere modificato intervenendo direttamente nella relativa casella di testo. L'interfaccia grafica realizzata indica anche il tempo trascorso dall'ultima acquisizione (nel nostro caso 207 secondi) l'orario e la data corrente. Per sospendere provvisoriamente l'acquisizione è sufficiente fare clic sul pulsante "ferma acquisizione", "help" fornisce una breve descrizione del funzionamento ed "Esci" termina l'acquisizione.

continua ...

Torna al menù di rappresentazione